Agents on MCP Servers
Every published MCP server in the catalog exposes the same agent management tools on its bundle MCP endpoint (/mcp/bundle/{slug}/) as the Hub. Each agent you create through that endpoint is bound to that server—it can only call tools from that server.
Use this when your AI client is already connected to a product server (for example google-ads) and you want to create or run an agent without switching to Hub-only tools.
Tools (same names on Hub and bundle)
| Tool | Purpose |
|---|---|
get_agents | List agents for this workspace on the current server (bundle) or across servers (Hub) |
upsert_agent | Create or update an agent |
delete_agent | Remove an agent |
upsert_agent_skill / delete_agent_skill | Optional extra skill markdown for the prompt |
trigger_agent_run | Start an on-demand run; returns task_id |
get_agent_task | Poll task state and run_id |
cancel_agent_task | Request cancellation while a run is in progress |
list_agent_runs | Execution history and run detail |
On a bundle connection, mcp_source is set for you—you only need a display name and agents_md_content to create an agent.
Readiness
- Required: agent instructions (
agents.mdcontent), an enabled MCP server with working access, and platform AI availability for your workspace. - Optional: heartbeat checklist (
heartbeat.md)—recommended for scheduled runs with a fixed step list; not required for manual or one-off runs.
Create and run from chat
Agent tools ship on every bundle MCP connection. Connect Google Ads (or any catalog server) in Claude Desktop, Claude Code, Cursor, ChatGPT, or another MCP client—upsert_agent, trigger_agent_run, and the rest appear alongside that server's product tools in the thread you're already working in.
Example prompts in the same thread where you already use Google Ads:
- Create an agent on this server called Morning PPC. Instructions: summarize yesterday's spend and flag disapproved ads.
- Run Morning PPC now and paste the summary here.
The model calls upsert_agent and trigger_agent_run on that connection; the agent stays bound to Google Ads.
Example: CLI
For scripts and terminal use, the MCPBundles CLI hits the same bundle endpoint (--server google-ads):
mcpbundles call upsert_agent --as mcpbundles_prod --server google-ads -- \
name="morning-ppc-review" \
agents_md_content="# Morning PPC review\n\nSummarize yesterday's spend and flag any disapproved ads."
mcpbundles call trigger_agent_run --as mcpbundles_prod --server google-ads -- \
agent_id="<id-from-upsert>" \
isolated:=true \
trigger_context:='{"user_message":"Run the review from your instructions."}'
Poll with get_agent_task using the returned task_id.
Product skills vs agent setup
Calling get_skill on a product server returns domain guidance for that integration (workflows, entities, cautions). It does not include agent creation steps—that avoids duplicating platform docs across hundreds of servers.
To create or run agents, use the agent tools on that bundle connection (or on the Hub). For platform how-to in chat without calling tools, use Hub get_skill or read Creating A2A Agents.
Related
- Creating A2A Agents — dashboard walkthrough, schedules, webhooks
- What Are A2A Agents?
- Blog: Agents on every MCP server