
Run a browser automation synchronously and wait for the result (up to agentconfig.maxdurationseconds, default several minutes). Use listvaultcredentials to find valid credentialitemids values, and listbrowserprofiles to find valid profileid values. For long-running tasks, use start_automation instead so the caller isn't blocked.
Queue a browser automation run and return immediately with a runid, without waiting for it to finish. Use listvaultcredentials to find valid credentialitemids values, and listbrowserprofiles to find valid profileid values. Poll getrun with the returned runid, or set webhook_url to be notified when it completes.
Queue 1-100 browser automation runs atomically and return their runids immediately. Use listvaultcredentials to find valid credentialitemids values, and listbrowserprofiles to find valid profileid values. Poll getrun or getrunsbatch with the returned runids.
Create a remote browser session and return its Chrome DevTools Protocol (CDP) endpoint. This hands back a raw browser connection for external automation tooling — it is not something this agent drives directly. Billed per minute until the session ends or its inactivity timeout is reached — call closebrowsersession to end billing early.
Close a remote browser session created by createbrowsersession, ending its per-minute billing immediately. Idempotent — closing an already-ended session still succeeds.
List saved Browser Context Profiles (persistent logged-in browser state). Use the returned id values for profileid when calling runautomation, startautomation, or startautomationsbatch with useprofile=True.
Fetch and extract content from 1-10 URLs. Per-URL failures are returned in errors alongside any successful results rather than failing the whole call.
List automation runs with optional server-side filters (status, goal substring, date range) and sorting. Use get_run for full step-level detail on a specific run.
Get full detail for one run, including its steps. Defaults to lean output: screenshots as URLs and HTML omitted. Use getrunstepscreenshot/getrunstephtml to fetch individual step content directly, or pass screenshots='base64'/html='base64' here to inline it (subject to a total size budget across all steps; check each step's screenshottruncated/htmltruncated to see what was omitted).
Get full detail for up to 100 runs by ID in a single call. Inlined step content is subject to a total size budget across the whole response; check each step's screenshottruncated/htmltruncated to see what was omitted, then use getrunstepscreenshot/getrunstephtml to fetch it individually.
Cancel a pending or running automation run. Has no effect (returns the current status) if the run already finished.
Cancel up to 100 pending or running automation runs by ID in a single call.
Get the screenshot for one run step as base64-encoded JPEG. Use getrun's steps to find valid runid/stepid pairs. Screenshots over 512KB are not returned: contentbase64 is null and truncated is true. There is no param to raise that cap — use the step's screenshot URL from get_run instead.
Get the raw HTML snapshot for one run step. Only available if captureconfig.html was enabled on the run. Use getrun's steps to find valid runid/stepid pairs.
Run a web search and return ranked results. Supports filtering by domain, date range, and recency. Use the page param (0-10) to fetch more results; check the response's hasnextpage before requesting another.
Check that the TinyFish connection works by calling the wallet endpoint.
List vault credential items available to this account. Use the returned id values for credentialitemids when calling runautomation, startautomation, or startautomationsbatch.
Get the current wallet balance, auto-reload configuration, and billing rates for this account.
List paginated usage records for the fetch API.
List paginated usage records for the search API. Each record has the query and its result count, not the results themselves.
List paginated usage records for browser sessions, optionally filtered by session_id or status.

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