Agentic Workers MCP

MCP Documentation Route

This route documents the complete MCP functionality currently available in Agentic Workers. It is built for developers and AI agents that need a stable, machine-readable contract for discovery, tool execution, and MCP server onboarding.

Quickstart

  1. 1. Generate an org token from the Operator CLI settings page and use it as a bearer token.
  2. 2. Point your external MCP client at https://agenticworkers.com/api/agw-mcp.
  3. 3. Use JSON-RPC initialize, tools/list, and tools/call over the existing HTTP endpoint.
  4. 4. Before attaching a third-party MCP server to an agent, validate it via /api/mcp-servers.
  5. 5. Attach the server to the target agent using agw_add_mcp_server.

HTTP Contract

MethodPathPurposeResponse
GET/api/agw-mcpDiscover all Agentic Workers MCP tools{ tools: McpToolDefinition[] }
POST/api/agw-mcpMCP JSON-RPC over HTTP: initialize, tools/list, tools/callJSON-RPC 2.0 response
POST/api/mcp-serversValidate a third-party MCP server before attaching it to an agent{ label, url, tools, validated: true } | { error, details }

Authentication: external clients should send Authorization: Bearer <agw_op_live_token>. Logged-in browser clients can continue to use their Agentic Workers session cookie.

Working Examples

Discover Tools

curl -sS https://agenticworkers.com/api/agw-mcp \
  -H "Cookie: next-auth.session-token=<session-cookie>"

Initialize MCP

curl -sS https://agenticworkers.com/api/agw-mcp \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <agw_op_live_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "example-client", "version": "1.0.0" }
    }
  }'

List Tools Via JSON-RPC

curl -sS https://agenticworkers.com/api/agw-mcp \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <agw_op_live_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list"
  }'

Call A Tool

curl -sS https://agenticworkers.com/api/agw-mcp \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <agw_op_live_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "agw_create_agent",
      "arguments": {
        "name": "Content Ops Worker",
        "instructions": "Create weekly content plans from analytics data",
        "description": "Automates planning and drafting",
        "model": "auto",
        "tools": ["groq_web_search"]
      }
    }
  }'

Validate Third-Party MCP Server

curl -sS https://agenticworkers.com/api/mcp-servers \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Cookie: next-auth.session-token=<session-cookie>" \
  -d '{
    "label": "My MCP Server",
    "url": "https://example-mcp-server.com"
  }'

Add MCP Server To Agent

curl -sS https://agenticworkers.com/api/agw-mcp \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <agw_op_live_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "agw_add_mcp_server",
      "arguments": {
        "agentId": "<agent-id>",
        "label": "My MCP Server",
        "url": "https://example-mcp-server.com",
        "allowedTools": []
      }
    }
  }'

Complete Tool Catalog

The catalog below is generated from the same source used by /api/agw-mcp tool discovery, so docs and runtime stay aligned.

Agent Lifecycle

Create, update, remove, and coordinate agents.

agw_list_agentsList all agents
{}
agw_create_agentCreate a new agent
{
  "name": {
    "type": "string"
  },
  "humanName": {
    "type": "string"
  },
  "instructions": {
    "type": "string"
  },
  "description": {
    "type": "string"
  },
  "model": {
    "type": "string"
  },
  "tools": {
    "type": "array"
  }
}
agw_update_agentUpdate an agent
{
  "agentId": {
    "type": "string"
  },
  "updates": {
    "type": "object"
  }
}
agw_delete_agentDelete an agent
{
  "agentId": {
    "type": "string"
  }
}
agw_add_teammateAdd teammate to agent
{
  "agentId": {
    "type": "string"
  },
  "teammateAgentId": {
    "type": "string"
  }
}

Memory

List, add, and remove long-term agent memories.

agw_list_memoriesList agent-scope memories for a specific agent (requires agentId). For USER-scope memories (per-user, cross-agent), use the in-chat agw_list_memories tool with scope="user".
{
  "agentId": {
    "type": "string"
  }
}
agw_add_memoryAdd an agent-scope memory to the specified agent. Keep entries ≤15 words.
{
  "agentId": {
    "type": "string"
  },
  "text": {
    "type": "string"
  }
}
agw_remove_memoryRemove an agent-scope memory by memoryId. Call agw_list_memories first to get the memoryId.
{
  "agentId": {
    "type": "string"
  },
  "memoryId": {
    "type": "string"
  }
}

