The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the N8n Workflow Tester Safe listing page.
Safe MCP server + CLI for testing, scoring, and inspecting n8n workflows
Config-driven test suites with tiered scoring, execution traces, and a built-in node catalog.
Most n8n MCP integrations give you full admin access — credentials, destructive operations, auto-fix loops. That's fine for development, but risky for CI, shared environments, or autonomous agents.
n8n-workflow-tester-safe takes a different approach:
| Feature | This MCP | Full admin MCPs |
|---|---|---|
| Test workflows with scoring | Yes | No |
| Execution traces (lightweight) | Yes | No |
| Node catalog with suggestions | Yes | No |
| Credential management | Excluded | Yes |
| Secret lifecycle | Excluded | Yes |
| Auto-fix loops | Excluded | Some |
Result: A focused tool that does testing and inspection really well, without the risk surface of a full admin wrapper.
As MCP server (for Claude, OpenClaw, or any MCP client):
As CLI (for scripts and CI):
~/.claude.json)The server uses stdio transport — compatible with any MCP client that supports stdio.
Define your tests in a JSON file:
Every test run produces a two-tier score:
| Tier | Weight | What it checks |
|---|---|---|
| Tier 1 (Infrastructure) | 70% | HTTP success, timeout compliance, non-empty output |
| Tier 3 (Quality) | 30% | Custom field checks: contains, equals, min/max length, not_empty |
A test passes when:
error| Tool | Description |
|---|---|
test_workflow | Run a single payload test from a config file |
evaluate_workflow_result | Run a test and return evaluation score + issues |
run_workflow_suite | Run all payloads in a config, return per-payload scores |
| Tool | Description |
|---|---|
create_workflow | Create a new workflow from JSON |
update_workflow | Replace an existing workflow by ID |
delete_workflow | Delete a workflow by ID |
add_node_to_workflow | Append a node to an existing workflow |
connect_nodes | Create a connection between two nodes |
| Tool | Description |
|---|---|
get_workflow_summary | Compact summary: node count, names, types, disabled status |
list_node_types | List all available node types from the n8n instance |
get_node_type | Full schema/metadata for a specific node type |
list_executions | Recent executions, filterable by workflow and status |
get_execution | Full execution data by ID |
get_execution_trace | Lightweight per-node trace — timing, errors, item counts |
| Tool | Description |
|---|---|
get_catalog_stats | Node/trigger/credential counts from imported catalog |
search_nodes | Fuzzy search by name, optional trigger-only filter |
list_triggers | All trigger nodes from the catalog |
validate_node_type | Check if a node type exists, get close matches |
suggest_nodes_for_task | Natural-language task in, relevant nodes out |
The workflows/ directory includes ready-to-use test configs:
| File | Trigger Mode | Payloads | Description |
|---|---|---|---|
example.json | webhook | 2 | Basic webhook echo test |
telegram-bot.json | webhook | 3 | Telegram bot command handler |
api-pipeline.json | execute | 3 | Multi-step API data pipeline |
@modelcontextprotocol/sdk and zodnpx usagegit checkout -b feat/my-feature)git commit -m 'feat: add my feature')git push origin feat/my-feature)
Originally created by James (OpenClaw). Enhanced and maintained by Souzix76.
Built for n8n operators who want testing without the risk surface.
Compatible with Claude, OpenClaw, and any MCP client.