0.0 / 30
What changed in the harness
Selection accuracy 96%, destructive-action safety rate 0% (baseline only -- no rewrite pass applied).
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
27.7 / 30
03Economics
1.9 / 20
04Discoverability
12.0 / 20
Highest-impact fix
Estimated gain +30 pointsAdd explicit identity and permission preflight tools
Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.
Description evidence
Defects and rewrites.
0 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
| No description defects were flagged in this assessment. | ||
Selection evidence
Confusable tool pairs.
6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
n8n_workflows_get |
n8n_workflows_get_tags |
medium | A task like 'show me workflow X's tags / overview' could route the agent to the generic current-workflow getter (n8n_workflows_get) when only the workflow's tag list is wanted, or vice versa, since both share 'get one workflow' framing and take only a workflowId. |
n8n_workflows_get |
n8n_workflows_get_version |
medium | 'Get the current version of workflow X' is genuinely ambiguous: it could mean the current workflow (n8n_workflows_get) or a retained historical snapshot (n8n_workflows_get_version), and both accept the same workflowId. |
n8n_workflows_get_tags |
n8n_tags_get |
medium | Both are read-only 'get tag(s)' tools; 'look up the tags for workflow X' is ambiguous between the tags assigned to a workflow (keyed by workflowId) and a single tag fetched by its stable tagId. |
n8n_workflows_update |
n8n_workflows_update_tags |
medium | 'Update workflow X's tags' could route the agent to the general workflow PUT (n8n_workflows_update), which has no tag field, instead of the dedicated tag-assignment tool, since both are phrased as 'update workflow'. |
n8n_workflows_update_tags |
n8n_tags_update |
medium | 'Update the tag on workflow X' is ambiguous between replacing that workflow's tag assignments (n8n_workflows_update_tags) and renaming a tag definition (n8n_tags_update); both are write operations with the shared 'update tag' wording. |
n8n_credentials_get |
n8n_credentials_test |
medium | 'Verify/check that credential X is valid' is ambiguous between metadata-only retrieval (n8n_credentials_get) and the live service-contact validation (n8n_credentials_test), since 'check'/'test/validate' language can map to either. |
Compare the field