
List agent identities for the team. Agent identities are the execution principals a run or schedule can run as. Use getagent for one agent's detail. (For discoverable skills, use listagent_skills instead.)
Get full detail for a single agent identity by uid. Use list_agents to find uids.
Create a new agent identity. Requires a name. Use listenvironments for environmentid, listmodels for basemodel, listagentskills for skills, and listconnectedselfhostedworkers for worker_host. Returns the new agent uid.
Update an agent identity by uid. Only the fields you pass are changed (partial update). Use listagents to find uids; listenvironments/listmodels/listagentskills/listconnectedselfhosted_workers for referenced ids.
Delete an agent identity permanently by uid. The default agent cannot be deleted. Use list_agents to find uids.
Get metadata for a run artifact by uid (type, filename, mime type, size). Artifact uids come from a run's artifacts field (see getrun). Use downloadartifact for the file contents URL.
Get a signed URL to download an artifact's file contents by uid. The API responds with a 302 redirect to a time-limited signed URL. Use get_artifact for metadata only.
List the LLM models available for agent runs and the team's default model id. Use the returned model ids for basemodel on createagent or config on create_run.
List the cloud environments available for agent runs. Use the returned environment uids for environmentid on createagent/update_agent or run config.
List discoverable agent skills from the /agent catalog and their variants (skill specs). Use the returned variant ids for skill on createrun or skills on createagent. (For execution-principal agent identities, use list_agents instead.)
List self-hosted worker hosts currently connected to the team, with connection counts and heartbeat timestamps. Use the returned workerhost for workerhost on createagent/updateagent.
List agent runs with optional server-side filters (state, name, q, creator, modelid, source, executionlocation, scheduleid, date ranges), sorting (sortby/sortorder) and cursor pagination. Use getrun for one run's full detail. Use listmodels/listscheduledagents/listagents to resolve modelid/scheduleid/creator ids.
Get full detail for a single agent run by id, including state, prompt, creator, timing, and artifacts. Use list_runs to find run ids.
Start a new agent run from a prompt (or a skill spec). Returns the new runid and initial state. Use listagentskills for skill ids, listagents for agentidentityuid, and listmodels for model ids referenced in config. Poll with getrun.
Cancel an in-flight agent run by id. Only runs whose type is cancellable and that are not already in a terminal state can be cancelled. Use list_runs to find run ids.
Get a signed URL to download the full transcript of a run. Use list_runs to find run ids. The API responds with a 302 redirect to a time-limited signed URL.
List all scheduled agents for the team, including their cron schedule and enabled state. Use getscheduledagent for one schedule's detail.
Get full detail for a single scheduled agent by id. Use listscheduledagents to find ids.
Create a scheduled agent that triggers runs on a cron schedule. Requires name and cronschedule. Use listagents for agent_uid. Returns the new schedule id.
Update a scheduled agent by id. This is a full replace (PUT): name, cronschedule, and enabled are all required. Use listscheduled_agents to find ids.
Delete a scheduled agent permanently by id. Use listscheduledagents to find ids.
Pause a scheduled agent by id so it stops triggering runs. Use resumescheduledagent to re-enable it. Use listscheduledagents to find ids.
Resume a paused scheduled agent by id so it triggers runs again. Use pausescheduledagent to disable it. Use listscheduledagents to find ids.
Validate the configured Warp API key by making a lightweight authenticated request. Returns success true when the key works, false with a reason otherwise.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now