

 AWS Partner Central API 参考已重新构建。有关支持的 API 操作的更多信息，请参阅 [AWS Partner Central API 参考](https://docs.aws.amazon.com/partner-central/latest/APIReference/Welcome.html)。

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

# 合作伙伴中心代理 MCP 服务器入门
<a name="mcp-getting-started"></a>

本指南将引导您使用自定义 MCP 客户端设置对合作伙伴中心代理 MCP 服务器的编程访问权限。服务器使用带有 Sigv4 身份验证的直接 HTTPS，无需代理或 IDE 插件。

## 先决条件
<a name="mcp-prerequisites"></a>

开始之前，请确保您已具备以下条件：
+ 有效的合作伙伴中心账户（已迁移到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 权限
<a name="mcp-step1-iam"></a>

Partner Central Agent MCP 服务器需要两个级别的 IAM 权限：协议访问权限（用于与 MCP 端点通信）和数据访问权限（用于执行合作伙伴中心操作）。

### 附加 IAM 策略
<a name="mcp-attaching-iam-policies"></a>

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

1. 打开 [IAM 控制台](https://console.aws.amazon.com/iam/)。

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

1. 选择**权限**选项卡。

1. 选择**附加策略**（如果是第一次，则选择**添加权限**）。

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

1. 选择 “**附加策略**”（或选择 “**下一步**”，然后选择 **“添加权限”**）进行确认。

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

### 推荐：使用托管策略
<a name="mcp-managed-policy"></a>

授予 MCP 协议访问权限的最简单方法是将`AWSMcpServiceActionsFullAccess`托管策略附加到您的 IAM 身份。此策略包括与 MCP 服务器交互所需的所有权限。

为了实现精细控制，您可以使用 IAM 策略中的`aws:IsMcpServiceAction`条件密钥来确定权限范围，专门针对 MCP 服务操作。

### MCP 协议访问的最低权限
<a name="mcp-minimum-permissions"></a>

您的 IAM 身份至少需要此操作才能与 MCP 服务器进行交互：


| 处理建议 | 说明 | 
| --- | --- | 
| partnercentral:UseSession | 创建、更新和检索对话会话所必需的 | 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "partnercentral:UseSession"
            ],
            "Resource": "*",
			"Condition": {
                "Bool": {
                    "aws:IsMcpServiceAction": "true"
                }
            }
        }
    ]
	

}
```

### 数据访问权限
<a name="mcp-data-access-permissions"></a>

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

### 完全访问策略
<a name="mcp-full-access-policy"></a>

对于开发和测试，您可以将所有权限合并到一个策略中：

```
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 政策
<a name="mcp-read-only-policy"></a>

对于生产环境或只读用例，请限制读取操作的权限：

```
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 客户端
<a name="mcp-step2-connect"></a>

合作伙伴中心代理 MCP 服务器使用带有 Sigv4 请求签名的直接 HTTPS。没有代理层 — 您的 MCP 客户端直接向端点发送 JSON-RPC 2.0 请求。

### 端点
<a name="mcp-endpoint"></a>

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

### 身份验证
<a name="mcp-authentication"></a>

所有请求都必须使用签[AWS名版本 4 进行签名](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)，使用以下命令进行签名：
+ 服务名称：`partnercentral-agents-mcp`
+ 区域：`us-east-1`

### 初始化 MCP 连接
<a name="mcp-initialize-connection"></a>

发送建立协议的`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"
        }
    }
}
```

### 列出可用工具
<a name="mcp-list-tools"></a>

```
{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
}
```

## 使用 MCP 标头对通话进行签名
<a name="mcp-signing-calls-header"></a>

在向 Partner Central 代理 MCP 提出请求时，我们建议使用以下方法添加自定义 MCP 标头，以帮助AWS识别客户端应用程序的来源、监控使用情况和审计性能。AWS使用此标头来区分发出调用的客户端应用程序的类型，并收集有关不同客户端实现成功率的见解。

### 方法 1：\_meta 字段 (programmatic/stateless MCP)
<a name="mcp-header-meta-field"></a>

对于直接构造 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（基于会话的自定义代理）
<a name="mcp-header-client-info"></a>

对于建立会话的自定义 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）
<a name="mcp-header-url-parameter"></a>

仅适用于集成商无法修改协议字段的托管 MCP 客户端。使用 URL 参数：

服务器网址：`https://mcp.partnercentral.aws?appId=<Integrator's Company Name / Direct>`

## 步骤 3：验证设置
<a name="mcp-step3-verify"></a>

发送一条简单的消息以确认一切正常。使用`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：运行第首批任务
<a name="mcp-step4-tasks"></a>

### 查询您的机会
<a name="mcp-query-opportunities"></a>

```
{
    "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"
        }
    }
}
```

### 查看资金资格
<a name="mcp-check-funding"></a>

```
{
    "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"
        }
    }
}
```

### 检索会话历史记录
<a name="mcp-retrieve-session"></a>

```
{
    "jsonrpc": "2.0",
    "id": 6,
    "method": "tools/call",
    "params": {
        "name": "getSession",
        "arguments": {
            "sessionId": "session-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "catalog": "AWS"
        }
    }
}
```

### 合作伙伴入职
<a name="mcp-partner-onboarding-task"></a>

```
{
    "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 上销售商品的准备？”

## 安全注意事项
<a name="mcp-security-considerations"></a>
+ 不要通过 MCP 工具参数传递AWS凭证。身份验证由传输层的 SigV4 请求签名处理。
+ 使用沙盒目录进行测试和开发。该`"Sandbox"`目录提供了一个不影响生产合作伙伴数据的隔离环境。
+ 在生产环境中应用最低权限 IAM 策略。使用只读策略来监控和报告用例。仅在用户需要更新机会或提交资金申请时才授予写入权限。
+ 仔细检查写入操作。服务器对所有写入操作都使用人工在环审批。当提出写入操作时，请在批准之前查看参数。
+ 会话数据是暂时的。会话将在创建 48 小时后过期。不要依赖会话进行长期数据存储。
+ 文件上传到临时的 S3 存储桶。上传的文件是临时存储的，不会永久保留。请勿上传包含凭证、机密或其他敏感信息的文件。

## 后续步骤
<a name="mcp-next-steps"></a>
+ [https://docs.aws.amazon.com/partner-central/latest/APIReference/mcp-configuration-reference.html](https://docs.aws.amazon.com/partner-central/latest/APIReference/mcp-configuration-reference.html) — 终端节点、IAM 操作、会话管理和错误代码的完整参考
+ [https://docs.aws.amazon.com/partner-central/latest/APIReference/mcp-tools-reference.html](https://docs.aws.amazon.com/partner-central/latest/APIReference/mcp-tools-reference.html) — `sendMessage` 和`getSession`工具的详细文档