
List engagements with AWS and partner collaborators. Supports server-side filters and NextToken pagination. Use get_engagement for one engagement's full detail.
Get an AWS Partner Central engagement by ID, including its contexts and ModifiedAt. Use list_engagements to find IDs.
Submit an opportunity to AWS by starting an asynchronous engagement task. Associate a solution first (listsolutions, associateopportunity). Returns a task ID; check progress with listengagementfromopportunitytasks.
Check asynchronous AWS engagement submission task status. Pass the taskidentifier returned by startengagementfromopportunity_task.
Check asynchronous AWS referral acceptance task status. Pass the taskidentifier returned by startreferralacceptancetask.
Get the latest AWS-side summary for a partner opportunity to inspect AWS review and co-sell updates. Use list_opportunities to find the opportunity ID.
Create an AWS Partner Central engagement. Returns the new engagement ID in id; follow with createengagementcontext to add details and createengagementinvitation to invite a partner.
Invite a partner to an engagement. Use createengagement or listengagements for the engagement ID. Returns the invitation ID in id.
List partner members associated with an engagement. Use list_engagements to find the engagement ID. Supports NextToken pagination, 10 per page at most.
List resources (opportunities, snapshots) associated with engagements. Pass an engagement ID from list_engagements, or omit it and filter by ResourceIdentifier to find which engagement an opportunity is in. Supports filters and NextToken pagination.
Add structured context (CustomerProject or Lead) to an engagement. Use createengagement or listengagements for the engagement ID. Returns the new context ID in id.
Replace the structured context of an engagement. Call get_engagement first for the context ID and exact ModifiedAt; AWS uses optimistic concurrency.
Create an opportunity from an engagement using an asynchronous task. Use getengagement for the context ID. Returns a task ID; check status with listopportunityfromengagement_tasks.
Check asynchronous opportunity creation task status. Pass the taskidentifier returned by startopportunityfromengagement_task.
List and filter co-sell opportunities for CRM synchronization. Supports AWS filters and NextToken pagination. Returns a lean subset by default; set includefull for full summary records. Use getopportunity for one record.
Get a full AWS Partner Central opportunity by ID. Use this before updateopportunity to obtain the current complete record and LastModifiedDate. Use listopportunities to find IDs.
Create a co-sell opportunity in AWS Partner Central. Provide AWS API-shaped opportunity fields; a ClientToken is generated unless you pass clienttoken; reuse the returned clienttoken when retrying to avoid duplicates. Use catalog=Sandbox to test first. Returns the new opportunity ID in id; then associateopportunity and startengagementfromopportunity_task to submit for AWS review.
Update a Partner Central opportunity with its complete current payload. Call get_opportunity first and pass its exact LastModifiedDate; AWS uses optimistic concurrency and treats omitted fields as null. Only selected fields can be edited while review is Action Required.
List partner solutions that can be associated with an opportunity. Supports filters (status, category, identifier) and NextToken pagination. Use the solution ID with associate_opportunity.
Associate a partner solution, AWS product, or supported Marketplace entity with an opportunity. Use listsolutions to discover valid partner solution IDs first. Undo with disassociateopportunity.
Remove a solution, AWS product, or Marketplace offer association from an opportunity. Inverse of associateopportunity; use getopportunity to see current associations.
Assign an opportunity to a registered user in your Partner Central account. AWS has no user directory endpoint, so supply the assignee's registered contact details. Use list_opportunities to find the opportunity ID.
List AWS Partner Central engagement invitations (AWS referrals/leads); incoming by default, or sent with participanttype=SENDER. Filter by status or payload type and page with NextToken. Use getengagement_invitation for one.
Get details for an AWS referral invitation before accepting or rejecting it. Use listengagementinvitations to find the invitation ID.
Accept an AWS referral and start the asynchronous engagement task. Use getengagementinvitation to review it first. Returns the task ID in id; call listreferralacceptance_tasks to check status.
Reject an AWS referral invitation. This is a final decision for the invitation. Use listengagementinvitations to find the invitation ID.
Verify AWS Partner Central IAM credentials and access by making a minimal read-only opportunity list request.

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