AWS 合作伙伴中心 API 参考已重新构建。有关支持的 API 操作的更多信息,请参阅 AWS 合作伙伴中心 API 参考。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
合作伙伴中心代理 MCP 服务器入门
本指南将引导您使用自定义 MCP 客户端设置对合作伙伴中心代理 MCP 服务器的编程访问权限。服务器使用带有 Sigv4 身份验证的直接 HTTPS,无需代理或 IDE 插件。
先决条件
开始之前,请确保您已具备以下条件:
有效的合作伙伴中心账户(已迁移到AWS控制台)
拥有合作伙伴中心的 IAM 权限的AWS账户
AWS CLI 已安装并配置了凭据
访问 us-east-1(弗吉尼亚北部)区域
通过 HTTPS 连接到
partnercentral-agents-mcp.us-east-1.api.aws你的 HTTP 客户端支持 TLS 1.2+
支持 JSON-RPC 2.0 和 Sigv4 请求签名的 MCP-compatible 客户端
步骤 1:设置 IAM 权限
Partner Central Agent MCP 服务器需要两个级别的 IAM 权限:协议访问权限(用于与 MCP 端点通信)和数据访问权限(用于执行合作伙伴中心操作)。
附加 IAM 策略
要使用AWS管理控制台将策略附加到您的 IAM 身份,请执行以下操作:
打开 IAM 控制台
。 在左侧导航窗格中,根据要将策略附加到的身份选择用户、用户组或角色,然后选择特定用户、组或角色的名称。
选择权限选项卡。
选择附加策略(如果是第一次,则选择添加权限)。
在策略列表中,搜索并选择要附加的托管策略(例如,您根据以下 JSON 块创建的自定义策略)。
选择 “附加策略”(或选择 “下一步”,然后选择 “添加权限”)进行确认。
权限立即生效。您可以将多个策略附加到同一个身份。
推荐:使用托管策略
授予 MCP 协议访问权限的最简单方法是将AWSMcpServiceActionsFullAccess托管策略附加到您的 IAM 身份。此策略包括与 MCP 服务器交互所需的所有权限。
为了实现精细控制,您可以使用 IAM 策略中的aws:IsMcpServiceAction条件密钥来确定权限范围,专门针对 MCP 服务操作。
MCP 协议访问的最低权限
您的 IAM 身份至少需要此操作才能与 MCP 服务器进行交互:
| 处理建议 | 说明 |
|---|---|
partnercentral:UseSession |
创建、更新和检索对话会话所必需的 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "partnercentral:UseSession" ], "Resource": "*", "Condition": { "Bool": { "aws:IsMcpServiceAction": "true" } } } ] }
数据访问权限
要通过代理实际执行 Partner Central 操作,您需要根据自己的用例获得额外的权限。
机会管理:
{ "Effect": "Allow", "Action": [ "partnercentral:List*", "partnercentral:Get*", "partnercentral:CreateOpportunity", "partnercentral:UpdateOpportunity", "partnercentral:SubmitOpportunity", "partnercentral:AssignOpportunity", "partnercentral:AssociateOpportunity", "partnercentral:DisassociateOpportunity" ], "Resource": "*" }
资助计划:
{ "Effect": "Allow", "Action": [ "partnercentral:ListBenefitAllocations", "partnercentral:ListBenefitApplications", "partnercentral:CreateBenefitApplication", "partnercentral:GetBenefitApplication", "partnercentral:UpdateBenefitApplication", "partnercentral:SubmitBenefitApplication", "partnercentral:AmendBenefitApplication", "partnercentral:CancelBenefitApplication", "partnercentral:RecallBenefitApplication", "partnercentral:AssociateBenefitApplicationResource", "partnercentral:DisassociateBenefitApplicationResource" ], "Resource": "*" }
市场访问权限:
{ "Effect": "Allow", "Action": [ "aws-marketplace:DescribeEntity", "aws-marketplace:DescribeAgreement", "aws-marketplace:SearchAgreements", "aws-marketplace:ListEntities" ], "Resource": "*" }
合作伙伴中心入职培训:
{ "Effect": "Allow", "Action": [ "partnercentral:ListPartners", "partnercentral:GetPartner", "partnercentral:GetProfileVisibility", "partnercentral:GetAllianceLeadContact", "partnercentral:GetProfileUpdateTask", "partnercentral:StartProfileUpdateTask", "partnercentral:CancelProfileUpdateTask", "partnercentral:PutProfileVisibility", "partnercentral:PutAllianceLeadContact", "partnercentral:SendEmailVerificationCode", "partnercentral:AssociateAwsTrainingCertificationEmailDomain", "partnercentral:DisassociateAwsTrainingCertificationEmailDomain", "partnercentral:GetAccountConnections", "partnercentral:GetConnectionInvitations", "partnercentral:CreateConnectionInvitation", "partnercentral:CancelConnectionInvitation", "partnercentral:RespondConnectionInvitation", "partnercentral:CancelConnection", "partnercentral:ManageConnectionPreferences" ], "Resource": "*" }
在 Marketplace 卖家设置中,还要添加:
{ "Effect": "Allow", "Action": [ "aws-marketplace:ListEntities", "aws-marketplace:DescribeEntity", "aws-marketplace:DescribeChangeSet", "aws-marketplace:StartChangeSet" ], "Resource": "*" }
对于与服务相关的角色管理(转售 Authorizations/CPPO):
{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:CreateServiceLinkedRole" ], "Resource": "*" }
完全访问策略
对于开发和测试,您可以将所有权限合并到一个策略中:
aws iam create-policy \ --policy-name PartnerCentralAgentsFullAccess \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "partnercentral:UseSession", "partnercentral:List*", "partnercentral:Get*", "partnercentral:CreateOpportunity", "partnercentral:UpdateOpportunity", "partnercentral:SubmitOpportunity", "partnercentral:AssignOpportunity", "partnercentral:AssociateOpportunity", "partnercentral:DisassociateOpportunity", "partnercentral:CreateResourceSnapshot", "partnercentral:CreateResourceSnapshotJob", "partnercentral:StartResourceSnapshotJob", "partnercentral:CreateEngagement", "partnercentral:CreateEngagementInvitation", "partnercentral:RejectEngagementInvitation", "partnercentral:StartEngagementByAcceptingInvitationTask", "partnercentral:StartEngagementFromOpportunityTask", "partnercentral:CreateBenefitApplication", "partnercentral:UpdateBenefitApplication", "partnercentral:SubmitBenefitApplication", "partnercentral:AmendBenefitApplication", "partnercentral:CancelBenefitApplication", "partnercentral:RecallBenefitApplication", "partnercentral:AssociateBenefitApplicationResource", "partnercentral:DisassociateBenefitApplicationResource", "partnercentral:ListPartners", "partnercentral:StartProfileUpdateTask", "partnercentral:CancelProfileUpdateTask", "partnercentral:PutProfileVisibility", "partnercentral:PutAllianceLeadContact", "partnercentral:SendEmailVerificationCode", "partnercentral:AssociateAwsTrainingCertificationEmailDomain", "partnercentral:DisassociateAwsTrainingCertificationEmailDomain", "partnercentral:CreateConnectionInvitation", "partnercentral:CancelConnectionInvitation", "partnercentral:RespondConnectionInvitation", "partnercentral:CancelConnection", "partnercentral:ManageConnectionPreferences" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "aws-marketplace:DescribeEntity", "aws-marketplace:DescribeAgreement", "aws-marketplace:SearchAgreements", "aws-marketplace:ListEntities", "aws-marketplace:DescribeChangeSet", "aws-marketplace:StartChangeSet" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }'
Read-only 政策
对于生产环境或只读用例,请限制读取操作的权限:
aws iam create-policy \ --policy-name PartnerCentralAgentReadOnly \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "partnercentral:UseSession", "partnercentral:List*", "partnercentral:Get*", "partnercentral:ListPartners", "partnercentral:GetPartner", "partnercentral:GetProfileVisibility", "partnercentral:GetAllianceLeadContact", "partnercentral:GetProfileUpdateTask", "partnercentral:GetAccountConnections", "partnercentral:GetConnectionInvitations" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "aws-marketplace:DescribeEntity", "aws-marketplace:DescribeAgreement", "aws-marketplace:SearchAgreements", "aws-marketplace:ListEntities", "aws-marketplace:DescribeChangeSet" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole" ], "Resource": "*" } ] }'
第 2 步:连接您的 MCP 客户端
合作伙伴中心代理 MCP 服务器使用带有 Sigv4 请求签名的直接 HTTPS。没有代理层 — 您的 MCP 客户端直接向端点发送 JSON-RPC 2.0 请求。
端点
https://partnercentral-agents-mcp.us-east-1.api.aws/mcp
身份验证
所有请求都必须使用签AWS名版本 4 进行签名,使用以下命令进行签名:
服务名称:
partnercentral-agents-mcp区域:
us-east-1
初始化 MCP 连接
发送建立协议的initialize请求:
{ "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-03-26", "capabilities": {}, "clientInfo": { "name": "my-partner-client", "version": "1.0.0" } } }
预期的回应:
{ "jsonrpc": "2.0", "id": 1, "result": { "protocolVersion": "2025-03-26", "capabilities": { "tools": { "listChanged": false } }, "serverInfo": { "name": "PartnerCentralAgentMCPServer", "version": "1.0.0" } } }
列出可用工具
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {} }
使用 MCP 标头对通话进行签名
在向 Partner Central 代理 MCP 提出请求时,我们建议使用以下方法添加自定义 MCP 标头,以帮助AWS识别客户端应用程序的来源、监控使用情况和审计性能。AWS使用此标头来区分发出调用的客户端应用程序的类型,并收集有关不同客户端实现成功率的见解。
方法 1:_meta 字段 (programmatic/stateless MCP)
对于直接构造 MCP tools/call 请求的代码,请在请求上提供_meta字段。
{ "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "content": [ { "type": "text", "text": "List my open opportunities with expected close date in Q1 2026" } ], "catalog": "AWS" }, "_meta": { "integrator": "<Integrator's Company Name / Direct>", "sourceProduct": "<Integrator's Application Name>" } } }
方法 2:ClientInfo(基于会话的自定义代理)
对于建立会话的自定义 MCP 客户端,请在字段内提供 MCP 标头信息:clientInfo
{ "method": "initialize", "params": { "protocolVersion": "2024-11-05", "clientInfo": { "integrator": "<Integrator's Company Name / Direct>", "sourceProduct": "<Integrator's Application Name>" } } }
中的字段clientInfo:
-
integrator— 公司名称或合作伙伴的 “直接”示例:
AWS -
sourceProduct— Product/agent 名字示例:
AWS CRM Connector
方法 3:网址参数(仅限托管 MCP)
仅适用于集成商无法修改协议字段的托管 MCP 客户端。使用 URL 参数:
服务器网址:https://mcp.partnercentral.aws?appId=<Integrator's Company Name / Direct>
步骤 3:验证设置
发送一条简单的消息以确认一切正常。使用Sandbox目录进行测试:
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "content": [ { "type": "text", "text": "Hello, what can you help me with?" } ], "catalog": "Sandbox" } } }
如果您收到代理的回复"status": "complete"和短信回复,则说明您的设置工作正常。回复中还将包括sessionId可用于发送后续消息的。
步骤 4:运行第首批任务
查询您的机会
{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "content": [ { "type": "text", "text": "List my open opportunities with expected revenue over $50K" } ], "catalog": "AWS" } } }
查看资金资格
{ "jsonrpc": "2.0", "id": 5, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "content": [ { "type": "text", "text": "Am I eligible for MAP funding for opportunity O1234567890?" } ], "catalog": "AWS" } } }
检索会话历史记录
{ "jsonrpc": "2.0", "id": 6, "method": "tools/call", "params": { "name": "getSession", "arguments": { "sessionId": "session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "catalog": "AWS" } } }
合作伙伴入职
{ "jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": { "name": "sendMessage", "arguments": { "sessionId": "session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "content": [ { "type": "text", "text": "Help me onboard to Partner Central" } ], "catalog": "AWS" } } }
其他可以尝试的入门任务:
“指导我完成税务调查流程”
“你能看看我的网站并填写我的合作伙伴资料吗?”
“我还需要做些什么才能做好在 Marketplace 上销售商品的准备?”
安全注意事项
不要通过 MCP 工具参数传递AWS凭证。身份验证由传输层的 SigV4 请求签名处理。
使用沙盒目录进行测试和开发。该
"Sandbox"目录提供了一个不影响生产合作伙伴数据的隔离环境。在生产环境中应用最低权限 IAM 策略。使用只读策略来监控和报告用例。仅在用户需要更新机会或提交资金申请时才授予写入权限。
仔细检查写入操作。服务器对所有写入操作都使用人工在环审批。当提出写入操作时,请在批准之前查看参数。
会话数据是暂时的。会话将在创建 48 小时后过期。不要依赖会话进行长期数据存储。
文件上传到临时的 S3 存储桶。上传的文件是临时存储的,不会永久保留。请勿上传包含凭证、机密或其他敏感信息的文件。