@path58/p58-n8n 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.2.9] - 2026-03-11
9
+
10
+ ### Fixed
11
+
12
+ - **`execute_workflow` `not_found` guidance** — When the webhook POST completes but no execution record is found in n8n (rare timing race), the response now includes actionable guidance to retry instead of the opaque `"Execution status: not_found."` message.
13
+ - **`setup_check` DB health** — Now runs a live `SELECT 1` against the database and reports `db_connected` and `db_error` (exact error string) in the diagnostic output. `catalog_ready` now reflects actual DB reachability instead of always returning `true`. Issues list surfaces DB errors (e.g., circuit breaker) with guidance.
14
+
8
15
  ## [0.2.8] - 2026-03-11
9
16
 
10
17
  ### Fixed
@@ -18473,7 +18473,7 @@ var import_types22 = require("@modelcontextprotocol/sdk/types.js");
18473
18473
  var config = {
18474
18474
  // Server identity
18475
18475
  SERVER_NAME: "p58-n8n",
18476
- SERVER_VERSION: "0.2.8",
18476
+ SERVER_VERSION: "0.2.9",
18477
18477
  // Database configuration (from environment)
18478
18478
  SUPABASE_URL: process.env.SUPABASE_URL,
18479
18479
  SUPABASE_KEY: process.env.SUPABASE_KEY,
@@ -37973,7 +37973,7 @@ async function executeViaClone(config3, workflow, inputData, timeoutMs) {
37973
37973
  } catch {
37974
37974
  }
37975
37975
  }
37976
- const note = executionStatus === "error" && executionError ? `Execution failed: ${executionError}. See node_debug for the failing node details. Fix the issue and call execute_workflow again.` : executionStatus === "success" ? `Workflow executed successfully via temporary clone. Original workflow (${workflow.id}) is now active.` : `Execution status: ${executionStatus}.`;
37976
+ const note = executionStatus === "error" && executionError ? `Execution failed: ${executionError}. See node_debug for the failing node details. Fix the issue and call execute_workflow again.` : executionStatus === "success" ? `Workflow executed successfully via temporary clone. Original workflow (${workflow.id}) is now active.` : executionStatus === "not_found" ? `Webhook POST completed but no execution record was found in n8n. This can happen when n8n drops the execution before recording it. Retry execute_workflow once \u2014 if it fails again, check n8n logs for errors.` : `Execution status: ${executionStatus}.`;
37977
37977
  return {
37978
37978
  executionId,
37979
37979
  result: { status: executionStatus, node_debug },
@@ -44465,6 +44465,7 @@ When values are collected, marks matching factory.gaps entries as resolved for a
44465
44465
  };
44466
44466
 
44467
44467
  // dist/mcp/tools/handlers/setup-check.js
44468
+ init_validatorPostgresClient();
44468
44469
  var SETUP_GUIDE_URL2 = "https://github.com/tsvika58/p58-n8n/blob/main/docs/AGENT_INSTALL.md";
44469
44470
  var N8N_PROBE_TIMEOUT_MS = 2e3;
44470
44471
  var N8N_PROBE_PORTS = [5678, 5679];
@@ -44497,7 +44498,16 @@ function buildToolCounts() {
44497
44498
  const tier1 = OFFLINE_TOOLS.size;
44498
44499
  return { tier1, tier2_7: total - tier1 };
44499
44500
  }
44500
- function collectIssues(apiKeySet, n8nConnected, probes) {
44501
+ async function checkDbHealth() {
44502
+ try {
44503
+ await validatorQuery("SELECT 1 AS ok", []);
44504
+ return { connected: true };
44505
+ } catch (err) {
44506
+ const msg = err instanceof Error ? err.message : String(err);
44507
+ return { connected: false, error: msg };
44508
+ }
44509
+ }
44510
+ function collectIssues(apiKeySet, n8nConnected, probes, dbConnected, dbError) {
44501
44511
  const issues = [];
44502
44512
  if (!apiKeySet) {
44503
44513
  issues.push("N8N_API_KEY not set \u2014 Tier 2-7 deploy tools unavailable");
@@ -44515,6 +44525,10 @@ function collectIssues(apiKeySet, n8nConnected, probes) {
44515
44525
  if (apiKeySet && !n8nConnected) {
44516
44526
  issues.push("N8N_API_KEY is set but n8n is unreachable \u2014 check N8N_API_URL and ensure n8n is running");
44517
44527
  }
44528
+ if (!dbConnected) {
44529
+ const detail = dbError ? `: ${dbError}` : "";
44530
+ issues.push(`Database unavailable${detail} \u2014 catalog features degraded, pattern fallback active`);
44531
+ }
44518
44532
  return issues;
44519
44533
  }
44520
44534
  async function buildReport() {
@@ -44527,7 +44541,8 @@ async function buildReport() {
44527
44541
  if (!n8nUrl) {
44528
44542
  probes = await discoverN8nInstances();
44529
44543
  }
44530
- const issues = collectIssues(apiKeySet, n8nConnected, probes);
44544
+ const dbHealth = await checkDbHealth();
44545
+ const issues = collectIssues(apiKeySet, n8nConnected, probes, dbHealth.connected, dbHealth.error);
44531
44546
  const toolCounts = buildToolCounts();
44532
44547
  const report = {
44533
44548
  server_version: config.SERVER_VERSION,
@@ -44536,7 +44551,9 @@ async function buildReport() {
44536
44551
  n8n_connected: n8nConnected,
44537
44552
  n8n_api_key_set: apiKeySet,
44538
44553
  credential_count: credentialCount,
44539
- catalog_ready: true,
44554
+ catalog_ready: dbHealth.connected,
44555
+ db_connected: dbHealth.connected,
44556
+ ...dbHealth.error ? { db_error: dbHealth.error } : {},
44540
44557
  tools_available: toolCounts,
44541
44558
  issues,
44542
44559
  setup_guide: SETUP_GUIDE_URL2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@path58/p58-n8n",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "The smartest and fastest n8n MCP server — validate, fix, and discover workflows inside your LLM",
5
5
  "keywords": [
6
6
  "mcp",