Automations

Automate recurring runs with cron expressions.

agw_list_scheduled_jobsList scheduled jobs
{}
agw_create_scheduled_jobCreate scheduled job. Supports two modes: triggerType "cron" for time-based (provide cronExpression), or "composio_trigger" for event-based (provide composioTriggerSlug). For triggers, check agw_list_triggers config field and pass required values as composioTriggerConfig. Times in UTC.
{
  "name": {
    "type": "string"
  },
  "triggerType": {
    "type": "string"
  },
  "cronExpression": {
    "type": "string"
  },
  "composioTriggerSlug": {
    "type": "string"
  },
  "composioToolkitSlug": {
    "type": "string"
  },
  "composioTriggerConfig": {
    "type": "object"
  },
  "agentId": {
    "type": "string"
  },
  "promptTemplateId": {
    "type": "string"
  },
  "variables": {
    "type": "object"
  }
}
agw_update_scheduled_jobUpdate scheduled job. Updates can include name, cronExpression, agentId, promptTemplateId, variables, or active.
{
  "jobId": {
    "type": "string"
  },
  "updates": {
    "type": "object"
  }
}
agw_delete_scheduled_jobDelete scheduled job
{
  "jobId": {
    "type": "string"
  }
}

Integrations And Tools

Discover integrations, connect them, and attach tools/MCP servers to agents.

agw_list_available_toolsList available tools
{}
agw_add_toolAdd tool to agent
{
  "agentId": {
    "type": "string"
  },
  "toolName": {
    "type": "string"
  }
}
agw_remove_toolRemove tool from agent
{
  "agentId": {
    "type": "string"
  },
  "toolName": {
    "type": "string"
  }
}
agw_add_mcp_serverAdd MCP server to agent
{
  "agentId": {
    "type": "string"
  },
  "label": {
    "type": "string"
  },
  "url": {
    "type": "string"
  }
}
agw_remove_mcp_serverRemove MCP server
{
  "agentId": {
    "type": "string"
  },
  "serverUrl": {
    "type": "string"
  }
}

Deployments

Deploy agents and manage their runtime settings.

agw_list_deploymentsList deployments
{}
agw_deploy_agentDeploy an agent
{
  "agentId": {
    "type": "string"
  }
}
agw_update_deploymentUpdate deployment
{
  "deploymentId": {
    "type": "string"
  },
  "updates": {
    "type": "object"
  }
}

Machine-Readable Spec

AI agents can read the JSON script with id agw-mcp-machine-readable-spec directly from this page.

