协议经纪人mcp
MCP(模型上下文协议)服务器,用于与 合约经纪人.
将Pact Broker数据(提供者、消费者、契约和提供者状态)作为MCP工具公开,以便AI助手(Claude、Cursor等)可以在上下文中查询它们。
______________________________________________________________________
可用工具
| 工具 | 说明 |
|---|---|
list_pacticipants | 列出在经纪商中注册的每个消费者和提供商 |
list_providers | 仅列出供应商(在≥1个协议中显示为供应商的协议制定者) |
get_pacticipant | 按名称获取单个压实剂的详细信息 |
get_provider_states | 获取按消费者分组的提供者的所有提供者状态 |
get_provider_pacts | 获取提供商的最新协议版本(每个消费者一个) |
get_consumer_pacts | 为消费者获取最新的协议版本(每个提供商一个) |
get_pact | 获取消费者/提供者对的完整最新协议JSON |
get_pact_by_version | 获取给定消费者版本的消费者/提供者对的完整协议JSON |
get_previous_distinct_pact | 在给定的消费者版本中获取消费者/提供者的先前不同协议(或 null) |
get_pact_version | 获取由消费者/提供商+消费者版本标识的协议的Pact Broker协议版本UUID |
get_latest_verification_results_for_pact_version | 获取协议版本UUID的最新验证结果(或 null 如果不存在) |
can_i_deploy | 检查压实剂版本是否可以安全地部署到环境中 |
list_environments | 列出在Pact Broker中注册的所有环境 |
get_currently_deployed_versions | 获取当前部署到环境中的压缩剂版本 |
get_currently_supported_versions | 获取环境中当前支持(已发布)的压实剂版本 |
get_pacticipant_branches | 获取特定压实剂的所有分支机构 |
get_pacticipant_branch_latest_version | 获取签约公司特定分支的最新版本 |
______________________________________________________________________
配置
Pact Broker连接是通过环境变量配置的:
| 环境变量 | 必填 | 说明 |
|---|---|---|
PACT_BROKER_BASE_URL | 是 | 协议代理的基本URL,例如。 https://broker.example.com |
PACT_BROKER_USERNAME | 否 | 基本身份验证的用户名 |
PACT_BROKER_PASSWORD | 否 | 基本身份验证密码 |
PACT_BROKER_TOKEN | 否 | 用于身份验证的承载令牌(用户名/密码的替代方案) |
所有工具目前都是读取工具,因此不需要身份验证,除非访问协议钻孔者需要身份验证。
身份验证优先级:如果同时提供基本身份验证(用户名/密码)和承载令牌,则承载令牌优先。
______________________________________________________________________
设置
先决条件
- Node.js 18+
- npm/pnpm/纱线
安装和构建
npm install
npm run build重要:安装后,重新启动AI应用程序以获取更改。
与Claude Desktop一起使用
将服务器添加到您的 claude_desktop_config.json 环境变量:
{
"mcpServers": {
"pact-broker": {
"command": "node",
"args": ["/absolute/path/to/pact-broker-mcp/dist/index.js"],
"env": {
"PACT_BROKER_BASE_URL": "https://broker.example.com",
"PACT_BROKER_USERNAME": "your-username",
"PACT_BROKER_PASSWORD": "your-password"
}
}
}
}配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
______________________________________________________________________
与Claude Code/其他MCP客户端一起使用
# From within Claude Code:
claude mcp add pact-broker node /absolute/path/to/pact-broker-mcp/dist/index.js使用Codex CLI:
codex mcp add pact-broker-mcp --env PACT_BROKER_BASE_URL=https://broker.example.com -- node /absolute/path/to/pact-broker-mcp/dist/index.js______________________________________________________________________
示例提示
连接后,您可以向AI应用程序询问以下问题:
“列出我的合约经纪人中的所有提供商”
“OrderService有哪些提供商状态?”
“显示PaymentConsumer和PaymentProvider之间的完整协议”
“我可以将PaymentService 1.2.3版本部署到生产环境吗?”
“将OrderConsumer版本abc123部署到登台是否安全?”
“Pact Broker中有哪些可用环境?”
“显示当前部署到生产环境的版本”
“显示生产中当前支持的版本”
“显示PaymentService的所有分支机构”
“BarProvider的主分支的最新版本是什么?”
“FooConsumer和BarProvider之间关于消费者版本abc123的协议版本UUID是什么?”
“获取FooConsumer和BarProvider之间协议版本2f74c58b-0d16-4a3c-9aa2-3c5a5a5eb1d3的最新验证结果”
“向我展示消费者版本abc123中FooConsumer/BarProvider的先前不同协议”
______________________________________________________________________
项目结构
src/
index.ts # MCP server — tool registration & request handling
pact-broker-client.ts # HTTP client for the Pact Broker REST API
tools.ts # Zod schemas & tool metadata