View a markdown version of this page

合作伙伴中心代理 MCP 服务器入门 - AWS 合作伙伴中心

对 AWS 合作伙伴中心 API 参考进行了重组。有关支持的 API 操作的更多信息,请参阅 AWS 合作伙伴中心 API 参考。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

合作伙伴中心代理 MCP 服务器入门

本指南引导您设置对合作伙伴中心代理 MCP 服务器的访问权限。该服务器支持两种身份验证方法:用于基于浏览器的登录的 OAuth 和用于直接 HTTPS 访问的 SigV4,无需代理或 IDE 插件。

先决条件

开始之前,请确保您已具备以下条件:

  • 有效的合作伙伴中心账户(已迁移到 AWS 控制台)

  • 与您的合作伙伴中心组织关联的 AWS 账户,拥有 Partner Central 的 IAM 权限

  • MCP-compatible 客户端(Claude Code、KiroClaude Desktop、或任何支持模型上下文协议的客户端)

仅用于 SigV4 身份验证

以下先决条件仅适用于 SigV4 身份验证。

  • AWS 已安装并使用证书配置 CLI

  • 支持 JSON-RPC 2.0 和 SigV4 请求签名的 MCP-compatible 客户端

步骤 1:配置身份验证并连接

使用合作伙伴中心代理 MCP 服务器,您可以使用 OAuth 进行身份验证,进行基于浏览器的登录,使用 SigV4 进行直接 HTTPS 访问。选择最适合您的工作流程的方法。您的 MCP 客户端直接连接到端点,无需代理层或 IDE 插件。

端点

https://partnercentral-agents-mcp.us-east-1.api.aws/mcp

合作伙伴中心代理 MCP 服务器目前仅在美国东部(弗吉尼亚北部)可用。您可以从任何位置连接到此端点。

选择身份验证方法

问题 使用
您是否想在不安装 AWS CLI 或配置本地凭据的情况下开始使用? OAuth
您的客户端是否支持使用基于浏览器的登录的远程 MCP 服务器? OAuth
您的代理是否在没有浏览器(CI/CD自动化脚本)的情况下运行? SigV4
您的组织有限制signin:AuthorizeOAuth2Access和signin:CreateOAuth2Token权限吗? SigV4

连接您的 MCP 客户端

选择一个选项卡查看您的首选身份验证方法的设置说明。

OAuth (simple)

使用 OAuth,您使用与 AWS 管理控制台相同的凭据登录。首次连接时,您的 MCP 客户端会打开一个浏览器窗口。 AWS Sign-In在您进行身份验证和授权访问后,令牌会在后台自动刷新。

注意

授权代理不会授予其任何额外 AWS 权限。 AWS 根据您的 IAM 策略、服务控制策略、资源控制策略和权限边界评估每个请求。

先决条件

向您的 IAM 角色或用户授予 OAuth 登录权限。您可以附加AWSMcpServiceActionsFullAccess托管策略,也可以将signin:AuthorizeOAuth2Access和signin:CreateOAuth2Token操作添加到您的 IAM 策略中。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "signin:AuthorizeOAuth2Access", "signin:CreateOAuth2Token" ], "Resource": "*" } ] }
注意

访问 MCP 协议不需要明确的 “允许partnercentral:*操作”。默认情况下,MCP 服务器向所有经过身份验证的 AWS 身份授予协议访问权限。只有启用基于浏览器的 OAuth 流程才需要上述signin:*权限。

配置您的 MCP 客户端

使用以下客户端之一进行连接。

Claude Code CLI

运行以下命令:

claude mcp add partnercentral --transport http https://partnercentral-agents-mcp.us-east-1.api.aws/mcp
Claude Desktop

使用以下 URL 添加为远程 MCP 服务器:

https://partnercentral-agents-mcp.us-east-1.api.aws/mcp
Kiro CLI (v3 或更高版本)

运行以下命令:

kiro-cli --v3 mcp add --name partnercentral --url https://partnercentral-agents-mcp.us-east-1.api.aws/mcp
注意

