
Initiate a purchase and request the user's approval in Link. Use listpaymentmethods to pick a payment method. Present approvalurl, then use getspend_request after the user returns. Reuse the idempotency key only for retries of this purchase. Approval is not checkout completion. Payment credentials are not returned.
Request Link-hosted user approval for an existing purchase intent. Use the ID returned by createspendrequest or listspendrequests; present approval_url to the user. Recover approval initiation without creating a second purchase intent.
Get purchase status after the user returns from Link. Use an ID from createspendrequest or listspendrequests. Pending approval means wait; denial or expiration ends the attempt. Follow next_action.resolution when action is required. Returns no payment credentials.
List this user's Link purchase intents. Set includehistory to include terminal and expired requests. IDs can be used with getspendrequest, requestspendapproval or cancelspend_request. Link does not document pagination for this endpoint. Returns no payment credentials.
Cancel an unused Link purchase intent. Use the ID from createspendrequest or listspendrequests. This does not refund a completed merchant purchase. If the request is already terminal, check getspendrequest before retrying.
Change an existing purchase intent's amount, merchant URL, currency, payment method, items or totals. Pass the new total, not the difference. After raising the amount call requestspendapproval so the user approves again. Use the ID from createspendrequest or listspendrequests, and listpaymentmethods for paymentmethodid. It cannot change recurring terms.
List the user's saved Link payment methods with masked display names and which one is the default. Use an id as paymentmethodid in createspendrequest or updatespendrequest. Returns no card numbers.
Check the Link connection and US profile eligibility. A missing or non-US profile country is unsupported. Reconnect if access has expired or payment permissions were not granted.

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