Agentled MCP Server
The Agentled MCP Server is an AI workflow orchestration engine for building, managing, and executing intelligent automation with 100+ integrations, long-term memory via a Knowledge Graph, and a unified credit system.
Workflow Management
Create, read, update, delete, validate, publish, pause, archive, export, and import workflows
Add, update, or remove individual steps with automatic next-pointer rewiring
Import n8n workflows and convert them to AI-native Agentled format
Drafts & Version Control
Get, promote, or discard drafts (live edits are safely routed to a draft first)
Create, list, restore, and delete snapshots for rollback to any previous workflow state
Execution Monitoring & Control
Start executions with custom input data; stop running executions or retry failed steps
List, inspect, and debug executions including per-step results and timelines
Apps & Integration Testing
List all available apps/integrations and get detailed action schemas (inputs, outputs, credit costs)
Test app actions, AI prompts, and JavaScript code in isolation before integrating into workflows
Knowledge Graph & Memory
Manage knowledge lists (CRUD rows/text), query Knowledge Graph edges to traverse entity relationships
Access scoring history, and update workspace company profile and offerings for context-aware workflows
Branding & White-Label
Get and update workspace branding: display name, logo, tagline, colors, favicon, and badge visibility
Conversational AI & Intent Routing
Chat with the Agentled AI agent to build and refine workflows via natural language (multi-turn, session-based)
Use the intent router (
do) to describe what you want in plain language โ the server auto-selects and executes the right tool
Proactive Agents
Configure autonomous background agents that monitor conditions and automatically trigger workflows when those conditions are met
Enables CRM synchronization for leads and companies, allowing workflow results and scoring history to be stored in the knowledge base.
Provides high-quality text-to-speech capabilities as a modular step within media production and content automation workflows.
Supports CRM data synchronization and sales automation, including lead enrichment and tracking ICP scoring history.
Provides specialized tools to preview and import existing n8n workflows, converting them into AI-native Agentled workflows.
Integrates OpenAI's intelligence, including GPT models for reasoning and DALL-E for automated image generation.
@agentled/mcp-server
The automation engine built for AI agents. Intelligent AI workflow orchestration with long-term memory, 100+ integrations, and unified credits.
What is Agentled?
Agentled is the automation engine built for AI agents. It gives Claude, Codex, Cursor, Windsurf, and any MCP-compatible client direct access to intelligent workflow orchestration, long-term memory, and 100+ integrations.
Three things make it different:
๐ง Long-Term Memory โ A built-in Knowledge Graph stores insights across workflow executions. Your agents get smarter over time โ they remember past research, lead scores, content performance, and business context.
โก Unified Credits โ One API key, one credit system, 100+ services. No need to sign up for LinkedIn, email, scraping, AI models, or video generation separately. Connect once, use everything.
๐ฏ Intelligent Orchestration โ AI reasons at every step. Workflows aren't just "if this then that" โ they understand context, make decisions, and adapt to results.
Related MCP server: MCP- N8N
See it in action
$ agentled create "Outbound to fintech CTOs in Europe"
Loading workspace context from Knowledge Graph...
โฆ ICP loaded โฆ 3 prior campaigns โฆ 847 contacts in KG
Creating campaign with 3 workflows...
โโ Workflow 1: Prospect Research linkedin ยท hunter ยท clearbit
โ LinkedIn: CTO + fintech + EU โ 189 profiles
โ Enriched via Hunter + Clearbit โ 156 matched
โ ICP scoring โ 43 high-intent leads
โโ Workflow 2: Signal Detection web-scraper ยท crunchbase
โ Job postings โ 12 hiring devops
โ Crunchbase โ 8 recently funded
โ Cross-match: hiring + funded โ 5 hot leads
โโ Workflow 3: Outreach email ยท linkedin ยท kg
โ Personalized emails from context
โ LinkedIn requests with custom notes
โ 43 leads saved to Knowledge Graph
Campaign saved. Scheduled: every 48h
Credits used: 720
โ https://www.agentled.app/your-team/fintech-cto-outboundOne prompt. Three workflows. LinkedIn enrichment, email finding, AI scoring, multi-channel outreach โ all orchestrated, all stored in the Knowledge Graph for the next run.
Quick Start
claude mcp add --transport stdio --scope user agentled \
-e AGENTLED_API_KEY=wsk_... \
-- npx -y @agentled/mcp-server--scope user registers the server in your user MCP config so it loads in every project (not only the repo where you ran the command). Use a distinct server name (e.g. agentled_my_workspace) if you add multiple workspaces. For team-shared config in git, use --scope project and .mcp.json instead (Claude Code MCP scopes).
Claude Code plugin (one-step install)
Prefer the plugin if you want the MCP server and the Agentled skill installed together. In Claude Code:
/plugin marketplace add Agentled/mcp-server
/plugin install agentled@agentledThen set your API key in the shell Claude Code runs from:
export AGENTLED_API_KEY=wsk_...The plugin bundles the agentled skill (workflow-authoring guidance, namespaced agentled:agentled) and auto-starts the MCP server via npx -y @agentled/mcp-server. The same plugin directory also carries the Codex manifest (.codex-plugin/) and Codex lifecycle hooks โ one bundle, both hosts.
Grok Build plugin
The same portable plugin includes a Grok Build manifest at
plugins/agentled/.grok-plugin/plugin.json. It starts the published local
stdio MCP server declared in .mcp.json; it does not contain an AgentLed API
key, OAuth client secret, workspace ID, or customer data. Authenticate with
your own AgentLed CLI profile before installing it in Grok Build, then start
with read-only tool discovery. Marketplace submission material is in
plugins/agentled/GROK_MARKETPLACE_SUBMISSION.md.
For Codex, the hook pack acts as in-session guidance around the CLI/MCP loop:
session start explains the Agentled/Codex business-loop split, prompt/tool hooks
add turn-level guidance when client needs, priorities, failures, or product gaps
appear, and stop hooks nudge implementation handoffs to include readiness,
validation, side effects, and next decision. Hooks do not store feedback, call
Agentled APIs, run automations, spend credits, or perform customer/workspace
writes. In Codex, run /hooks after installing or changing the plugin so the
local hook definitions are reviewed and trusted before they run.
Use Codex automations for outside-workspace FDE cadence such as Outlook/client
email follow-up, vendor replies, repo/build checks, and weekly operator reviews.
Use Agentled routines for Agentled workspace/runtime checks such as workflow
health, routine health, execution review, workspace summaries, and managed-agent
operations. Use submit_feedback_to_agentled or agentled feedback submit when
the user explicitly wants product feedback captured.
Pick one install path, not both. If you previously ran
claude mcp add agentled ...or--setup-skills, remove those before (or instead of) installing the plugin โ otherwise you get two identical MCP server processes and the skill registered twice. Cleanup:claude mcp remove agentledand delete.claude/skills/agentled/(or~/.claude/skills/agentled/).--setup-skillsnow detects an installed plugin and refuses to double-register unless you pass--force.
To develop the plugin locally:
claude --plugin-dir ./plugins/agentled # load from source
claude plugin validate ./plugins/agentled # check manifest + structure
plugins/agentled/skills/is a generated mirror ofskills/(synced bypublish.sh) โ editskills/agentled/SKILL.md, never the mirror.
Local development
Use the local built entrypoint when you want to test unpublished changes against a
local app. npx -y @agentled/mcp-server always uses the latest published npm package.
cd agentled-mcp-server
npm run build
claude mcp add --transport stdio agentled_local \
--env AGENTLED_API_KEY=wsk_... \
--env AGENTLED_URL=http://localhost:8080 \
-- node /absolute/path/to/agentsled-front/agentled-mcp-server/dist/index.jsGetting your API key
Sign up at agentled.app
Open Workspace Settings > Developer
Generate a new API key (starts with
wsk_)
Why Agentled MCP?
One API Key. One Credit System. 100+ Services.
No need to sign up for LinkedIn APIs, email services, web scrapers, video generators, or AI models separately. Agentled handles all integrations through a single credit system.
Capability | Credits | Without Agentled |
LinkedIn company enrichment | 50 | LinkedIn API ($99/mo+) |
Email finding & verification | 5 | Hunter.io ($49/mo) |
AI analysis (Claude/GPT/Gemini) | 10-30 | Multiple API keys + billing |
Web scraping | 3-10 | Apify account ($49/mo+) |
Image generation | 30 | DALL-E/Midjourney subscription |
Video generation (8s scene) | 300 | RunwayML ($15/mo+) |
Text-to-speech | 60 | ElevenLabs ($22/mo+) |
Knowledge Graph storage | 1-2 | Custom infrastructure |
CRM sync (Affinity, HubSpot) | 5-10 | CRM API + middleware |
Workflows That Learn
Other automation tools start from zero every run. Agentled's Knowledge Graph remembers across executions โ what worked, what didn't, what humans corrected. Scoring workflows can use compact row-level scoring_profile summaries and bounded scoring-memory retrieval so every run compounds on the last without dumping raw history into prompts.
Run 1: Investor scoring โ 62% accuracy (cold start)
Run 5: โ 78% (learning from IC feedback)
Run 12: โ 89% (compound learning from outcomes, zero manual tuning)Intelligent Orchestration
Unlike trigger-action tools, Agentled workflows have AI reasoning at every step. Multi-model support (Claude, GPT-4, Gemini, Mistral, DeepSeek, Moonshot), adaptive execution, and human-in-the-loop approval gates when needed.
Agent Teams
Agent Teams let you run multiple AI specialists in a single workflow step. Pick a preset and describe what you need โ the team handles coordination, delegation, and synthesis.
"Add an Agent Team step that researches the company and produces an investment memo"Six built-in presets cover the most common patterns:
Preset | What it does |
| Specialists gather information, one synthesizes a summary |
| Multiple analysts evaluate options, produce a ranked recommendation |
| A generator drafts content, reviewers critique and refine |
| Specialists argue for competing options, coordinator arbitrates |
| Independent specialists explore different angles simultaneously |
| Reviewers find issues, an editor applies improvements |
When creating Agent Team steps via MCP, include preset metadata so the step opens correctly in the builder:
{
"id": "analyze",
"type": "agentOrchestrator",
"name": "Agent Team",
"orchestratorConfig": {
"pattern": "supervisor",
"workers": [
{ "id": "researcher", "name": "Researcher", "systemPrompt": "Research {{input.company_url}} โ team, funding, market position" },
{ "id": "analyst", "name": "Analyst", "systemPrompt": "Analyse the research. Identify risks and growth signals." }
]
},
"metadata": {
"agentTeamPreset": "research-and-summarize",
"agentTeamMode": "simple",
"agentTeamUxVersion": 1
},
"next": { "stepId": "milestone" }
}Existing steps created with raw orchestratorConfig and no metadata continue to work โ they open in advanced mode in the builder without errors.
Analytics vs ROI semantics
When describing workflow outcomes, keep these terms separate:
pipeline.analyticsConfig= business metrics (execution outcome stats shown in Business Metrics cards/charts).pipeline.metadata.roi= ROI assumptions/rollups (time saved and cost-value estimates).
If you update one without the other, name exactly what changed (e.g. "business metrics configured" vs "ROI assumptions configured").
CLI parity guard
The repository includes an automated parity guard so MCP tool additions do not silently drift from the CLI surface.
Test:
__tests__/cli/cli-mcp-parity.test.tsDocs:
docs/CLI_MCP_PARITY.md
Run it with:
yarn test:node -- cli-mcp-parity.test.tsWhat Can You Build?
Lead Enrichment & Sales Automation
"Find fintech CTOs in Europe, enrich via LinkedIn + Hunter, score by ICP fit,
draft personalized outreach, save everything to the Knowledge Graph"Content & Media Production
"Scrape trending topics in our niche, generate 5 LinkedIn posts with AI,
create thumbnail images, schedule publishing for the week"Company Research & Intelligence
"Research this company from its URL โ team, funding, market position, competitors.
Generate an investment memo. Store in KG for future reference."VC Investor Matching (real case study)
"Match this startup against our 2,000+ investor database. Score by sector focus,
stage preference, check size, and portfolio synergy. Compare with last round's outcomes."3,000+ profiles processed. IC-ready reports. Prediction vs outcome learning โ accuracy went from 62% to 89% over 12 runs with zero manual tuning.
Built-in Skills And Integrations
Media Production: Video generation, image generation, text-to-speech, auto-captions, media assembly
AI Intelligence: Multi-model AI (Claude, GPT-4, Gemini, Mistral, DeepSeek, Moonshot, xAI), Knowledge Graph, feedback loops, scoring & analytics
Data & Integration: LinkedIn (search, enrich, post), email (send, personalize), web scraping, social publishing, CRM sync, document analysis, OCR
Available Tools
Use-case operating guides
When work starts from an existing workflow ID, call get_workflow first and
inspect useCaseContext. Then call get_use_case with the returned key or
workflow graph ID, and read any operatingGuides before answering
workflow-specific questions, running backfills, or editing live config. Missing
guide warnings mean the operating README is not attached yet and the context is
incomplete.
When work starts from a user's business goal rather than an existing workflow,
use How to Build Use Cases From User Goals.
It covers the external-agent lifecycle from bounded chat result to KG text/list
state, WorkspaceUseCase, workflows, approval queues, and home summary updates.
Workflows
Tool | Description |
| List all workflows in the workspace |
| Get full workflow definition by ID, including |
| Get ledger-derived, period-labelled workflow credit usage; opt in to cost drivers with |
| Create a new workflow from pipeline JSON |
| Update an existing workflow (top-level scalars; for context/metadata prefer |
| Workflow-level analog of |
| Add a step with automatic positioning and next-pointer rewiring |
| Deep-merge updates into a single step by ID |
| Remove a step with automatic next-pointer rewiring |
| Permanently delete a workflow |
| Validate pipeline structure, returns errors per step |
| Change workflow status (draft, live, paused, archived) |
| Export a workflow as portable JSON |
| Import a workflow from exported JSON |
Public Form Links
Public form links are the external intake surface for workflows with
context.executionInputConfig fields. Use them when people outside the
workspace need to submit a workflow form without signing in: inbound lead
forms, pitch deck submissions, referral forms, support intake, assessment
questionnaires, or any workflow whose first step is a manual/input trigger.
Do not use a public form link for internal child workflows. Child workflows
should use context.executionInputConfig.internal: true and be called from
another workflow with agentled.call-workflow.
Tool | Description |
| List existing public form links for a workflow |
| Create and enable a public form link |
| Enable/disable a link or update limits, expiry, auto-share, and thank-you copy. To revoke external access, set |
Deletion is intentionally not exposed via the external API or MCP. To revoke a public form link, call
update_public_form_linkwithenabled: false. Permanent deletion requires an authenticated workspace member acting through the UI โ destructive ops on the form-link surface are not granted to the public API key.
Typical agent flow:
1. get_workflow({ workflowId })
2. Confirm context.executionInputConfig exists and is not internal.
3. list_public_form_links({ workflowId })
4. If none exists, create_public_form_link({ workflowId, enabled: true })
5. Return the publicUrl to the user.The public URL is /en/forms/{formLinkId}. On submit, Agentled validates the
form link, starts the workflow with the submitted input, records a
PublicFormSubmission, and increments submissionCount. Optional settings:
enabled: disable without deleting the link.expiresAt: ISO datetime expiry.submissionLimit: maximum accepted submissions.autoShare: when true, the public form status page can show generated results after completion. Use this only when the workflow output is safe for the submitter to see.shareExpiresInDays: expiry for auto-shared result links.successMessage: custom thank-you message after submission.
Internal-only Workflows
Mark a workflow as a child / sub-workflow that is only run via agentled.call-workflow from an orchestrator by setting context.executionInputConfig.internal: true. The UI then hides the Run button and replaces the manual run form with an info banner. Inputs are still validated and passed by orchestrators via executionInputData exactly as before โ this is a UI guard, not a runtime restriction.
Use it for any workflow whose goal/description starts with "Internal sub-workflow", that ends in a return step, or that you only intend to invoke from another workflow.
{
"context": {
"executionInputConfig": {
"title": "Save Sourced Candidates",
"internal": true,
"fields": [{ "name": "candidates", "label": "Candidates", "type": "text", "required": true }]
}
}
}Flip the flag via update_workflow_context โ fetch first, merge locally, replace at the parent level (the merge-order trap from update_step applies here too โ see docs/MCP_STEP_EDITING.md):
// 1. get_workflow โ read context.executionInputConfig
// 2. local: { ...executionInputConfig, internal: true }
// 3.
{
"updates": { "context": { "executionInputConfig": {...full merged value...} } },
"replace": ["context.executionInputConfig"]
}Editing existing workflows: merge model
update_step accepts three explicit operations on the same call. At least one must be non-empty.
updatesโ partial step patch, deep-merged ONE LEVEL deep. Top-level scalars are replaced; nested objects (pipelineStepPrompt,stepInputData, etc.) get their direct keys merged with the stored value's keys. Keys nested two levels deep are overwritten as a unit, not merged.replace: string[]โ dot-paths whose values fromupdatesare assigned wholesale, skipping the deep-merge. Use this for dictionary-shaped fields where keys are user data (not config) โ patching one inner key withupdatesalone silently wipes the others.unset: string[]โ dot-paths to delete. Each path must currently exist on the step (validated against the original).
Read before editing dictionary fields. Before changing stepInputData.fieldUpdates, pipelineStepPrompt.responseStructure, knowledgeSync.fieldMapping, or any field where keys are user data: call get_step({ workflowId, stepId }) (~1KB), modify locally, send the full new object back via replace[]. This avoids the "patched one key, silently wiped the others" trap.
Diff in the response. Every update_step call returns diff: { addedPaths, changedPaths, removedPaths } and warnings[]. If the merge silently removed โฅ6 fields without an explicit unset, a warning fires.
What to use where:
Path / field | API | How to edit | Notes |
|
|
| Plain scalar; safe to send alone. |
|
|
| Direct nested config; sending the new value wholesale is fine. |
|
|
| Arrays replace wholesale by design. To append, fetch with |
|
|
| Keys are user data; default one-level merge replaces this dict and can drop sibling mappings. |
|
|
| Output-shape dictionary; treat as user data. |
|
|
| Sourceโtarget dict; same trap as |
|
|
| โ |
|
|
| Send the full |
Removing a step input or stale field |
|
| Cleanest way to remove. Path must exist on the original. |
|
| Three explicit verbs ( | Workflow-level, not step-level. |
|
| Same three verbs on | Workflow-level. Metadata bypasses the draft snapshot โ even on live workflows it writes direct to the Pipeline row, immediately. |
Executive summaries for workflow groups. When a user asks to save a summary for a workflow, workflow group, cluster, or home card, write it to metadata.executiveSummary with update_workflow_context. Do not store it as Knowledge text unless the user explicitly asks for a reusable note. For a group, write exactly once to the owner pipeline: prefer metadata.workflowGraph.role === "orchestrator", otherwise use the lowest metadata.workflowGraph.order pipeline. Keep the body to 1-2 short sentences, include concrete counts/rates and the reporting period when available, and set author to the active workspace agent, not the external tool/coding agent.
{
"workflowId": "2e1cdd60-2fcf-441a-856f-583ae76b38a5",
"updates": {
"metadata": {
"executiveSummary": {
"body": "Startup Outreach sent 46 founder emails for the reporting period, with 28 opens and 9 clicks: a 60.9% open rate, 19.6% click rate, and 32.1% click-to-open rate.",
"bullets": ["Clicks: 6 UTM Pitch Night, 2 plain Pitch Night, 1 calendar."],
"generatedAt": "2026-06-03T00:00:00.000Z",
"author": "AngelHive Assistant"
}
}
}
}Type changes. step.type is technically mutable but stale type-specific fields (pipelineStepPrompt, app, tools, orchestratorConfig) persist unless you unset them. For clean conversions, prefer remove_step + add_step.
Live workflows. Edits are routed to a draft snapshot. Response includes editingDraft: true. Inspect via get_draft, ship via promote_draft, throw away via discard_draft. For high-stakes edits, create_snapshot first as a manual checkpoint.
Draft staleness. When a draft exists, every update_step and get_step response includes a draft summary with exists, draftCreatedAt, liveUpdatedAt, stale, modifiedStepIds, and modifiedFields. If draft.stale === true, the live workflow advanced after the draft was created โ promoting will land the draft's older values for fields you didn't touch. update_step also emits a staleness warning. Recovery: discard_draft and re-apply.
โ discard_draft only reverts pending context (and step) changes โ NOT metadata. Metadata writes via update_workflow_context bypass the draft and apply immediately to the live Pipeline row. If you need a single rollback point covering metadata too, create_snapshot before the edit. See docs/MCP_STEP_EDITING.md for the full atomicity contract.
Never send a full steps[] array via update_workflow. Use update_step, add_step, remove_step instead.
For the deep reference (StepMergeError codes, dot-path validation rules, full diff semantics) see docs/MCP_STEP_EDITING.md.
Drafts & Snapshots
Tool | Description |
| Get the current draft version of a workflow |
| Promote a draft to the live version |
| Discard the current draft |
| Create a manual config snapshot |
| Delete a specific config snapshot |
| List version snapshots for a workflow |
| Read a snapshot's full config (steps, context, etc.) without restoring it |
| Restore a workflow to a previous snapshot |
Executions
Tool | Description |
| Start a workflow execution with input. Returns |
| List executions for a workflow (paginated via |
| Get execution details with step results. Requires the real |
| List step execution records (timelines) for an execution (paginated via |
| Get a single timeline by ID with full step output |
| Stop a running execution |
| Retry a failed step โ auto-detects the most recent failure if no timeline ID provided |
| Rerun or retry any step by |
Run deep links use /<locale>/<workspace>/<workflowPathname>/runs?runId=<executionId>&step=<stepId>.
The step query param is optional only for run-level handoffs. When a response
points to a specific approval card, output, failure, or current step, include
&step=<stepId> and do not ask the human to open the step manually after a
run-only URL. When present, the app expands that workflow step and scrolls to
it. stepId is the workflow step id, not the timeline id. Inside the app
chat/navigation tool surface, navigateToExecutionPage accepts the same
stepId.
Knowledge row deep links use /<locale>/<workspace>/knowledge-and-data/<listKey>?rowId=<rowId>.
The app opens the Knowledge & Data list page and opens the row editor sheet for
that row. The backwards-compatible route
/<locale>/<workspace>/knowledge-and-data/<listKey>/row/<rowId> redirects to the
canonical query-param URL.
Knowledge text deep links use /<locale>/<workspace>/knowledge-and-data/<key>.
The backwards-compatible route
/<locale>/<workspace>/knowledge-and-data/text/<key> redirects to the canonical
item URL.
Apps & Testing
Tool | Description |
| List available apps and integrations |
| Get action schemas for an app |
| Test an app action without creating a workflow |
| Test an AI prompt without creating a workflow |
| Test JavaScript code in the same sandboxed VM as production |
| Get allowed PipelineStep fields grouped by category |
AI step types: aiAction vs aiActionWithTools
Pick the right type โ validate_workflow will reject the wrong one:
You needโฆ | Use |
Reason over inputs already present in the prompt variables |
|
Live web search, workspace memory recall/write, knowledge-graph lookup |
|
The AI to decide at runtime what inputs to pass to an app action |
|
aiActionWithTools requires at least one tool โ placed under step.tools or step.agent.tools (both are merged at runtime). If you omit tools from both locations, validate_workflow returns a blocker AI_STEP_TOOLS_REQUIRED. If the prompt says "search the web" / "recall memory" / "knowledge graph" without the matching tool attached, you get a warning AI_STEP_TOOL_PROMPT_MISMATCH: web-search prompts need web_search; memory prompts need workspace_memory; KG lookup prompts need kg_search or kg_traverse. fetch_website_content fetches a known URL and kg_write writes KG data, so neither satisfies those lookup/search prompts.
Valid builtinType values: web_search, file_search, code_interpreter, fetch_website_content, kg_search, kg_traverse, kg_nodes, kg_write, workspace_memory.
Prompt caching for repeated AI steps
Agentled enables provider prompt caching where supported. Caching reuses prompt processing for an identical prefix; it does not cache or replay the AI response. To benefit in bulk workflows, especially scoring/matching loops, write prompts with the stable material first:
[stable role and task]
[stable rubric / scoring dimensions]
[stable output JSON schema]
[stable examples or decision rules]
Runtime inputs:
{{currentItem}}
{{steps.previous.output}}
{{input.field}}Do not start high-volume prompts with INPUTS, {{currentItem}}, {{steps.*}}, {{input.*}}, {{execution.id}}, {{now}}, or {{today}}. Keep changing payloads, dates, execution IDs, and per-item records at the end so OpenAI/Anthropic can cache the shared prefix.
// aiActionWithTools example
{
"id": "research",
"type": "aiActionWithTools",
"name": "Research Company",
"tools": [
{ "type": "builtin", "builtinType": "web_search", "name": "Web Search" }
],
"pipelineStepPrompt": {
"template": "Search the web for the founder of {{input.company}} and return their name.",
"responseStructure": { "firstName": "string", "lastName": "string" }
},
"creditCost": 10,
"next": { "stepId": "find-email" }
}Knowledge & Data
Tool | Description |
| Get workspace info, company settings, active team members, pending invitations, and knowledge-list schemas |
| Get the editable workspace company profile and company knowledge text |
| Update top-level company profile fields like name, URLs, logo, industry, size, and additional information |
| Write the workspace-wide executive summary on the Workspace Assistant card |
| List output pages pinned to the workspace home/sidebar |
| Pin or unpin a workflow output page on the workspace home/sidebar |
| List saved workspace view manifests and source/action guidance |
| Create a saved operating-surface manifest over KG, workflows, approvals, agents, routines, actions, output pages, external APIs, or custom sources |
| Get one saved workspace view by id or key |
| Update a saved workspace view manifest without mutating source data or executing actions |
| Archive a workspace view without deleting linked data |
| List knowledge lists in the workspace |
| Get rows from a knowledge list (paginated via |
| Fetch specific rows by ID (max 200) โ use after |
| Get text content from a knowledge entry |
| Create a new knowledge list with a typed schema (idempotent on key collision) |
| Add or remove fields on an existing list schema |
| Permanently delete a list and all its rows |
| Insert or update rows in a list (max 500/call, per-row error reporting) |
| Delete rows by ID |
| Create or update a text knowledge entry |
| Delete a text knowledge entry by key |
| Query knowledge graph edges |
| Get scoring history for an entity |
Credits and Cost Drivers
Credit reporting tools are opt-in for cost-driver detail so existing balance checks stay compact.
Every credit total is ledger-derived and returned with a period object containing label, display, start, and end; always show that period label next to totals.
For a human/operator UI check, open the workspace credit usage page:
https://www.agentled.app/en/{workspace}/account/billing/credits-usageExample: https://www.agentled.app/en/inovexus/account/billing/credits-usage.
Tool | Description |
| Workspace balance, usage, executions, and recent ledger rows. Optional args: |
| Convenience report with |
| Workflow-level usage and optional cost drivers, scoped to workflows in the authenticated API key workspace. |
Supported periods:
rolling-30-days: moving 30-day window ending at request time.rolling-7-days: moving 7-day window ending at request time.current-month/month-to-date: UTC calendar month-to-date, not the billing renewal period.previous-month: prior UTC calendar month.all-time: full ledger before the request time; use intentionally because it can scan more rows.
Examples:
// Compact balance/burn-rate check
{ "tool": "get_workspace_credits", "arguments": { "period": "rolling-30-days" } }
// Workspace cost drivers for a calendar month-to-date window
{ "tool": "get_workspace_credit_cost_drivers", "arguments": { "period": "current-month", "limit": 5 } }
// Workflow cost drivers
{ "tool": "get_workflow_credits", "arguments": { "workflowId": "wf_abc123", "period": "rolling-30-days", "includeCostDrivers": true } }External API equivalents:
GET /api/external/workspace/credits?period=rolling-30-days&include=costDrivers&limit=5
GET /api/external/workflows/{workflowId}/credits?period=current-month&include=costDriversBilling-period reporting is separate from calendar-month reporting and should not be implied unless a future API adds an explicit billing-period label.
Branding (Whitelabel)
Tool | Description |
| Get the workspace's whitelabel branding config (displayName, logo, colors, favicon, badge) |
| Update branding โ set displayName, logoUrl, tagline, primaryColor, primaryColorDark, faviconUrl, hideBadge |
Agents
First-class workspace agents with identity, instructions, tools, config files, and assigned workflows. All agents are conversational (chat-only). For scheduled/autonomous work, attach routines via create_routine. SOUL.md and TOOLS.md live in configFiles; reflection context (JOURNAL.md, OBJECTIVES.md, PEOPLE.md) lives as linked AgentFiles and is auto-seeded for active chat-only reflection agents. Agents decide what durable signal belongs in those files; AgentLed only provides scoped storage and scheduled Reflection. An agent created entirely via MCP renders identically to one built in the Agent Wizard.
Tool | Description |
| List agents in the workspace (filter by status: active, paused, draft) |
| Get full agent config โ instructions, files, workflows, attached routines |
| Create an agent. Accepts |
| Partial update โ same fields as |
| Activate an agent (draft/paused โ active). Attached routines begin running on schedule |
| Pause an active agent. Attached routines stop until resumed |
| Add/remove/set the workflows assigned to an agent without rewriting the full config |
| Permanently delete an agent and all its files |
| Send a message to a specific agent. Multi-turn via |
Slug convention: slug is the short role ID used in URLs and email addresses. Keep Agent in the display name when useful, but do not append -agent to the slug just because the display name includes it; for example, Deal Sourcing Agent should use deal-sourcing@{workspace}.agentled.ai, not deal-sourcing-agent@{workspace}.agentled.ai.
Agent Files
Tool | Description |
| List files attached to an agent (knowledge, context, reference docs) |
| Get the content of a specific agent file |
| Upload a file (max 400KB text/markdown) to an agent |
| Update a file already attached to an agent; use this after |
| Delete a file from an agent |
Reflection files follow the same durable markdown pattern used by OpenClaw and Hermes memory surfaces: keep JOURNAL.md as a concise dated log, OBJECTIVES.md as active/completed goals, and PEOPLE.md as stable relationship context. Read first, update only when there is durable signal, and send full replacement content. See docs/AGENT_REFLECTION_FILES.md for the UI, MCP, and CLI editing contract.
Routines
Routines are scheduled prompts attached to an agent โ the agent evaluates the prompt on a set interval and can trigger workflows or send notifications.
Example โ add a daily deal-sourcer routine to an existing agent:
# Step 1: create the agent
create_agent({
name: "Daily Deal Sourcer",
agentType: "deal-sourcer",
enabledApps: ["agentled", "kg", "web-scraping"],
appPermissions: {
kg: { access: "write", writeApprovalRequired: true },
"web-scraping": { access: "read" }
},
assignedWorkflowIds: ["<opportunity-scoring-workflow-id>"],
activate: true
})
# Step 2: attach a routine
create_routine({
agent_id: "<agent-id>",
name: "Daily Sourcing Run",
prompt: "Find 5 new SaaS startups that match our deal criteria and trigger the scoring workflow for each.",
interval: "daily"
})Read access is implicit and never requires approval. The internal agentled app is selected as an app when needed but is not configurable in appPermissions.
Tool | Description |
| List all routines for an agent |
| Create a routine (name, prompt, interval) |
| Update routine fields; recalculates nextRunAt if interval changes |
| Pause a routine |
| Resume a paused routine |
| Run a routine immediately without changing its schedule |
| Permanently delete a routine |
Interval values: weekday-morning, weekday-evening, weekly-monday, weekly-tuesday-evening, weekly-friday-evening, daily, monthly, 6h, 48h.
Deprecated Low-Level Runtime
Direct low-level monitor-runtime MCP tools are deprecated and no longer
registered. Use create_agent / update_agent plus routines for autonomous
work.
Channels (Email, Slack, WhatsApp, Signal)
Channels route inbound messages into the agent chat runtime. Each channel has a defaultAgentId that decides which agent handles the conversation. Replies are sent back through the originating channel.
Tool | Description |
| List configured channels with their |
| Assign the agent that handles a channel's inbound conversations |
| Update non-secret channel config โ |
| Update workspace-wide defaults: |
Secret credentials (Slack bot tokens, signing secrets, WhatsApp access tokens, Signal webhook secrets) are NEVER readable or writable via the external API. Connect those via Settings โ Channels in the UI โ OAuth flows store them encrypted at rest.
Conversational Agent
Tool | Description |
| Send a message to the AgentLed AI agent. Build workflows through natural language โ no JSON required. Supports multi-turn conversations via session_id. |
Chat Tool โ Usage & Examples
The chat tool is a conversational AI agent that can reason, plan, and build workflows through dialogue. Think of it as the difference between gh api (raw) and gh copilot (intelligent).
Parameters:
Parameter | Type | Required | Description |
| string | Yes | The message to send to the AI agent |
| string | No | Session ID from a previous response, for multi-turn conversations |
Response format:
{
"response": "The agent's reply โ may include workflow suggestions, explanations, or confirmation of actions taken",
"sessionId": "mcp-chat-ws123-1711929600000"
}Multi-turn conversation:
# Turn 1: Describe what you want
chat("Build me a workflow that enriches LinkedIn companies and scores them by ICP fit")
# โ Agent responds with a plan and creates a draft workflow
# โ Response includes sessionId: "mcp-chat-ws123-1711..."
# Turn 2: Iterate on the design
chat("Add an email finding step using the company domain", session_id: "mcp-chat-ws123-1711...")
# โ Agent modifies the workflow, maintaining conversation context
# Turn 3: Finalize
chat("Looks good, publish it as live", session_id: "mcp-chat-ws123-1711...")
# โ Agent publishes the workflowWhen to use chat vs structured tools:
Use | Use structured tools when... |
You have a high-level goal | You know the exact pipeline JSON |
You want AI recommendations | You need precise control |
You're exploring available skills or integrations | You're automating a known pattern |
You want to iterate through dialogue | You're doing bulk operations |
Notes:
5-minute timeout โ break complex requests into smaller steps if needed
Responses are non-streaming (collected then returned) for MCP client compatibility
The agent has full access to planning tools, workflow builder, and workspace context
Error responses include actionable messages (e.g., timeout โ "try breaking it into smaller steps")
Intent Router
Tool | Description |
| Natural language intent router โ describe what you want and it auto-selects and executes the right tool |
Help & Feedback โ Talk to the Agentled Team
For AI agents โ pick the right channel:
What you hit | Where it goes |
Workflow not behaving as expected, app/integration question, platform/billing question, missing feature, anything about how Agentled works | Call |
Bug in the CLI itself ( | File a GitHub issue at https://github.com/agentled/mcp-server/issues. Include CLI version + reproduction steps. |
Anything else, or you're not sure |
|
Do not search npm metadata, scrape GitHub, or shell out to
ghto "find" a bug tracker โ the routes above are the only ones. Thebugsfield in the package points at the human contact page (https://www.agentled.ai/en/contact-us) on purpose.
For humans: email contact@agentled.ai or visit https://www.agentled.ai/en/contact-us.
Tool | Description |
| Ask a question, file a bug, request a feature, or escalate an issue. Types: |
Coming from n8n?
Import existing n8n workflows and make them AI-native:
Tool | Description |
| Preview an n8n workflow import (dry run) |
| Import an n8n workflow into Agentled |
Looking Up Entity-Scoped Data
When you need all records related to a specific entity, use the two-tool chain instead of paginating get_knowledge_rows:
Example 1 โ all deals scored by an investor:
1. query_kg_edges({ entityName: "Investor Name", relationshipType: "SCORED" })
โ returns edges with targetNodeIds
2. get_knowledge_rows_by_ids({ rowIds: <targetNodeIds from step 1> })
โ returns full row data for each matched dealExample 2 โ all leads sourced from a campaign:
1. query_kg_edges({ entityName: "Campaign Name", relationshipType: "SOURCED" })
โ returns edges with targetNodeIds
2. get_knowledge_rows_by_ids({ rowIds: <targetNodeIds from step 1> })
โ returns full contact/lead rowsWhy this matters: get_knowledge_rows is limited to 200 rows per call. At 3k rows that means 15 round trips; at 10k it means 50. The KG-edge path is O(edges for that entity) โ independent of total list size โ so it stays fast regardless of how large the list grows.
Node ID convention: source_node_id and target_node_id values from query_kg_edges are knowledge row IDs. Rows outside the authenticated workspace are silently excluded.
For Agencies: White-Label Ready
Build workflows once, deploy to multiple clients under your own brand. Configure branding directly from the MCP server:
"Set my workspace branding: displayName 'Acme AI', primaryColor '#6366f1', tagline 'Powered by Acme'"Use get_branding and update_branding to manage displayName, logo, colors, favicon, tagline, and badge visibility. Client portal appearance updates instantly.
Persistent Memory โ Examples
Memories let workflows learn across executions. Store what worked, recall it next time.
Store a fact after enrichment
"Store a memory: key 'icp_criteria', value { industry: 'fintech', minEmployees: 50, region: 'EU' },
category 'preference', scope 'workspace'"Recall before scoring
"Recall memory 'icp_criteria' at workspace scope โ use it to score this batch of leads"Search for past outcomes
"Search memories for 'conversion rate' in the 'outcome' category"Track a running metric
"Store memory: key 'total_leads_processed', value 43, merge 'increment', scope 'workspace'"Each subsequent call with merge: 'increment' adds to the existing value โ no read-modify-write needed.
Outreach PCPL
For email or outbound workflows, track PCPL as a business metric:
PCPL = prospects contacted / positive repliesUse analyticsConfig for contacted prospects, positive replies, and PCPL. Literal PCPL should use a ratio metric with ratioMode: "raw"; positive reply rate should use the default percentage ratio.
Routines โ Examples
Routines are scheduled prompts attached to agents. Use them for autonomous work such as daily checks, weekly digests, and workflow follow-up.
Create an agent with a daily sourcing routine
"Create a deal sourcing agent, then add a daily routine that checks the
incoming-leads knowledge list and starts the lead-enrichment workflow for
qualified new rows. Limit the routine to 10 workflow starts per day."Tool sequence:
create_agent({
name: "Daily Deal Sourcer",
agentType: "deal-sourcer",
enabledApps: ["agentled", "kg"],
assignedWorkflowIds: ["wf_abc123"],
activate: true
})
create_routine({
agent_id: "<agent-id-or-slug>",
name: "Daily New Lead Review",
prompt: "Review incoming-leads, identify qualified new rows, and start the lead-enrichment workflow for each. Do not start more than 10 workflow runs in one day.",
interval: "daily",
max_steps_per_run: 20,
max_credits_per_day: 50
})Create a weekly workflow health routine
"Add a weekly routine to the operations agent that reviews workflow execution
history, flags abnormal failures, and notifies me only when action is needed."create_routine({
agent_id: "operations",
name: "Weekly Workflow Health Review",
prompt: "Review recent workflow execution history. If failures or stalls require action, summarize the affected workflows, likely impact, and recommended next step. Otherwise record that no action is needed.",
interval: "weekly-monday"
})Pause and resume
"Pause routine <routine-id>"
"Resume routine <routine-id>"
"Run routine <routine-id> now"Works With
Claude Code (Anthropic)
Codex (OpenAI)
Cursor
Windsurf
Any MCP-compatible client
Links
Building from Source
git clone https://github.com/Agentled/mcp-server.git
cd mcp-server
npm install
npm run buildLicense
MIT
Available Tools
40 toolschatA
Send a message to the AgentLed AI agent and get a response. The agent can reason, plan, and build workflows through natural language conversation โ no need to construct pipeline JSON manually.
Use this tool when you want to:
Build a workflow from a high-level description ("Create a lead enrichment workflow for SaaS companies")
Get recommendations on how to structure a workflow
Ask questions about available integrations or capabilities
Iterate on workflow design through conversation
The agent has access to the same planning tools, workflow builder, and workspace context as the in-app chat.
For multi-turn conversations, pass the session_id returned from the first message to maintain context across messages.
Example: chat("Build me a workflow that takes a LinkedIn company URL, enriches the data, and scores it by ICP fit")
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to send to the AI agent | |
| session_id | No | Session ID for multi-turn conversations. Use the session_id from a previous response to continue the same conversation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the agent's capabilities ('reason, plan, and build workflows'), multi-turn conversation handling ('pass the session_id... to maintain context'), and integration with the platform ('access to the same planning tools... as the in-app chat'). It doesn't mention rate limits or authentication requirements, but provides substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and efficiently organized: it starts with a clear purpose statement, follows with specific usage guidelines in bullet points, adds important behavioral context, and concludes with a concrete example. Every sentence serves a distinct purpose without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a conversational AI tool with no annotations and no output schema, the description provides substantial context about capabilities, usage patterns, and multi-turn conversation handling. It could be more complete by describing response formats or error conditions, but it adequately covers the tool's primary function and integration within the workflow automation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing solid baseline documentation for both parameters. The description adds minimal parameter-specific information beyond the schema - it mentions session_id for 'multi-turn conversations' and provides an example showing message usage, but doesn't elaborate on parameter constraints or formats. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send a message to the AgentLed AI agent and get a response.' It specifies the verb ('send a message') and resource ('AgentLed AI agent'), and distinguishes itself from sibling tools by focusing on conversational AI interaction rather than direct workflow manipulation tools like create_workflow or update_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage scenarios with a bulleted list: 'Use this tool when you want to: - Build a workflow from a high-level description... - Get recommendations... - Ask questions... - Iterate on workflow design...' It clearly differentiates when to use this conversational tool versus direct workflow manipulation tools among its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_snapshotA
Create a manual config snapshot of a workflow's current state. Use this to save a checkpoint before making changes, so you can restore later if needed. Enforces plan-based limits (Pro=2, Teams=10, Custom=50). Returns an error with limit info if the snapshot limit is reached โ delete old snapshots first to free up space.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID to snapshot | |
| label | No | Optional label to identify the snapshot (e.g. "before refactor") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it explains plan-based limits (Pro=2, Teams=10, Custom=50), error behavior ('Returns an error with limit info if the snapshot limit is reached'), and the manual nature of the snapshot. It doesn't mention authentication needs or rate limits, but covers the most critical operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: first states purpose, second provides usage context, third explains constraints and error handling. Every sentence earns its place by adding distinct value, and the description is appropriately front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does well by explaining the 'why' (checkpointing), constraints (plan limits), and error behavior. It could mention what the return value contains (e.g., snapshot ID) or confirmation message, but covers the essential operational context given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (workflowId and optional label), meeting the baseline expectation when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a manual config snapshot') and resource ('workflow's current state'), distinguishing it from sibling tools like 'list_snapshots' or 'restore_snapshot'. It goes beyond the tool name by explaining what a snapshot represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('save a checkpoint before making changes') and why ('so you can restore later if needed'). It also provides guidance on what to do when limits are reached ('delete old snapshots first'), offering clear operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workflowC
Create a new workflow from a pipeline definition. The pipeline object should include:
name (required): Workflow name
goal: What the workflow does
description: Longer description
steps: Array of pipeline steps (trigger, aiAction, appAction, milestone, etc.)
context: Execution input config and input/output pages
metadata: Template info, notifications, ROI
style: UI styling (colors, icon)
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline | Yes | The pipeline definition object | |
| locale | No | Locale (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a creation operation but doesn't mention permissions required, whether it's idempotent, what happens on failure, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured as a single sentence followed by a bulleted list of pipeline components. Each bullet point adds specific value about required/optional fields, with no wasted words. However, it could be more front-loaded by explicitly stating the tool's core purpose before diving into details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like error handling, permissions, or response format. While it details the pipeline structure, it misses critical context needed for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('pipeline' and 'locale'). The description adds value by detailing the structure of the 'pipeline' object (e.g., name, steps, context), but doesn't provide additional syntax or format details beyond what the schema implies. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new workflow') and resource ('from a pipeline definition'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'import_workflow' or 'update_workflow', which also involve workflow creation/modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'import_workflow' or 'update_workflow'. It also doesn't mention prerequisites, such as needing a valid pipeline definition or when this operation is appropriate in a workflow lifecycle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_snapshotA
Delete a specific config snapshot. Use list_snapshots to find snapshot IDs. Useful for freeing up space when the snapshot limit is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| snapshotId | Yes | The snapshot ID to delete (from list_snapshots) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool is for deletion, implying it's destructive, but doesn't disclose critical behavioral traits like whether the deletion is permanent, requires specific permissions, has confirmation prompts, or what happens on success/failure. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core action. Both sentences earn their place: the first explains the tool and how to find IDs, the second provides usage context. There is zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it's a destructive tool with no annotations and no output schema, the description is moderately complete but has gaps. It covers purpose and basic usage but lacks details on behavioral outcomes, error handling, or return values. For a deletion tool, this is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('workflowId' and 'snapshotId'). The description adds minimal value by referencing 'list_snapshots' for finding snapshot IDs, but doesn't provide additional semantics beyond what the schema states. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('a specific config snapshot'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'delete_workflow' or 'discard_draft', which also perform deletion operations on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use this tool ('Use list_snapshots to find snapshot IDs' and 'Useful for freeing up space when the snapshot limit is reached'), which helps guide the agent. However, it doesn't explicitly state when NOT to use it or mention alternatives like 'restore_snapshot' for managing snapshots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workflowA
Permanently delete a workflow by ID. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the irreversible nature ('cannot be undone'), which is a critical behavioral trait for a destructive operation. However, it lacks details on permissions, error conditions, or side effects (e.g., impact on related executions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste. The first sentence states the action and resource, and the second adds crucial behavioral context, making it front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is minimally adequate. It covers the irreversible nature but lacks details on permissions, response format, or error handling, leaving gaps in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds no specific parameter semantics beyond what the schema provides ('workflowId'), but since there is only one parameter, the description's focus on the action compensates adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('permanently delete') and the target resource ('a workflow by ID'), making the purpose specific and unambiguous. It distinguishes itself from sibling tools like 'delete_snapshot' by specifying the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., workflow must exist), exclusions (e.g., cannot delete active workflows), or related tools (e.g., 'discard_draft' for drafts).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discard_draftA
Discard the draft snapshot for a live workflow. The live pipeline config stays unchanged. Use this to abandon draft changes and go back to the current live version.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool discards a draft snapshot without affecting the live workflow, which is useful behavioral context. However, it lacks details on permissions needed, error conditions (e.g., if no draft exists), or side effects (e.g., whether the discard is irreversible), leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by usage guidance. Every word contributes value, with no redundancy or fluff, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no annotations and no output schema, the description does well by clarifying the purpose, usage, and effect (live config unchanged). However, it omits details on return values or error handling, which could be important for an agent invoking it. The high schema coverage helps compensate, but some behavioral aspects remain uncovered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'workflowId' documented as 'The workflow ID'. The description does not add further parameter details, which is acceptable given the high schema coverage. With only one parameter, a baseline of 4 is appropriate as the schema sufficiently explains it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Discard the draft snapshot') and resource ('for a live workflow'), distinguishing it from siblings like 'delete_snapshot' (which likely removes a saved snapshot) and 'promote_draft' (which applies draft changes). It explicitly mentions that the live pipeline config remains unchanged, which clarifies the scope of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use this to abandon draft changes and go back to the current live version.' This directly contrasts with alternatives like 'promote_draft' (which would apply draft changes) or 'update_workflow' (which might modify the live version), offering clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_workflowA
Export a workflow as portable JSON for cross-environment transfer. Returns a self-contained WorkflowExport object with all steps, context, metadata, and pages. Workspace-specific identifiers (workspaceId, agentIds) are stripped so the export can be imported into any workspace.
Use this together with import_workflow to move workflows between environments (e.g. sandbox โ prod).
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID to export |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it returns a 'self-contained WorkflowExport object' with specific contents (steps, context, metadata, pages), strips workspace-specific identifiers for portability, and implies a read-only operation (exporting rather than modifying). However, it doesn't mention error conditions, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the first states the core purpose and output, the second explains the portability feature, and the third provides usage context. Every sentence adds essential information with zero waste, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description does well by explaining the output format ('WorkflowExport object'), contents, and portability behavior. It could be more complete by detailing error cases or response structure, but it covers the essential context given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'workflowId' clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Export a workflow as portable JSON') and resource ('workflow'), distinguishing it from siblings like 'import_workflow' (for importing) and 'get_workflow' (for viewing). It explicitly mentions the output format and purpose for cross-environment transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use this together with import_workflow to move workflows between environments (e.g. sandbox โ prod).' It names the alternative tool ('import_workflow') and gives a concrete use case, clearly differentiating it from other workflow-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_actionsA
Get detailed action schemas for a specific app. Returns input parameters, output fields, and credit costs. Use this to understand exactly what inputs an action needs when building workflow steps.
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The app ID (e.g., "agentled", "hunter", "web-scraping", "affinity-crm") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool returns 'input parameters, output fields, and credit costs', which gives some behavioral insight into the response format. However, it lacks details on permissions, rate limits, error handling, or whether it's a read-only operation (implied by 'Get' but not explicit). For a tool with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by usage guidance. Every sentence earns its place by adding value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and a simple single parameter with full schema coverage, the description is moderately complete. It explains the purpose and usage but lacks behavioral details like response format specifics or error cases, which are important for a tool that returns schemas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'appId' clearly documented as 'The app ID' with examples. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: 'Get detailed action schemas for a specific app' with verb 'Get' and resource 'detailed action schemas'. It distinguishes from sibling tools like 'list_apps' (which lists apps) and 'get_step_schema' (which might get step schemas), by focusing on app-specific action schemas with details like parameters, output fields, and credit costs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it: 'Use this to understand exactly what inputs an action needs when building workflow steps.' This implies it's for workflow construction, but it doesn't explicitly state when not to use it or name alternatives among siblings (e.g., 'get_step_schema' might be related).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brandingA
Get the workspace's whitelabel branding configuration. Returns the current branding settings: displayName, logoUrl, tagline, primaryColor, primaryColorDark, faviconUrl, and hideBadge. Use this to inspect the current client portal branding before making changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is a read operation ('Get', 'inspect') and specifies the return data structure (listing specific fields like displayName, logoUrl). However, it lacks details on permissions, rate limits, or error handling, which would be beneficial for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by return details and usage guidance. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete: it explains the purpose, return values, and usage context. However, it could be more complete by explicitly mentioning that no parameters are needed or detailing potential errors, though this is minor for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description appropriately does not discuss parameters, as none exist. It earns a baseline 4 for not adding unnecessary param info, but not a 5 since it doesn't explicitly state 'no parameters required'โthough this is implied by the context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get') and resource ('workspace's whitelabel branding configuration'), distinguishing it from siblings like 'update_branding' (which modifies) and 'get_workspace' (which retrieves general workspace info). It precisely identifies what is retrieved without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: 'Use this to inspect the current client portal branding before making changes.' This provides clear context for usage (pre-modification inspection) and implicitly distinguishes it from the sibling 'update_branding' as an alternative for making changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_draftA
Get the draft snapshot for a live workflow. When you update a live workflow, changes go to a draft instead of modifying the live pipeline. Use this to inspect the current draft state. Returns hasDraft: true/false and the draft config if it exists.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that this is a read operation ('Get', 'inspect'), implies it's non-destructive, and describes the return structure ('Returns hasDraft: true/false and the draft config if it exists'). However, it lacks details on permissions, error handling, or rate limits, which are important for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: the first states the purpose, the second provides context, and the third explains the return value. Every sentence adds value without redundancy, making it front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple parameter schema, the description is fairly complete: it explains the tool's purpose, usage context, and return structure. However, for a tool with no annotations, it could benefit from more behavioral details like error cases or authentication needs, preventing a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'workflowId' documented as 'The workflow ID'. The description doesn't add any parameter-specific semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the draft snapshot for a live workflow' specifies the verb ('Get') and resource ('draft snapshot'), and it explains that drafts are created when updating live workflows. However, it doesn't explicitly differentiate from siblings like 'get_workflow' or 'promote_draft', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'When you update a live workflow, changes go to a draft instead of modifying the live pipeline. Use this to inspect the current draft state.' This gives practical guidance on its purpose. It doesn't explicitly state when not to use it or name alternatives like 'get_workflow', so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_executionA
Get full execution details including results from each completed step. The executionContent field maps stepId -> step output data. Use this to inspect what a workflow produced, debug failures, or check intermediate results.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| executionId | Yes | The execution ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as a read operation ('Get full execution details'), which implies it's non-destructive, but doesn't explicitly state permission requirements, rate limits, or error behaviors. The description adds some behavioral context by explaining the structure of the output ('executionContent field maps stepId -> step output data'), which is valuable given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by specific usage contexts. Every sentence adds value: the first defines the tool, the second explains output structure, and the third provides usage scenarios. There is no wasted text or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job of explaining what the tool returns (execution details with step outputs) and its purpose. However, it lacks details on error cases, pagination, or authentication requirements, which could be relevant for a tool that retrieves execution data. It's mostly complete but has minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (workflowId and executionId) adequately. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or relationships between parameters. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get full execution details including results from each completed step') and distinguishes it from siblings like 'list_executions' (which likely lists executions) and 'get_workflow' (which likely gets workflow definitions). It explicitly mentions what the tool retrieves: execution details with step outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'to inspect what a workflow produced, debug failures, or check intermediate results.' It doesn't explicitly state when not to use it or name alternatives (e.g., 'list_executions' for summaries), but the context is sufficiently detailed for an agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_rowsB
Fetch sample rows from a knowledge list. Use this to inspect actual data โ see example payloads from investor/deal lists. Returns rows with their full rowData, plus count and totalCount for the list.
| Name | Required | Description | Default |
|---|---|---|---|
| listKey | Yes | The list key to fetch rows from (e.g., "investors", "deals") | |
| limit | No | Number of rows to return (default 5, max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that it returns 'rows with their full rowData, plus count and totalCount for the list', which adds behavioral context beyond the input schema. However, it lacks details on permissions, rate limits, error handling, or whether it's read-only/safe (though 'fetch' implies read). For a tool with no annotations, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first states purpose and usage, second specifies return values. It's front-loaded with the core action and context, and every sentence adds value (e.g., clarifying output structure). Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with full schema coverage, no annotations, and no output schema, the description is adequate but has gaps. It explains the purpose and output ('rows with full rowData, count, totalCount'), which helps compensate for missing output schema. However, for a data-fetching tool with no annotations, it could better address safety, permissions, or data freshness to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (listKey and limit). The description adds no parameter-specific semantics beyond what's in the schema (e.g., it doesn't elaborate on listKey examples beyond 'investors, deals' or explain limit implications). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch sample rows') and resource ('from a knowledge list'), and specifies the purpose is to 'inspect actual data' with 'example payloads from investor/deal lists'. It distinguishes from sibling tools like 'get_knowledge_text' by focusing on row data rather than text content. However, it doesn't explicitly differentiate from 'list_knowledge_lists' which might list metadata vs. actual row data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Use this to inspect actual data โ see example payloads'), suggesting it's for data exploration rather than operational tasks. It doesn't provide explicit when-not-to-use guidance or name alternatives among siblings (e.g., 'get_knowledge_text' for text content or 'list_knowledge_lists' for metadata). The guidance is helpful but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledge_textB
Fetch a text-type knowledge entry by key. Use this to access text-based knowledge like feedback files, notes, or configuration text stored in the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The key of the text entry to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions fetching text entries but does not disclose behavioral traits such as authentication requirements, rate limits, error handling, or whether it's a read-only operation. The description is minimal and misses key operational details needed for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and followed by usage context. It is efficient with no wasted words, though it could be slightly more structured (e.g., separating purpose from examples).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It lacks information on return values, error cases, permissions, or system behavior. For a tool with one parameter and high schema coverage, the description does not compensate for missing contextual details needed for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'key' parameter documented. The description adds minimal semantics by specifying that the key is for 'text-type knowledge entry' and examples like 'feedback files, notes, or configuration text', but does not provide additional details beyond what the schema already covers. Baseline is 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('fetch') and resource ('text-type knowledge entry by key'), and specifies the type of content ('text-based knowledge like feedback files, notes, or configuration text'). However, it does not explicitly differentiate from sibling tools like 'get_knowledge_rows' or 'list_knowledge_lists', which might handle similar knowledge data but in different formats or scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for accessing text-based knowledge stored in the workspace, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., 'get_knowledge_rows' for non-text entries or 'list_knowledge_lists' for listing). It offers some context but lacks clear exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scoring_historyA
Fetch scoring history for entities from the Knowledge Graph. Returns past scoring decisions (PROCEED_TO_IC, HOLD_FOR_REVIEW, REPOSITION, SCORED) with DMF scores and dates. Use this to see how entities were previously scored and calibrate future scoring runs. Returns both structured records and a compact text format for prompt injection.
| Name | Required | Description | Default |
|---|---|---|---|
| entityName | No | Filter scoring history by entity name | |
| limit | No | Max records to return (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('structured records and a compact text format for prompt injection') and the purpose ('calibrate future scoring runs'), but it does not address potential limitations like rate limits, authentication needs, or data freshness. It adds some context but leaves gaps in behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with three sentences that each earn their place: the first states the purpose, the second details the return content, and the third provides usage context. There is no wasted text, and it efficiently conveys essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (fetching historical data with two parameters), no annotations, and no output schema, the description does a good job of covering purpose, return format, and usage context. However, it could be more complete by addressing potential errors, data scope (e.g., time range), or integration details, leaving minor gaps in contextual coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already fully documents the two parameters (entityName and limit). The description does not add any additional meaning or syntax details beyond what the schema provides, such as examples of entity names or clarification on the default limit. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Fetch scoring history'), the resource ('entities from the Knowledge Graph'), and the scope ('past scoring decisions with DMF scores and dates'). It distinguishes this tool from siblings by focusing on historical scoring data rather than current operations or workflow management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to see how entities were previously scored and calibrate future scoring runs'), but it does not explicitly mention when not to use it or name specific alternatives among the sibling tools. The guidance is helpful but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_step_schemaA
Get the full schema of allowed fields on workflow steps (PipelineStep type). Returns field names, types, descriptions, grouped by category. Use this to understand what fields you can set on a step. Unknown fields are automatically stripped on save โ only fields listed here are persisted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It effectively discloses key behavioral traits: it's a read-only operation (implied by 'Get'), returns structured schema data, and warns about automatic stripping of unknown fields on save. However, it doesn't mention potential errors, rate limits, or authentication needs, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by usage guidance and a critical warning. Every sentence earns its place: the first defines the tool, the second instructs when to use it, and the third explains a key behavioral consequence. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple read operation with 0 parameters) and lack of annotations/output schema, the description is nearly complete. It covers purpose, usage, and a critical behavioral note. However, it could briefly mention the return format (e.g., JSON structure) or error cases for full completeness, as there's no output schema to rely on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description doesn't need to explain parameters, but it correctly implies none are required by not mentioning any. It adds value by clarifying the tool's purpose and output, aligning with the baseline expectation for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get the full schema'), the resource ('workflow steps (PipelineStep type)'), and the output content ('field names, types, descriptions, grouped by category'). It distinguishes itself from siblings like 'get_workflow' or 'update_step' by focusing on schema metadata rather than workflow instances or step updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: 'Use this to understand what fields you can set on a step.' It also provides a critical exclusion: 'Unknown fields are automatically stripped on save โ only fields listed here are persisted,' guiding users to consult this schema before setting step fields to avoid data loss.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timelineA
Get a single timeline (step execution record) by ID. Returns the full timeline including eventContent (step output), status, metadata, and context. Use this to inspect a specific step's result in detail.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| executionId | Yes | The execution ID | |
| timelineId | Yes | The timeline ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns detailed data including eventContent, status, metadata, and context, which helps understand the return structure. However, it doesn't mention error conditions, authentication requirements, rate limits, or whether the operation is idempotent, leaving behavioral gaps for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each serve distinct purposes: the first states the core functionality, and the second provides usage guidance. There's no redundant information, and it's front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read operation with 3 fully documented parameters and no output schema, the description provides good context about what data is returned and when to use the tool. However, without annotations or output schema, it could benefit from more detail about error cases or response format specifics to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing complete parameter documentation in the structured schema. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain parameter relationships or provide examples). With full schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get a single timeline by ID') and resource ('timeline/step execution record'), distinguishing it from sibling tools like list_timelines (which lists multiple) and get_execution (which focuses on execution-level data). It specifies that this tool retrieves detailed step-level information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('to inspect a specific step's result in detail'), providing clear context for its application. It implicitly distinguishes from alternatives like list_timelines (for browsing) and get_execution (for broader execution data) by emphasizing single-item detail retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowA
Get full details of a workflow including all steps, context, metadata, and configuration. Also returns hasDraftSnapshot (boolean) and draftSnapshot summary if a draft exists for a live workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes what is returned but does not disclose behavioral traits such as permissions needed, rate limits, error handling, or whether it's a read-only operation. The mention of draft info adds some context but is insufficient for a mutation-heavy environment with siblings like 'update_workflow'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded with core functionality and add draft-related details without waste. Every sentence earns its place by providing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (single parameter, no output schema, no annotations), the description is complete enough for a basic read operation but lacks details on output format, error cases, or integration with sibling tools. It covers what is returned but not how to interpret or use the results effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'workflowId'. The description does not add meaning beyond what the schema provides (e.g., format or constraints for the ID), meeting the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('workflow') with specific details about what is returned ('full details including all steps, context, metadata, and configuration'), and distinguishes it from siblings like 'list_workflows' (which likely lists workflows without details) and 'get_draft' (which focuses on drafts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying what details are returned, but does not explicitly state when to use this tool versus alternatives like 'get_draft' or 'list_workflows'. It mentions draft-related info, which hints at context but lacks clear when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceA
Get workspace company info, offerings, and knowledge schema overview. Returns company details (name, industry, size, offerings) and a summary of all knowledge lists with their field definitions and row counts. Use this as a first call to understand what data the workspace has.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what information is returned (company details and knowledge list summaries) but doesn't mention potential limitations like rate limits, authentication requirements, or whether this is a read-only operation. It adequately describes the scope but lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with three sentences that each serve a distinct purpose: stating what the tool does, detailing what it returns, and providing usage guidance. There's zero wasted language, and the information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a 0-parameter tool with no annotations and no output schema, the description does a good job explaining what the tool returns and when to use it. However, without an output schema, the description could benefit from more detail about the exact structure of the returned data (beyond just listing categories).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it focuses on the tool's purpose and usage instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get workspace company info, offerings, and knowledge schema overview' with specific details about what information is returned. It distinguishes from siblings by focusing on workspace metadata rather than operations like 'get_knowledge_rows' or 'list_workflows', though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this as a first call to understand what data the workspace has.' This clearly indicates when to use this tool versus alternatives, positioning it as an initial discovery/exploration tool before diving into specific data operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_n8n_workflowA
Create a new Agentled workflow from an n8n JSON import.
Behavior:
runs deterministic import preview
creates workflow in preflight draft mode
stores imported contract for review/approval
does NOT auto-apply scaffold
| Name | Required | Description | Default |
|---|---|---|---|
| n8nJson | No | n8n workflow JSON object or string export | |
| workflow | No | Optional metadata overrides for the created workflow | |
| options | No | Optional import options | |
| locale | No | Locale for workflow creation (default en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and adds valuable behavioral details: it runs a 'deterministic import preview,' creates in 'preflight draft mode,' stores an 'imported contract for review/approval,' and explicitly states it 'does NOT auto-apply scaffold.' This covers key operational traits like safety (draft mode) and limitations (no auto-scaffold), though it omits details like error handling or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: a clear purpose statement followed by a bulleted list of key behaviors. Each bullet adds essential information without redundancy, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (import with 4 parameters, nested objects, no output schema) and no annotations, the description is mostly complete. It explains the core behavior and limitations but could benefit from mentioning output format or error cases. However, it adequately covers the import process and draft creation for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no specific parameter semantics beyond implying 'n8nJson' is the import source and 'workflow' provides metadata overrides. This meets the baseline of 3, as the schema handles the heavy lifting without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new Agentled workflow from an n8n JSON import') and distinguishes it from siblings like 'create_workflow' (general creation) and 'import_workflow' (non-n8n import). It specifies the source format (n8n JSON) and target (Agentled workflow), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'preflight draft mode' and 'does NOT auto-apply scaffold,' suggesting it's for initial import/review rather than immediate deployment. However, it lacks explicit guidance on when to use this versus alternatives like 'preview_n8n_import' (preview only) or 'create_workflow' (manual creation), leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_workflowA
Import a workflow from an export JSON into this workspace. Accepts the full WorkflowExport object (from export_workflow) and creates a new workflow with fresh IDs. Associated pages are recreated. Import provenance is recorded in the workflow metadata.
Use this together with export_workflow to move workflows between environments. Tip: register separate MCP servers for sandbox and prod, export from one, import into the other.
| Name | Required | Description | Default |
|---|---|---|---|
| exportJson | Yes | The WorkflowExport object (output from export_workflow) | |
| locale | No | Locale for the imported workflow (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: creates new workflows with fresh IDs, recreates associated pages, records import provenance in metadata, and works with WorkflowExport objects. However, it doesn't mention potential side effects like overwriting existing workflows or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with three focused paragraphs: purpose statement, behavioral details, and usage guidance. Every sentence adds value with zero wasted words. The information is front-loaded with the core purpose stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description provides good coverage of what the tool does, how to use it, and its relationship to export_workflow. However, it doesn't describe the return value or error conditions, which would be helpful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds some context by mentioning 'exportJson' should be 'the full WorkflowExport object (from export_workflow)', but doesn't provide additional semantic meaning beyond what's in the schema descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Import a workflow from an export JSON'), identifies the resource ('workflow'), and distinguishes it from siblings by specifying it works with 'export_workflow' output and creates new workflows with fresh IDs. It explicitly differentiates from 'import_n8n_workflow' by focusing on native workflow exports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Use this together with export_workflow to move workflows between environments') and offers a practical tip about registering separate MCP servers for different environments. It clearly positions this as a companion to export_workflow for migration purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appsA
List all available apps/integrations in Agentled. Returns app names, descriptions, and action summaries. Use this to discover what integrations are available before building a workflow. Common apps: agentled (LinkedIn enrichment, email finder), hunter (email), web-scraping, affinity-crm, specter, http-request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format ('app names, descriptions, and action summaries'), which is useful, but lacks details on potential limitations like pagination, rate limits, or authentication requirements. However, it does not contradict any annotations, and for a read-only list tool with zero parameters, this level of transparency is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by usage guidance and examples, with no wasted words. Every sentence adds value, such as clarifying the return format and providing practical examples, making it efficient and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is mostly complete. It explains what the tool does, when to use it, and what it returns. However, it could improve by mentioning any behavioral traits like response format details or potential errors, but for a basic list tool, this is sufficient to guide an AI agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the inputs. The description does not need to add parameter information, and it appropriately focuses on the tool's purpose and usage. A baseline of 4 is applied as it compensates adequately for the lack of parameters by providing clear context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('List all available apps/integrations') and resources ('in Agentled'), and distinguishes it from siblings like 'get_app_actions' by focusing on discovery rather than detailed action information. It explicitly mentions what is returned ('app names, descriptions, and action summaries'), making the purpose highly specific and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Use this to discover what integrations are available before building a workflow'), which clearly differentiates it from other tools like 'create_workflow' or 'list_workflows'. It also lists common apps as examples, helping users understand the context and scope of its application without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_executionsB
List recent executions for a workflow. Returns execution id, status, timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| status | No | Filter: running, completed, failed | |
| limit | No | Max results (default 50, max 500) | |
| direction | No | Sort order (default: desc) | |
| nextToken | No | Pagination cursor from a previous response. Pass this to fetch the next page of results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return fields (execution id, status, timestamps) but lacks critical details: it doesn't specify if this is a read-only operation, whether it requires authentication, any rate limits, pagination behavior beyond the 'nextToken' parameter, or error conditions. For a list tool with 5 parameters, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and includes essential return information. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and return fields but lacks behavioral context (e.g., pagination, auth needs) and usage guidelines. With no output schema, it should ideally describe the response format more thoroughly, but it does state what's returned in a high-level way.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters with descriptions, defaults, and enums. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain relationships between parameters like 'status' filtering with 'limit'). Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate with extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('recent executions for a workflow'), and specifies what information is returned. It distinguishes this tool from siblings like 'get_execution' (which retrieves a single execution) and 'retry_execution' (which performs an action). However, it doesn't explicitly differentiate from other list tools like 'list_workflows' or 'list_snapshots' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a workflow ID), exclusions, or comparisons to sibling tools like 'get_execution' for detailed views or 'list_workflows' for broader listings. Usage is implied by the name and parameters but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledge_listsA
List all knowledge list schemas with field definitions, row counts, and metadata. Returns detailed information about each list including fields, source type, category, entity config, and KG sync status. Use this to discover what lists exist and understand their structure before querying rows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool's behavior by stating it returns detailed information (fields, source type, etc.) and its purpose for discovery, but lacks details on potential limitations like pagination, rate limits, or authentication requirements. The description doesn't contradict annotations (none exist), but could be more comprehensive for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by elaboration and usage guidance. All three sentences add value: the first states what it does, the second details the returned information, and the third explains when to use it. There is no wasted text, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description does a good job of explaining the tool's purpose, behavior, and usage. It covers what the tool returns and why to use it, but could be more complete by mentioning potential output format or limitations. For a simple list tool with no structured metadata, it's largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter semantics, but it implicitly confirms no parameters are needed by not mentioning any. This aligns with the schema, earning a baseline score above 3 due to the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('List all knowledge list schemas') and resources ('knowledge list schemas'), distinguishing it from siblings like 'get_knowledge_rows' or 'get_knowledge_text' by focusing on metadata rather than content. It explicitly mentions what information is returned (field definitions, row counts, metadata) and why to use it (to discover lists and understand structure).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('to discover what lists exist and understand their structure before querying rows'), implying it should be used as a precursor to tools like 'get_knowledge_rows'. It distinguishes from siblings by focusing on schema discovery rather than data retrieval or other operations, though it doesn't explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_snapshotsA
List available config snapshots for a workflow. Snapshots are automatically captured before every external API update, allowing you to restore a previous configuration. Returns snapshot ID, timestamp, and which fields were changed.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that snapshots are automatically captured before external API updates and can be used for restoration, which adds useful behavioral context. However, it doesn't mention permissions needed, rate limits, pagination, or error conditions, leaving gaps for a read operation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first explains what the tool does and the snapshot capture mechanism, the second specifies the return values. Every sentence adds value with zero waste, making it appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description provides good context about snapshot purpose and return data. It covers the 'why' (restoration) and 'what' (returned fields), but lacks details on output format structure or behavioral constraints like ordering or limits, which would be helpful for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single 'workflowId' parameter. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or constraints. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List available config snapshots'), specifies the resource ('for a workflow'), and distinguishes from siblings by focusing on automatic snapshots captured before external API updates. It explicitly mentions what information is returned (snapshot ID, timestamp, changed fields), making the purpose specific and well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to view snapshots for workflow configuration restoration, but doesn't explicitly state when to use this tool versus alternatives like 'restore_snapshot' or 'get_workflow'. It mentions the automatic capture context, which provides some guidance, but lacks explicit when/when-not instructions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_timelinesA
List timelines (step execution records) for a specific execution. Each timeline represents a step that ran, with its status, output, and metadata. Use this to inspect individual step results, debug failures, or see the execution flow.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| executionId | Yes | The execution ID | |
| limit | No | Max results (default 50, max 500) | |
| direction | No | Sort order by creation time (default: desc) | |
| nextToken | No | Pagination cursor from a previous response. Pass this to fetch the next page of results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what timelines contain (status, output, metadata) and their purpose, but lacks details about permissions, rate limits, error conditions, or pagination behavior beyond what's implied by 'list'. The description doesn't contradict any annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place. The first sentence defines the tool's core function, while the second provides usage context. There's zero wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with 5 parameters and no output schema, the description is adequate but has gaps. It explains what timelines are and their purpose, but doesn't describe the return format, pagination details (beyond the nextToken parameter in schema), or error handling. With no annotations and no output schema, more behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all 5 parameters. The description doesn't add any parameter-specific information beyond what the schema provides (e.g., it doesn't explain relationships between workflowId and executionId or provide examples). The baseline of 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('list timelines', 'inspect individual step results', 'debug failures', 'see execution flow') and distinguishes it from siblings like 'get_timeline' (singular) by emphasizing it lists multiple step execution records for a specific execution. It explicitly identifies the resource as 'timelines (step execution records)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to inspect individual step results, debug failures, or see the execution flow'), but does not explicitly state when not to use it or name alternatives. It implies usage for post-execution analysis rather than real-time monitoring, though this could be more explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflowsB
List all workflows in the workspace. Returns id, name, status, goal for each.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status: draft, active, paused | |
| limit | No | Max results (default 50, max 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral context. It mentions the return fields but doesn't cover pagination (implied by 'limit' parameter), ordering, error conditions, authentication needs, or rate limits. 'List all workflows' suggests a read-only operation, but this isn't explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste. The first sentence states the action and scope, and the second specifies the return fields, making it front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It covers basic purpose and return fields but lacks details on behavior, error handling, or usage context. For a simple list tool with full schema coverage, it's minimally adequate but leaves gaps in transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for adequate coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all workflows in the workspace'), and specifies the returned fields (id, name, status, goal). It distinguishes from siblings like 'get_workflow' (singular) but doesn't explicitly differentiate from other list tools like 'list_executions' or 'list_snapshots'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. It doesn't mention when to prefer 'list_workflows' over 'get_workflow' for single workflows, or how it relates to other list tools like 'list_executions' for workflow runs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_n8n_importA
Preview a deterministic n8n import from JSON. Returns:
normalized import hash and IR
mapped step graph
unsupported nodes + remediation
warnings/risks
draft workflow build contract and compiler readiness summary
This is a read-only preview and does not create any workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| n8nJson | No | n8n workflow JSON object or string export | |
| options | No | Optional import options (e.g. maxNodes, allowPartial) | |
| workflow | No | Optional workflow metadata overrides for preview contract |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by explicitly stating this is 'read-only' and 'does not create any workflow,' which clarifies safety and side effects. However, it lacks details on error handling, performance characteristics, rate limits, or authentication requirements that would be valuable for a tool processing JSON imports.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: it starts with the core purpose, lists the return components in a clear bullet format, and ends with a crucial behavioral note. Every sentence earns its place, with no wasted words, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (processing JSON imports with multiple return components) and lack of output schema, the description does a good job outlining what the tool returns. It lists five specific output components, which helps set expectations. However, without annotations or output schema, it could benefit from more detail on error cases or example outputs to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it doesn't explain JSON format requirements or option details). This meets the baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Preview a deterministic n8n import from JSON') and the resource involved (n8n workflow). It distinguishes from siblings like 'import_n8n_workflow' by emphasizing this is a read-only preview that doesn't create workflows, making the purpose highly specific and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: to preview an n8n import without creating anything. It explicitly states 'This is a read-only preview and does not create any workflow,' which helps differentiate it from actual import tools. However, it doesn't explicitly mention when NOT to use it or name specific alternatives like 'import_n8n_workflow' for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_draftA
Promote the draft snapshot to live. This overwrites the live pipeline config with the draft contents, then deletes the draft snapshot. A pre-promote snapshot is saved automatically so the previous live config can be restored if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly describes the destructive action ('overwrites the live pipeline config', 'deletes the draft snapshot') and safety mechanism ('A pre-promote snapshot is saved automatically'). This covers key behavioral traits like mutation effects and rollback capability, though it doesn't address permissions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core action and immediate effects, the second explains the safety mechanism. Every sentence adds critical information with zero wasted words, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does well by explaining the destructive behavior and automatic backup. However, it doesn't mention potential error conditions, response format, or prerequisites (e.g., requiring a draft to exist). Given the complexity, it's mostly complete but has minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'workflowId' parameter. The description does not add any parameter-specific information beyond what the schema provides, such as format examples or constraints. The baseline score of 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Promote the draft snapshot to live') and resource ('draft snapshot'), distinguishing it from siblings like 'discard_draft' (which deletes without promoting) and 'restore_snapshot' (which restores previous versions). It precisely defines the operation's scope and outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a draft is ready to become live, but does not explicitly state when to use this tool versus alternatives like 'discard_draft' or 'restore_snapshot'. It mentions the automatic pre-promote snapshot for restoration, which provides some contextual guidance but lacks explicit when/when-not directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_workflowA
Change the status of a workflow (publish, pause, or archive). Valid transitions: created/draft -> live, live -> paused, paused -> live, any -> archived. Use "live" to publish a draft workflow so it can be executed.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| status | Yes | Target status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses behavioral traits like valid status transitions and the effect of setting 'live' to publish a draft, but it lacks details on permissions, error handling, or rate limits. It does not contradict annotations, as there are none.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with three sentences that each earn their place: stating the purpose, listing transitions, and explaining the 'live' status. There is no wasted text, making it efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (status transitions), no annotations, and no output schema, the description is fairly complete. It covers key behavioral aspects but could improve by addressing permissions or error scenarios. It effectively uses the high schema coverage to focus on added context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds value by explaining the semantics of the 'status' parameter, clarifying that 'live' publishes a draft workflow, which goes beyond the schema's enum listing. This compensates for the lack of output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Change the status') and resource ('workflow'), and it distinguishes this from sibling tools like 'start_workflow' or 'update_workflow' by focusing on status transitions rather than execution or content updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool by listing valid status transitions (e.g., 'created/draft -> live'), which implicitly guides usage. However, it does not explicitly mention when not to use it or name alternatives among siblings, such as 'promote_draft' for draft workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_kg_edgesA
Traverse Knowledge Graph edges by entity name and/or relationship type. Returns edges with source/target node IDs, relations, scores, and metadata. Use this to explore deal relationships, investor-startup connections, and scoring edges. Gracefully returns empty results if the Knowledge Graph is not configured.
| Name | Required | Description | Default |
|---|---|---|---|
| entityName | No | Filter edges by entity name | |
| relationshipType | No | Filter edges by relationship type (e.g., "INVESTED_IN", "SCORED") | |
| limit | No | Max edges to return (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by specifying what is returned (edges with IDs, relations, scores, metadata) and the graceful handling of an unconfigured Knowledge Graph. However, it lacks details on permissions, rate limits, or potential side effects, which are important for a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with four concise sentences that each add value: stating the action, specifying returns, providing usage examples, and noting error handling. There is no wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a query tool with no annotations and no output schema, the description does well by explaining returns and error handling. However, it could improve by detailing output structure or pagination behavior, which would enhance completeness for an agent invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters well. The description adds minimal value by implying filtering capabilities ('by entity name and/or relationship type') and example relationship types, but does not provide additional syntax or format details beyond what the schema offers, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('traverse', 'explore') and resources ('Knowledge Graph edges'), and distinguishes it from siblings by focusing on edge traversal rather than operations like creating workflows or getting knowledge rows. It explicitly mentions what it returns and its graceful handling of unconfigured states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to explore deal relationships, investor-startup connections, and scoring edges'), which helps differentiate it from siblings like 'get_knowledge_rows' or 'get_scoring_history'. However, it does not explicitly state when not to use it or name specific alternatives, keeping it from a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_snapshotA
Restore a workflow to a previous config snapshot. Use list_snapshots first to find the snapshot ID. This will revert the workflow's steps, context, name, description, goal, and style to the state captured in the snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| snapshotId | Yes | The snapshot ID to restore (from list_snapshots) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool will 'revert' workflow attributes, implying a destructive mutation, but lacks details on permissions needed, whether the action is reversible, rate limits, or error conditions. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose and followed by a prerequisite and detailed scope. Every sentence earns its place with no wasted words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive restore operation, no annotations, and no output schema, the description is incomplete. It covers the purpose and parameters but lacks behavioral details like side effects, permissions, or response format, which are critical for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly documented in the schema. The description adds minimal value by referencing list_snapshots for snapshotId but does not provide additional syntax or format details beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Restore a workflow to a previous config snapshot') and resource ('workflow'), distinguishing it from siblings like create_snapshot, delete_snapshot, and update_workflow. It specifies what gets restored: 'steps, context, name, description, goal, and style'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance to 'Use list_snapshots first to find the snapshot ID,' establishing a prerequisite. However, it does not mention when not to use this tool or alternatives, such as update_workflow for partial changes or discard_draft for reverting drafts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retry_executionA
Retry a failed step in a workflow execution. If no timelineId is provided, the most recent failed timeline is automatically detected and retried. This re-runs the failed step and continues the workflow from that point.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| executionId | Yes | The execution ID containing the failed step | |
| timelineId | No | Specific timeline ID to retry. If omitted, the most recent failed timeline is auto-detected. | |
| forceWithoutCache | No | Bypass cache when retrying the step |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: automatic detection of the most recent failed timeline if timelineId is omitted, re-running the failed step, and continuing the workflow from that point. However, it lacks details on permissions, side effects, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by essential behavioral details. Both sentences earn their place by providing critical information without redundancy, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the tool's purpose, key behavior, and parameter implications adequately for a mutation tool. However, it could be more complete by mentioning potential side effects or response format, though it's sufficient for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the auto-detection behavior for timelineId ('If no timelineId is provided, the most recent failed timeline is automatically detected'), which clarifies parameter semantics beyond the schema's technical description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('retry a failed step') and resource ('workflow execution'), distinguishing it from siblings like 'start_workflow' or 'stop_execution'. It precisely defines the tool's function without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'failed step' and 'workflow execution', but does not explicitly state when to use this tool versus alternatives like 'restart_workflow' or 'get_execution'. It provides some guidance but lacks explicit comparisons or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_workflowB
Start a workflow execution. Optionally provide input data that maps to the workflow's input page fields. For example, if the workflow expects "company_url", pass: { input: { company_url: "https://..." } }
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID to start | |
| input | No | Input payload matching the workflow input page fields | |
| metadata | No | Optional execution metadata |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action ('Start a workflow execution') but lacks critical details: it doesn't specify whether this is a read-only or destructive operation, what permissions are required, how errors are handled, or what the execution entails (e.g., asynchronous vs. synchronous). This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured: the first sentence states the core purpose, and the second provides a practical example without unnecessary details. Every sentence earns its place by adding clear value, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of starting a workflow execution (a potentially destructive operation with 3 parameters and no output schema), the description is minimally adequate. It covers the basic purpose and parameter usage but lacks details on behavioral aspects like side effects, error handling, or return values, which are crucial for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds some value by explaining the 'input' parameter with an example ('if the workflow expects "company_url", pass: { input: { company_url: "https://..." } }'), which clarifies its purpose beyond the schema's generic description. However, with 100% schema description coverage, the schema already documents all parameters adequately, so the description's contribution is marginal, meeting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start a workflow execution') and the resource ('workflow'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'retry_execution' or 'stop_execution' which also involve workflow executions, leaving some ambiguity about when this specific tool should be used versus those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some implied context about when to use the tool ('Optionally provide input data that maps to the workflow's input page fields'), suggesting it's for initial execution. However, it doesn't explicitly contrast with alternatives like 'retry_execution' or mention prerequisites such as needing an existing workflow ID, leaving gaps in comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_executionA
Stop a running or pending workflow execution. Only works on executions with status "running" or "pending".
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| executionId | Yes | The execution ID to stop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool's behavioral constraint (only works on specific statuses) but doesn't mention permissions needed, whether the action is reversible, rate limits, or what happens after stopping. For a mutation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste: the first states the purpose, and the second adds crucial usage constraints. It's front-loaded and every sentence earns its place by providing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It covers the purpose and basic constraints but lacks details on permissions, side effects, error conditions, or what the tool returns. For a tool that modifies system state, more behavioral context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('workflowId' and 'executionId'). The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or relationships between parameters. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Stop') and target resource ('a running or pending workflow execution'), distinguishing it from sibling tools like 'retry_execution' or 'get_execution'. It precisely defines what the tool does without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool ('Only works on executions with status "running" or "pending"'), providing clear context and exclusions. This helps differentiate it from alternatives like 'retry_execution' or tools for other execution states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_ai_actionA
Test an AI prompt in isolation without creating a workflow or execution. Pass a prompt template with {{variable}} syntax and variable values to run the AI and see the response. Useful for tuning prompts and response structures before adding an AI step to a workflow. Example: test_ai_action("Analyze this company: {{company}}", { company: "Stripe" }, { score: "number 0-100", summary: "string" })
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | Prompt template with {{variable}} placeholders | |
| variables | No | Variable values to substitute in the template | |
| responseStructure | No | Expected JSON output shape (e.g., { score: "number 0-100", summary: "string" }) | |
| responseType | No | Response format: "json" (default) or "text" | |
| systemPrompt | No | Optional system instructions for the AI |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well: it explains this is a testing operation that doesn't create workflows or executions (clarifying it's non-destructive), mentions it's for prompt tuning, and provides an example showing how it works. It doesn't mention rate limits or authentication needs, but covers core behavioral aspects adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly structured: first sentence states purpose, second explains parameter usage, third provides usage context, and fourth gives a concrete example. Every sentence earns its place with zero waste, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, 100% schema coverage, but no output schema, the description does well: it explains the tool's purpose, usage context, and provides an example. It doesn't describe return values (no output schema), but given the example shows expected response structure, it's reasonably complete. Could benefit from mentioning error cases or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some value through the example showing how parameters work together, but doesn't provide additional semantic context beyond what's already in the schema descriptions. The example illustrates parameter usage but doesn't explain semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: 'Test an AI prompt in isolation without creating a workflow or execution.' It distinguishes from siblings like 'test_app_action' by focusing on AI prompt testing rather than app action testing, and from workflow-related tools by emphasizing isolation from workflow creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Useful for tuning prompts and response structures before adding an AI step to a workflow.' It also implies when not to use (when you want to create workflows or executions) by contrasting with sibling tools like 'create_workflow' and 'start_workflow'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_app_actionA
Test an app action in isolation without creating a workflow or execution. Pass the appId and actionId (from list_apps / get_app_actions) plus input data to run the action directly and see results immediately. Useful for verifying inputs before wiring a step into a workflow. Example: test_app_action("web-scraping", "scrape", { url: "https://example.com" })
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | App ID (e.g., "agentled", "web-scraping", "hunter") | |
| actionId | Yes | Action ID (e.g., "scrape", "get-linkedin-company-from-url", "find-email-person-domain") | |
| input | No | Input data for the action (e.g., { url: "https://example.com" }) | |
| bypassCache | No | Skip cache and run against the live API (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool runs actions 'directly' and provides 'results immediately,' which adds behavioral context. However, it lacks details on permissions, rate limits, error handling, or whether it's read-only/destructive. The description doesn't contradict annotations (none exist), but could be more comprehensive for a testing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by usage guidance and a concrete example. Every sentence adds valueโno fluff or repetition. It efficiently communicates key information in three sentences, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does well on purpose and usage but lacks details on behavioral aspects like error handling or output format. For a tool with 4 parameters and nested objects, it could benefit from more context on what 'results immediately' entails or potential side effects. It's adequate but has gaps in transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal semantics: it mentions appId and actionId come from list_apps/get_app_actions and gives an example input format. This provides some context beyond the schema but doesn't deeply explain parameter interactions or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Test an app action in isolation without creating a workflow or execution.' It specifies the verb ('test'), resource ('app action'), and distinguishes it from siblings like create_workflow or start_workflow by emphasizing isolation and immediate testing. The example reinforces this specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Useful for verifying inputs before wiring a step into a workflow.' It differentiates from alternatives like create_workflow or start_workflow by focusing on pre-workflow testing. The mention of 'without creating a workflow or execution' further clarifies its distinct use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_brandingA
Update the workspace's whitelabel branding configuration. Set any combination of branding fields. Pass null or empty string to clear a field.
Fields:
displayName: Brand name shown to clients (e.g., "Acme Corp")
logoUrl: URL to brand logo image
tagline: Short tagline under the brand name
primaryColor: Hex color for light mode (e.g., "#6366f1")
primaryColorDark: Hex color for dark mode (e.g., "#818cf8")
faviconUrl: URL to custom favicon
hideBadge: Boolean โ hide the "Built with Agentled" badge (requires teams/enterprise plan)
| Name | Required | Description | Default |
|---|---|---|---|
| displayName | No | Brand name shown to clients | |
| logoUrl | No | URL to brand logo image | |
| tagline | No | Short tagline under the brand name | |
| primaryColor | No | Hex color for light mode (e.g., "#6366f1") | |
| primaryColorDark | No | Hex color for dark mode (e.g., "#818cf8") | |
| faviconUrl | No | URL to custom favicon | |
| hideBadge | No | Hide "Built with Agentled" badge (requires teams/enterprise plan) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and adds valuable behavioral context: it explains that fields can be partially updated ('any combination'), that null/empty string clears fields, and that 'hideBadge' requires specific plans. However, it doesn't mention mutation effects, permissions needed, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose statement, behavioral notes, and organized field list. Slightly verbose in repeating schema descriptions, but every sentence serves a purpose. Could be more concise by referencing schema instead of duplicating field details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description provides good coverage of what the tool does and how to use parameters. Missing details about response format, error handling, and complete permission requirements prevent a perfect score, but it's substantially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description repeats the field definitions almost verbatim from the schema, adding minimal additional semantic value beyond what's already in structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Update'), target resource ('workspace's whitelabel branding configuration'), and scope ('Set any combination of branding fields'). It distinguishes from the sibling 'get_branding' tool by being the write counterpart to that read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to modify branding settings, but provides no explicit guidance on when to use this versus alternatives like 'update_workflow' or prerequisites. It mentions a plan requirement for 'hideBadge' but doesn't clarify overall access requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_stepA
Update a single step in a workflow by step ID. Only the specified fields are merged โ all other steps and fields remain unchanged. This is SAFER than update_workflow with steps because it cannot accidentally replace or delete other steps.
Use this instead of update_workflow when you only need to change one step (e.g., update a prompt, change inputs, modify entry conditions). Deep-merges nested objects like pipelineStepPrompt, stepInputData, and entryConditions.
For live workflows, changes are routed to a draft snapshot (same behavior as update_workflow).
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID | |
| stepId | Yes | The step ID to update (e.g., "analyze", "scrape-company") | |
| updates | Yes | Partial step updates to merge. Examples: { name: "New Name" }, { pipelineStepPrompt: { template: "..." } }, { stepInputData: { url: "{{input.url}}" } } |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does an excellent job explaining the merge behavior ('Only the specified fields are merged โ all other steps and fields remain unchanged'), safety characteristics ('SAFER than update_workflow'), deep-merge behavior for nested objects, and draft snapshot routing for live workflows. The only minor gap is not mentioning error conditions or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and efficient. It starts with the core purpose, immediately explains the safety advantage, provides usage guidance with examples, details behavioral characteristics, and ends with draft behavior context. Every sentence adds essential information with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does an excellent job covering purpose, usage, safety, merge behavior, and draft routing. It provides sufficient context for an agent to use the tool correctly. The only minor gap is not describing the return value or error conditions, which would be helpful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds meaningful context about how the 'updates' parameter works ('Partial step updates to merge'), provides concrete examples of what can be updated, and explains the deep-merge behavior for nested objects. This significantly enhances understanding beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Update a single step in a workflow by step ID'), identifies the resource ('step in a workflow'), and explicitly distinguishes it from its sibling 'update_workflow' by explaining it's safer for single-step modifications. This provides perfect clarity about what the tool does and how it differs from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('Use this instead of update_workflow when you only need to change one step') with concrete examples (e.g., 'update a prompt, change inputs, modify entry conditions'). It also specifies the safety advantage over the sibling tool, making the usage context perfectly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workflowA
Update an existing workflow. Provide only the fields you want to change.
IMPORTANT: If the workflow is live, config edits (steps, context, name, etc.) are automatically routed to a draft snapshot instead of modifying the live pipeline. The response will include editingDraft: true. Use get_draft to view the draft, promote_draft to make it live, or discard_draft to throw away the changes. Non-live workflows are updated directly with an automatic pre-edit snapshot for rollback.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID to update | |
| updates | Yes | Partial pipeline updates (name, steps, context, etc.) | |
| locale | No | Locale (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels. It discloses critical behavioral traits: the draft mechanism for live workflows (including the editingDraft response), automatic snapshot creation for rollback, and the distinction between live and non-live workflow updates. This goes beyond basic schema information to explain system behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by important behavioral details in a logical flow. Every sentence earns its place by explaining key usage scenarios and system behavior without redundancy. It's appropriately sized for a complex tool with multiple behavioral nuances.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (mutation tool with draft mechanisms) and no annotations/output schema, the description does an excellent job covering behavioral aspects. It explains the update process, draft handling, and related tools. A minor gap is the lack of explicit mention of error conditions or response format details, but it's largely complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying that updates should be partial ('Provide only the fields you want to change') and listing example fields (name, steps, context, etc.), which enhances understanding beyond the schema's 'Partial pipeline updates' description. However, it doesn't detail the locale parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Update an existing workflow') and resource ('workflow'), distinguishing it from siblings like create_workflow, delete_workflow, and update_step. It provides precise scope by specifying 'Provide only the fields you want to change' and mentions config elements like steps, context, and name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool vs alternatives: it explains that for live workflows, edits go to a draft, and directs users to get_draft, promote_draft, or discard_draft for further actions. It also distinguishes from non-live workflows, which are updated directly, and mentions related tools like get_draft.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_workflowA
Validate a workflow's pipeline definition. Returns structured errors per step. Use this after creating or updating a workflow to check for:
Missing step connections (broken next.stepId references)
Missing required fields (app action without inputs, AI step without prompt)
Unreachable steps (not connected to the trigger chain)
Invalid app/action IDs (not in the app registry)
Missing trigger or milestone steps
List field misconfigurations (missing itemFields, defaultValue format mismatches)
Config page field validation (missing name/type on input page fields)
Each error/warning may include a "suggestedFix" with a concrete remediation.
You can also pass a pipeline object to validate a draft before saving. Returns: { valid: boolean, errors: [...], warnings: [...], stepCount: number }
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | The workflow ID to validate | |
| pipeline | No | Optional draft pipeline to validate before saving (merged with stored pipeline) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior by detailing the types of errors checked, the return structure, and the ability to validate drafts. However, it does not mention permissions, rate limits, or side effects, leaving some behavioral aspects unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the main purpose, followed by detailed validation checks and usage notes. It is appropriately sized, but the bulleted list of checks, while informative, could be slightly condensed for better conciseness without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of validation and lack of annotations or output schema, the description does a good job of explaining what the tool does, what it checks, and the return format. However, it could be more complete by including error examples, handling of edge cases, or prerequisites, which would enhance contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (workflowId and pipeline). The description adds context by explaining that the pipeline parameter is for 'validating a draft before saving,' but it does not provide additional semantic details beyond what the schema offers. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('validate a workflow's pipeline definition') and resource ('workflow'), distinguishing it from siblings like create_workflow, update_workflow, or get_workflow. It explicitly mentions what the validation checks for, making the purpose unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('after creating or updating a workflow' and 'to validate a draft before saving'), but it does not explicitly mention when not to use it or name specific alternatives among siblings. This gives good guidance but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes with clear boundaries, such as chat for conversation, create_workflow for building, and get_workflow for retrieval. However, some overlap exists between tools like get_execution and get_timeline, which both retrieve execution details, and between update_workflow and update_step, which could cause confusion about when to use each for modifications.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_workflow, delete_workflow, list_workflows, and get_workflow. This predictability makes it easy for agents to understand and navigate the toolset without ambiguity in naming conventions.
With 40 tools, the count is excessive for the workflow management domain, leading to potential cognitive overload and redundancy. While the server covers many operations, a more streamlined set of 15-25 tools would likely suffice without sacrificing functionality, making this overly heavy for typical agent use.
The toolset provides comprehensive coverage for workflow management, including full CRUD operations (create, read, update, delete), execution control (start, stop, retry), import/export capabilities, testing tools, and knowledge graph interactions. No significant gaps are apparent, ensuring agents can handle end-to-end workflows effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Give your AI agents the tools to build, manage, and run automation workflows.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server that allow LLM in agent mode builds n8n workflows for you103252MIT
- MIT
- AlicenseAqualityDmaintenanceDynamic tools to automate tasks on LinkedIn website.61Apache 2.0
- AlicenseAqualityDmaintenanceEnables creating, managing, analyzing, and visualizing knowledge graphs with support for multiple graph types (topology, timelines, changelogs, requirements, knowledge bases, ontologies) including node/edge management and resource association.15221MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Agentled/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server