Pact Broker协议交互服务

一个用于与Pact Broker交互的MCP服务器,使AI助手能够查询和管理Pact Broker中的消费者、提供者、契约和提供者状态数据。

  • by dranidis
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 dranidis/pact-broker-mcp

使用说明

协议经纪人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