MCP Tools Reference

Complete reference for all tools exposed by the AgentLed MCP server. Available from Claude Code, Cursor, Windsurf, Codex, and any MCP-compatible client.


Workflows

ToolDescription
list_workflowsList all workflows in the workspace
get_workflowGet full workflow definition by ID
create_workflowCreate a new workflow from pipeline JSON
update_workflowUpdate workflow-level fields (use update_step for step edits)
add_stepAdd a step with automatic positioning and next-pointer rewiring
get_stepRead a single step (~1KB) — call before editing dictionary-shaped fields
update_stepEdit one step with three explicit verbs: updates / replace[] / unset[]
update_workflow_contextSurgical edit of context.* and metadata.* — same three verbs
remove_stepRemove a step with automatic next-pointer rewiring
move_stepReposition a step in the chain
delete_workflowPermanently delete a workflow
validate_workflowValidate pipeline structure, returns errors per step
publish_workflowChange workflow status (draft, live, paused, archived)
export_workflowExport a workflow as portable JSON
import_workflowImport a workflow from exported JSON

Step Editing — Explicit Merge Ops

update_step and update_workflow_context take three explicit verbs instead of a single deep-merge blob. Pick the verb that matches your intent — the server returns a diff + warnings on every call.

VerbSemantics
updatesOne-level deep-merge. Top-level shallow, nested objects merged. Send null to remove a field.
replace[]Wholesale path replacement. Use for user-data dictionaries (stepInputData.fieldUpdates, pipelineStepPrompt.responseStructure, knowledgeSync.fieldMapping) — call get_step first, modify locally, send the full new object.
unset[]Delete the value at one or more dot-paths.
// Change a prompt template — one-level merge
update_step({
  workflowId, stepId: "score",
  updates: { pipelineStepPrompt: { template: "New prompt..." } }
})

// Replace an entire dictionary wholesale (the safe path for user-data shapes)
update_step({
  workflowId, stepId: "save",
  replace: [{ path: "stepInputData.fieldUpdates", value: { score: "{{steps.score.total}}" } }]
})

// Remove a field
update_step({
  workflowId, stepId: "score",
  unset: ["entryConditions"]
})

Immutable: step.id and step.type can't change — use remove_step + add_step instead. For shape conversions (e.g. AI step → email step), call get_step_schema for the canonical JSON.


Drafts & Snapshots

ToolDescription
get_draftGet the current draft version of a workflow
promote_draftPromote a draft to the live version
discard_draftDiscard the current draft
create_snapshotCreate a manual config snapshot
delete_snapshotDelete a specific config snapshot
list_snapshotsList version snapshots for a workflow
restore_snapshotRestore a workflow to a previous snapshot

Executions

ToolDescription
start_workflowStart a workflow execution with input
list_executionsList executions for a workflow (paginated via nextToken)
get_executionGet execution details with step results
list_timelinesList step execution records for an execution (paginated)
get_timelineGet a single timeline by ID with full step output
stop_executionStop a running execution
retry_executionRetry a failed step — auto-detects most recent failure if no timeline ID
rerun_stepRerun or retry any step by timelineId — works for failed AND succeeded steps, disambiguates loop iterations.

Apps & Testing

ToolDescription
list_appsList available apps and integrations
get_app_actionsGet action schemas for an app
test_app_actionTest an app action without creating a workflow
test_ai_actionTest an AI prompt without creating a workflow
test_code_actionTest JavaScript code in the same sandboxed VM as production
get_step_schemaGet allowed PipelineStep fields grouped by category

Knowledge & Data

ToolDescription
get_workspaceGet workspace info and settings
list_knowledge_listsList knowledge lists in the workspace
get_knowledge_rowsGet rows from a knowledge list (max 50, filtered by list key)
get_knowledge_rows_by_idsFetch specific rows by ID (max 200) — use after query_kg_edges
get_knowledge_textGet text content from a knowledge entry
query_kg_edgesQuery knowledge graph edges — returns targetNodeIds for entity lookups
get_scoring_historyGet scoring history for an entity

Branding (White-Label)

ToolDescription
get_brandingGet workspace white-label branding config
update_brandingUpdate displayName, logo, colors, favicon, tagline, badge visibility

Conversational Agent

ToolDescription
chatSend a message to the AgentLed AI agent. Build workflows via natural language. Supports multi-turn conversations via session_id.
doNatural language intent router — describe what you want and it selects and executes the right tool

n8n Import

ToolDescription
preview_n8n_importPreview an n8n workflow import (dry run)
import_n8n_workflowImport an n8n workflow into AgentLed

Installation

# Claude Code
claude mcp add agentled \
  -e AGENTLED_API_KEY=wsk_... \
  -- npx -y @agentled/mcp-server

# Cursor / Windsurf (add to MCP settings JSON)
{
  "mcpServers": {
    "agentled": {
      "command": "npx",
      "args": ["-y", "@agentled/mcp-server"],
      "env": { "AGENTLED_API_KEY": "wsk_..." }
    }
  }
}

Get your API key from agentled.app > Workspace Settings > Developer.