MCP服务器到服务器通信
演示两个MCP服务器之间通过HTTP的通信,服务器B连接到LLM(Mock、OpenAI或AWS Bedrock)。
建筑
┌─────────────┐ HTTP ┌─────────────┐ ┌─────────────┐
│ MCP │ (POST/GET) │ MCP │ API Call │ LLM │
│ Server A │ ────────────────► │ Server B │ ─────────────► │ Provider │
│ (Messenger)│ ◄──────────────── │ (HTTP API) │ ◄───────────── │ │
└─────────────┘ Response └─────────────┘ Response └─────────────┘快速开始
# Setup
git clone https://github.com/majidraza1228/mcp-communication.git
cd mcp-communication
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # Default: AI_PROVIDER=mock (no API keys needed)# Terminal 1 — Start Server B
.venv/bin/uvicorn http_server:app --host 0.0.0.0 --port 8000
# Terminal 2 — Run the proof-of-concept test
.venv/bin/python test_communication.py文件
| 文件 | 描述 |
|---|---|
server_a.py | MCP服务器A——通过HTTP向服务器B发送消息 |
server_b.py | MCP服务器B——将AI提供者包装为MCP工具 |
http_server.py | FastAPI HTTP API-接收请求,调用AI |
ai_provider.py | 人工智能提供者抽象(Mock、OpenAI、Bedrock) |
models.py | Pydantic请求/响应模型 |
cost_calculator.py | 代币成本估算 |
test_communication.py | 概念验证测试脚本 |
LLM提供程序配置
配置 AI_PROVIDER 在 .env:
| 提供者 | 值 | 需要 |
|---|---|---|
| 模拟(默认) | mock | 没有-不需要API密钥 |
| OpenAI | openai | OPENAI_API_KEY |
| AWS基岩 | bedrock | AWS凭据(AWS_ACCESS_KEY_ID / AWS_PROFILE) |
看 .env.示例 对于所有可用设置。
运输方式
两个MCP服务器都支持 标准 (默认)和 上海证券交易所 (流式HTTP):
# stdio (default)
.venv/bin/python server_a.py
# SSE — Server A on :8001, Server B on :8002
.venv/bin/python server_a.py sse
.venv/bin/python server_b.py sse文档
- PROOF_OF_CONCEPT.md --逐步证明MCP服务器到服务器通信工作的指南
- .env.示例 --环境变量和配置选项的完整列表
许可证
麻省理工学院