搭载合作伙伴中心代理 MCP 服务器的 OAuth 需要Kiro CLI版本 3 或更高版本。早期版本不支持此流程。

Kiro IDE

使用以下 URL 添加为远程 MCP 服务器:

https://partnercentral-agents-mcp.us-east-1.api.aws/mcp
Amazon Quick

创建连接器并将其安装在其中Quick Desktop。

第 1 部分:创建连接器

完成中的以下步骤Amazon Quick。

  1. 在的左侧面板中Amazon Quick,打开 “功能” → “连接器” 。

  2. 选择创建 → Web 连接器。Quick Web 将在您的默认浏览器中打开。

  3. 选择 “为团队创建” 选项卡,然后选择 “模型上下文协议” 。

  4. 选择 “否,新建”,然后输入以下内容:

    Field Value
    Name 合作伙伴中心代理
    说明 MCP 到合作伙伴中央代理
    MCP 服务器端点 https://partnercentral-agents-mcp.us-east-1.api.aws/mcp
    连接类型 公有网络
    身份验证连接类型 公有网络
  5. 选择下一步。

  6. 要进行身份验证配置,请选择默认 OAuth 应用程序。

  7. 选择 “创建并继续” 。将打开一个浏览器弹出窗口,使用您的 Partner Central 账户登录 — 选择您现有的登录账户。

  8. 弹出窗口关闭后,选择 “下一步” 进入审阅部分。

  9. 在 “发布” 部分中,选择要与之共享连接器的别名(包括您自己的别名)或与整个组织共享的别名。

第 2 部分:连接 快速桌面

在桌面应用程序中安装连接器。

  1. 在中Quick Desktop,打开 “能力”。

  2. 在 “连接器” 选项卡上,选择 “浏览更多”,然后搜索 “合作伙伴中心代理” 。可能需要几分钟才能出现。

  3. 选择安装。

注意

如果您的客户端未列出,请使用上面的终端节点 URL。如果工具调用由于凭据错误而失败,请附加?oauth=initialize到网址以明确触发 OAuth 登录流程。

SigV4 (advanced)

使用 SigV4 对自定义 MCP 客户端、无头代理、 CI/CD 管道或自动化脚本的请求进行身份验证。

先决条件

在连接之前完成以下步骤。

  1. 安装 C AWS LI。

  2. 登录并配置凭据:aws configure

  3. 验证访问权限:aws sts get-caller-identity

注意

访问 MCP 协议不需要明确的 IAM 允许。默认情况下,MCP 服务器向所有经过身份验证的 AWS 身份授予访问权限。您只需要可以签署请求的有效 AWS 凭证。

配置

使用带有以下参数的 AWS 签名版本 4 对请求进行签名:

  • 服务名称:partnercentral-agents-mcp

  • 区域:us-east-1

使用awscurl以下示例:

awscurl --service partnercentral-agents-mcp --region us-east-1 \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}' \ "https://partnercentral-agents-mcp.us-east-1.api.aws/mcp"
重要

当您连接到 MCP 服务器时,您只能访问协议。要执行 Partner Central 操作,例如查询机会或管理资金,您还必须授予数据访问权限。请参阅第 2 步:授予数据访问权限。

限制 MCP 访问权限

默认情况下,所有经过身份验证的 AWS 身份都具有对 MCP 服务器的协议访问权限。要阻止特定用户或账户的 MCP 访问权限,请对partnercentral:InvokeMcp以下各项应用明确的拒绝:

{ "Effect": "Deny", "Action": "partnercentral:InvokeMcp", "Resource": "*" }

MCP 协议参考

本节介绍自定义 MCP 客户端实现的 JSON-RPC 协议。如果您使用Claude Code、或 KiroClaude Desktop,则您的客户端会自动处理这些请求。

OAuth 和 SigV4 身份验证的请求和响应格式相同。唯一的区别是 HTTP 身份验证标头:OAuth 使用Authorization: Bearer <token>,而 SigV4 使用签名标头。 AWS

初始化 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": {} }

第 2 步:授予数据访问权限