{
  "specName": "agentic-workers-mcp-http",
  "version": "2026-03-04",
  "docsUrl": "https://agenticworkers.com/MCP",
  "authentication": {
    "type": "bearer-token-or-next-auth-session-cookie",
    "notes": [
      "External MCP clients should use Authorization: Bearer <agw_op_live_token> generated from the org CLI page.",
      "Browser/session clients may continue to use an authenticated Agentic Workers session cookie.",
      "Cookie key can vary by environment (example: next-auth.session-token or __Secure-next-auth.session-token)."
    ]
  },
  "endpoints": {
    "discovery": {
      "method": "GET",
      "path": "/api/agw-mcp",
      "response": "{ tools: McpToolDefinition[] }"
    },
    "execute": {
      "method": "POST",
      "path": "/api/agw-mcp",
      "body": "JSON-RPC 2.0 request: initialize | tools/list | tools/call",
      "response": "JSON-RPC 2.0 response"
    },
    "validateMcpServer": {
      "method": "POST",
      "path": "/api/mcp-servers",
      "body": "{ label: string, url: string }",
      "response": "{ label, url, tools, validated: true } | { error, details }"
    }
  },
  "protocolVersion": "2024-11-05",
  "jsonRpcMethods": [
    "initialize",
    "notifications/initialized",
    "ping",
    "tools/list",
    "tools/call"
  ],
  "tools": [
    {
      "name": "agw_list_agents",
      "description": "List all agents",
      "parameters": {}
    },
    {
      "name": "agw_create_agent",
      "description": "Create a new agent",
      "parameters": {
        "name": {
          "type": "string"
        },
        "humanName": {
          "type": "string"
        },
        "instructions": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "tools": {
          "type": "array"
        }
      }
    },
    {
      "name": "agw_update_agent",
      "description": "Update an agent",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "updates": {
          "type": "object"
        }
      }
    },
    {
      "name": "agw_delete_agent",
      "description": "Delete an agent",
      "parameters": {
        "agentId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_add_teammate",
      "description": "Add teammate to agent",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "teammateAgentId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_list_memories",
      "description": "List agent-scope memories for a specific agent (requires agentId). For USER-scope memories (per-user, cross-agent), use the in-chat agw_list_memories tool with scope=\"user\".",
      "parameters": {
        "agentId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_add_memory",
      "description": "Add an agent-scope memory to the specified agent. Keep entries ≤15 words.",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_update_memory",
      "description": "Update an existing agent-scope memory by memoryId. Call agw_list_memories first to get the memoryId.",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "memoryId": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_remove_memory",
      "description": "Remove an agent-scope memory by memoryId. Call agw_list_memories first to get the memoryId.",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "memoryId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_list_scheduled_jobs",
      "description": "List scheduled jobs",
      "parameters": {}
    },
    {
      "name": "agw_create_scheduled_job",
      "description": "Create scheduled job. Supports two modes: triggerType \"cron\" for time-based (provide cronExpression), or \"composio_trigger\" for event-based (provide composioTriggerSlug). For triggers, check agw_list_triggers config field and pass required values as composioTriggerConfig. Times in UTC.",
      "parameters": {
        "name": {
          "type": "string"
        },
        "triggerType": {
          "type": "string"
        },
        "cronExpression": {
          "type": "string"
        },
        "composioTriggerSlug": {
          "type": "string"
        },
        "composioToolkitSlug": {
          "type": "string"
        },
        "composioTriggerConfig": {
          "type": "object"
        },
        "agentId": {
          "type": "string"
        },
        "promptTemplateId": {
          "type": "string"
        },
        "variables": {
          "type": "object"
        }
      }
    },
    {
      "name": "agw_update_scheduled_job",
      "description": "Update scheduled job. Updates can include name, cronExpression, agentId, promptTemplateId, variables, or active.",
      "parameters": {
        "jobId": {
          "type": "string"
        },
        "updates": {
          "type": "object"
        }
      }
    },
    {
      "name": "agw_delete_scheduled_job",
      "description": "Delete scheduled job",
      "parameters": {
        "jobId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_list_prompt_templates",
      "description": "List prompt templates",
      "parameters": {
        "limit": {
          "type": "number"
        }
      }
    },
    {
      "name": "agw_get_prompt_template",
      "description": "Get prompt template details including extracted variables",
      "parameters": {
        "promptTemplateId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_create_prompt_template",
      "description": "Create prompt template. Use [VariableName] placeholders in content for dynamic values — they are auto-extracted as template variables.",
      "parameters": {
        "name": {
          "type": "string"
        },
        "content": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_list_available_tools",
      "description": "List available tools",
      "parameters": {}
    },
    {
      "name": "agw_add_tool",
      "description": "Add tool to agent",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "toolName": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_remove_tool",
      "description": "Remove tool from agent",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "toolName": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_add_mcp_server",
      "description": "Add MCP server to agent",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_remove_mcp_server",
      "description": "Remove MCP server",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "serverUrl": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_list_deployments",
      "description": "List deployments",
      "parameters": {}
    },
    {
      "name": "agw_deploy_agent",
      "description": "Deploy an agent",
      "parameters": {
        "agentId": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_update_deployment",
      "description": "Update deployment",
      "parameters": {
        "deploymentId": {
          "type": "string"
        },
        "updates": {
          "type": "object"
        }
      }
    },
    {
      "name": "agw_update_system_prompt",
      "description": "Update the system agent instructions",
      "parameters": {
        "newInstructions": {
          "type": "string"
        }
      }
    },
    {
      "name": "agw_test_template_on_agent",
      "description": "Test a prompt template on an agent by hydrating variables and executing",
      "parameters": {
        "agentId": {
          "type": "string"
        },
        "promptTemplateId": {
          "type": "string"
        },
        "variables": {
          "type": "string"
        }
      }
    }
  ],
  "mcpTools": [
    {
      "name": "agw_list_agents",
      "description": "List all agents",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    },
    {
      "name": "agw_create_agent",
      "description": "Create a new agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "humanName": {
            "type": "string"
          },
          "instructions": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "tools": {
            "type": "array",
            "items": {}
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_update_agent",
      "description": "Update an agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "updates": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_delete_agent",
      "description": "Delete an agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_add_teammate",
      "description": "Add teammate to agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "teammateAgentId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_list_memories",
      "description": "List agent-scope memories for a specific agent (requires agentId). For USER-scope memories (per-user, cross-agent), use the in-chat agw_list_memories tool with scope=\"user\".",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_add_memory",
      "description": "Add an agent-scope memory to the specified agent. Keep entries ≤15 words.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_update_memory",
      "description": "Update an existing agent-scope memory by memoryId. Call agw_list_memories first to get the memoryId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "memoryId": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_remove_memory",
      "description": "Remove an agent-scope memory by memoryId. Call agw_list_memories first to get the memoryId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "memoryId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_list_scheduled_jobs",
      "description": "List scheduled jobs",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    },
    {
      "name": "agw_create_scheduled_job",
      "description": "Create scheduled job. Supports two modes: triggerType \"cron\" for time-based (provide cronExpression), or \"composio_trigger\" for event-based (provide composioTriggerSlug). For triggers, check agw_list_triggers config field and pass required values as composioTriggerConfig. Times in UTC.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "triggerType": {
            "type": "string"
          },
          "cronExpression": {
            "type": "string"
          },
          "composioTriggerSlug": {
            "type": "string"
          },
          "composioToolkitSlug": {
            "type": "string"
          },
          "composioTriggerConfig": {
            "type": "object",
            "additionalProperties": true
          },
          "agentId": {
            "type": "string"
          },
          "promptTemplateId": {
            "type": "string"
          },
          "variables": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_update_scheduled_job",
      "description": "Update scheduled job. Updates can include name, cronExpression, agentId, promptTemplateId, variables, or active.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string"
          },
          "updates": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_delete_scheduled_job",
      "description": "Delete scheduled job",
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_list_prompt_templates",
      "description": "List prompt templates",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_get_prompt_template",
      "description": "Get prompt template details including extracted variables",
      "inputSchema": {
        "type": "object",
        "properties": {
          "promptTemplateId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_create_prompt_template",
      "description": "Create prompt template. Use [VariableName] placeholders in content for dynamic values — they are auto-extracted as template variables.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_list_available_tools",
      "description": "List available tools",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    },
    {
      "name": "agw_add_tool",
      "description": "Add tool to agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "toolName": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_remove_tool",
      "description": "Remove tool from agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "toolName": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_add_mcp_server",
      "description": "Add MCP server to agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_remove_mcp_server",
      "description": "Remove MCP server",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "serverUrl": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_list_deployments",
      "description": "List deployments",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true
      }
    },
    {
      "name": "agw_deploy_agent",
      "description": "Deploy an agent",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_update_deployment",
      "description": "Update deployment",
      "inputSchema": {
        "type": "object",
        "properties": {
          "deploymentId": {
            "type": "string"
          },
          "updates": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_update_system_prompt",
      "description": "Update the system agent instructions",
      "inputSchema": {
        "type": "object",
        "properties": {
          "newInstructions": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    {
      "name": "agw_test_template_on_agent",
      "description": "Test a prompt template on an agent by hydrating variables and executing",
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string"
          },
          "promptTemplateId": {
            "type": "string"
          },
          "variables": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  ]
}