a2a结算mcp
  
MCP服务器,允许任何AI代理访问A2A结算交易所。将Claude、Cursor、LangGraph或自定义代理连接到基于托管的结算,而无需特定于框架的集成代码。
建筑
Any MCP Client A2A-SE Exchange
(Claude, Cursor, LangGraph, (http://localhost:3000)
custom agents, etc.) │
│ │
│ MCP Protocol (stdio/SSE) │
▼ │
┌──────────────────┐ HTTP/REST ┌───────┴────────┐
│ MCP Server │───────────────►│ Exchange │
│ (this project) │ │ API │
│ │◄───────────────│ │
│ Tools: │ └─────────────────┘
│ - register │
│ - fund │
│ - balance │
│ - escrow │
│ - dispute │
│ - reputation │
│ - history │
└──────────────────┘什么是MCP?
这 模型上下文协议 (MCP)是将AI应用程序连接到外部数据和工具的标准。MCP服务器公开 工具 代理可以发现并调用。此服务器将A2A结算交换操作作为MCP工具公开——代理的运行时中没有安装SDK,也没有特定于框架的适配器。
可用工具
| 工具 | 说明 | 参数 |
|---|---|---|
settlement_register_agent | 在交易所注册新代理 | name, developer_id, developer_name, contact_email, description, skills |
settlement_fund_agent | 将代币添加到代理的余额中 | agent_id, amount |
settlement_check_balance | 检查代理的令牌余额 | agent_id |
settlement_list_agents | 列出所有注册代理人 | skill, limit |
settlement_create_escrow | 在代理之间创建托管 | provider_id, amount, task_description, task_id, task_type, ttl_minutes |
settlement_get_escrow | 检查托管状态 | escrow_id |
settlement_release_escrow | 将托管资金释放给提供商 | escrow_id |
settlement_refund_escrow | 将托管资金退还给请求者 | escrow_id, reason |
settlement_file_dispute | 将争议提交第三方托管 | escrow_id, reason |
settlement_check_reputation | 检查代理人的声誉评分 | agent_id |
settlement_get_history | 获取代理的交易历史记录 | agent_id, limit, offset |
注: 单租户模式。服务器使用一个 A2A_API_KEY.为 check_balance, fund_agent, create_escrow, release_escrow, refund_escrow, file_dispute,以及 get_history,the agent_id 必须与配置的帐户匹配。
安装
pip install -e .或者从git(包括来自上游的a2a结算SDK):
pip install git+https://github.com/a2a-settlement/a2a-settlement-mcp.git快速开始
克劳德桌面版
添加 claude_desktop_config.json:
{
"mcpServers": {
"a2a-settlement": {
"command": "python",
"args": ["-m", "a2a_settlement_mcp"],
"env": {
"A2A_EXCHANGE_URL": "http://localhost:3000",
"A2A_API_KEY": "your-api-key"
}
}
}
}看 示例/claude_desktop.md 了解详情。
光标
添加 .cursor/mcp.json:
{
"mcpServers": {
"a2a-settlement": {
"command": "python",
"args": ["-m", "a2a_settlement_mcp"],
"env": {
"A2A_EXCHANGE_URL": "http://localhost:3000",
"A2A_API_KEY": "your-api-key"
}
}
}
}看 examples/cursor_config.md 了解详情。
程序化(Python)
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
params = StdioServerParameters(
command="python",
args=["-m", "a2a_settlement_mcp"],
env={"A2A_EXCHANGE_URL": "http://localhost:3000", "A2A_API_KEY": "your-key"},
)
async with stdio_client(params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
result = await session.call_tool("settlement_check_balance", {"agent_id": "your-account-id"})看 examples/programmatic.py 举个完整的例子。
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
A2A_EXCHANGE_URL | http://localhost:3000 | Exchange API基本URL(无 /v1) |
A2A_API_KEY | (空) | 用于已验证操作的API密钥 |
A2A_MCP_TRANSPORT | stdio | stdio 或 sse |
A2A_MCP_PORT | 3200 | SSE运输港口 |
复制 .env.示例 并根据需要进行调整。
码头工人
docker build -t a2a-settlement-mcp .
docker run -e A2A_EXCHANGE_URL=http://host.docker.internal:3000 \
-e A2A_API_KEY=your-key \
-p 3200:3200 \
a2a-settlement-mcp集装箱默认在端口3200上进行SSE运输。用env变量覆盖。
SSE传输(远程访问)
对于HTTP/远程访问,请使用SSE运行:
A2A_MCP_TRANSPORT=sse A2A_MCP_PORT=3200 a2a-settlement-mcp客户端连接到 http://localhost:3200/sse (或配置的主机/端口)。
测试
pytest tests/ -v相关项目
| 项目 | 描述 |
|---|---|
| a2a结算 | 核心交换+SDK |
| a2a结算授权 | OAuth经济授权 |
| a2a和解调解员 | 基于人工智能的争议解决 |
| a2a结算仪表板 | 人工监督仪表板 |
| 赛特布里奇艾 | SettleBridge网关--信任/策略执行 |
| mcp信任网关 | MCP信任层——补充:评估MCP工具调用的信任 |
| otel代理商来源 | OpenTetry来源约定 |
| a2a联盟rfc | 联邦协议规范 |
| langgraph-a2a-结算 | 原生LangGraph图节点——用于LangGraph工作流 |
| 克鲁瓦伊-a2a-定居点 | 原生CrewAI包装纸 |
| litellm-2a-定居点 | LiteLLM回调挂钩 |
| adk-a2a-setting | 谷歌ADK集成 |
何时使用MCP与框架集成: MCP适用于任何MCP客户端(克劳德桌面、光标、自定义)。对于LangGraph、CrewAI、LiteLLM或ADK,特定于框架的包提供了本机模式(图节点、包装器、回调)。当您的代理运行时与框架无关或仅使用MCP时,请使用MCP。
- MCP Python SDK --MCP正式实施
- 模型上下文协议 --协议规范
许可证
MIT。看 许可证.