当您连接到 MCP 服务器时,您只能访问协议。要执行合作伙伴中心操作,例如查询机会或管理资金,您需要额外的 IAM 权限。以下部分介绍如何附加策略和可用权限级别。

附加 IAM 策略

要使用 AWS 管理控制台将策略附加到您的 IAM 身份,请执行以下操作:

  1. 打开 IAM 控制台。

  2. 在左侧导航窗格中,根据要将策略附加到的身份选择 “用户”、“用户组” 或 “角色”,然后选择特定用户、组或角色的名称。

  3. 选择权限选项卡。

  4. 选择 “附加策略”(如果是第一次,则选择 “添加权限”)。

  5. 在策略列表中,搜索并选择要附加的托管策略(例如,您根据以下 JSON 块创建的自定义策略)。

  6. 选择 “附加策略”(或 “下一步”,然后选择 “添加权限”)进行确认。

权限立即生效。您可以将多个策略附加到同一个身份。

推荐:使用托管策略

授予数据访问权限的最简单方法是将AWSPartnerCentralFullAccess托管策略附加到您的 IAM 身份。此政策包括通过 MCP 服务器进行所有合作伙伴中心操作的权限。

要进行精细控制,请使用以下部分中的自定义策略,仅授予您的用例所需的特定操作。

数据访问权限

要通过代理实际执行 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": "*" }

对于商城卖家设置,还要添加:

{ "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: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:List*", "partnercentral:Get*" ], "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": "*" } ] }'

使用 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 参数:

服务器 URL:https://partnercentral-agents-mcp.us-east-1.api.aws/mcp?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" } } }

其他可以尝试的入职任务:

  • “指导我完成税务面试流程”

  • “你能看看我的网站并填写我的合作伙伴资料吗?”

  • “我还需要做什么才能做好在商城上销售商品的准备?”

安全注意事项

  • 不要通过 MCP 工具参数传递 AWS 凭据。SigV4 请求签名或 OAuth 令牌处理传输层的身份验证。

  • 使用沙盒目录进行测试和开发。该"Sandbox"目录提供了一个不影响生产合作伙伴数据的隔离环境。

  • 在生产环境中应用最低权限 IAM 策略。使用只读策略监控和报告用例。仅在用户需要更新机会或提交资金申请时才授予写入权限。

  • 仔细查看写入操作。服务器对所有写入操作使用人工在环审批。当提出写入操作时,请在批准之前审查参数。

  • 会话数据是瞬态的。会话在创建 48 小时后过期。不要依赖会话进行长期数据存储。

  • 文件上传到临时的 S3 存储桶。上传的文件是临时存储的,不会永久保留。不要上传包含证书、机密或其他敏感信息的文件。

  • OAuth 令牌最多可自动刷新 12 小时。会话到期后,通过浏览器重新进行身份验证。

  • 授权代理不会授予您现有 IAM 策略、服务控制策略、资源控制策略和权限边界之外的额外 AWS 权限。

问题排查

下表列出了常见错误及其解决方法。

错误 原因 解决方案
请求中包含的安全令牌无效 凭证已过期 运行aws sso login以刷新凭据
访问被拒绝:用户无权进行登录:AuthorizeOAuth2Access 缺少 OAuth 权限 附加AWSMcpServiceActionsFullAccess或添加signin权限
OAuth 登录后出现 400 错误 IAM 委托人缺乏 OAuth 权限 验证signin:AuthorizeOAuth2Access并signin:CreateOAuth2Token被允许
访问被拒绝或隐式拒绝partnercentral:InvokeMcp或signin:*操作 组织使用基于许可列表的服务控制策略 (SCP) 来阻止未明确允许的服务 要求您的 AWS 管理员向组织的 SCP 中允许的服务添加partnercentral和signin(仅限 OAuth)。在身份策略生效之前,SCP 必须在账户级别允许这些服务。控制 MCP 协议访问的唯一操作是 partnercentral:InvokeMcp — 明确拒绝此操作会阻止所有 MCP 请求。

后续步骤

  • 配置参考 — 终端节点、IAM 操作、会话管理和错误代码的完整参考

  • 工具参考 — sendMessage 和getSession工具的详细文档