🧠 模型上下文协议(MCP)-服务器客户端实现
这个项目很简单 模型上下文协议(MCP) 系统包括 MCP服务器 以及a MCP客户端,通过通信 服务器发送事件(SSE) 使用FastAPI。它演示了使用HTTP上的SSE进行轻量级工具调用。
______________________________________________________________________
🏗️ 架构概述
+-------------+ SSE HTTP +-------------+
| | | |
| MCP CLIENT | | MCP SERVER |
| (FastAPI) | /upload_claim ⇄ upload_claim | (SSE Tools) |
| Port: 5000 | /get_claim_details ⇄ get_claim_details | Port: 8000 |
+-------------+ +-------------+______________________________________________________________________
📁 项目结构
.
├── client/ # MCP Client (FastAPI app)
│ └──main.py
│
├── server/ # MCP Server with SSE tools
│ └──main.py
|
└── README.md
└── requirements.txt______________________________________________________________________
🔧 MCP服务器
- 端口:
8000 - 框架快速API
- 协议:服务器发送事件(SSE)
- 定义工具:
- upload_claim - get_claim_details
▶️ 运行MCP服务器
cd server
pip install -r requirements.txt
python main.py______________________________________________________________________
🚀 MCP客户端
- 端口:
5000 - 框架快速API
- 端点:
- POST /upload_claim → Calls upload_claim MCP服务器上的工具 - GET /get_claim_details → Calls get_claim_details MCP服务器上的工具
▶️ 运行MCP客户端
cd client
pip install -r requirements.txt
python main.py______________________________________________________________________
🔄 通信流
- 客户端 向MCP服务器发送SSE HTTP请求以调用工具。
- 服务器 处理请求并通过SSE流式传输响应。
______________________________________________________________________
📬 示例请求
POST /upload_claim
curl -X POST http://localhost:5000/upload_claim \
-H "Content-Type: application/json" \
-d '{
"emp_id": "12345",
"claim": "This is a dummy claim!"
}'POST /get_claim_details
curl -X POST http://localhost:5000/get_claim_details \
-H "Content-Type: application/json" \
-d '{
"claim_id": "12345"
}'🧰 需求
Python 3.10+
需求.txt\`
"mcp[cli]"
fastapi
httpx使用以下命令在每个目录中安装依赖项:
pip install -r requirements.txt______________________________________________________________________
⚠️ 备注
- 这是一个用于以下目的的最小原型 发展或教育 使用。
- 数据已存储 在存储器中 并将在服务器重新启动时重置。
- SSE用于简单性和流兼容性。
______________________________________________________________________
