article
README
🚀 模型上下文协议(MCP)- 服务器-客户端实现
本项目构建了一个简洁的 模型上下文协议 (MCP) 系统,涵盖 MCP 服务器 与 MCP 客户端。二者借助 服务器发送事件 (SSE) 机制,基于 FastAPI 框架开展通信,充分展示了运用 SSE over HTTP 实现轻量级工具调用的过程。
🚀 快速开始
运行 MCP 服务器
cd server
pip install -r requirements.txt
python main.py
运行 MCP 客户端
cd client
pip install -r requirements.txt
python main.py
✨ 主要特性
- 实现了 MCP 服务器与客户端的通信,通过 SSE 协议进行轻量级工具调用。
- 提供了
upload_claim和get_claim_details两个工具的调用接口。
🏗️ 架构概述
+-------------+ SSE HTTP +-------------+
| | <------------------------------------> | |
| MCP 客户端 | | MCP 服务器 |
| (FastAPI) | /upload_claim ⇄ upload_claim | (SSE 工具) |
| 端口: 5000 | /get_claim_details ⇄ get_claim_details | 端口: 8000 |
+-------------+ +-------------+
📦 安装指南
依赖安装
在每个目录中使用以下命令安装依赖项:
pip install -r requirements.txt
环境要求
Python 3.10+
requirements.txt
"mcp[cli]"
fastapi
httpx
💻 使用示例
基础用法
POST /upload_claim
curl -X POST http://localhost:5000/upload_claim \
-H "Content-Type: application/json" \
-d '{
"emp_id": "12345",
"claim": "这是一个假想的索赔!"
}'
POST /get_claim_details
curl -X POST http://localhost:5000/get_claim_details \
-H "Content-Type: application/json" \
-d '{
"claim_id": "12345"
}'
📚 详细文档
📁 项目结构
.
├── client/ # MCP 客户端 (FastAPI 应用)
│ └── main.py
│
├── server/ # MCP 服务器带 SSE 工具
│ └── main.py
|
└── README.md
└── requirements.txt
🔧 MCP 服务器
- 端口:
8000 - 框架: FastAPI
- 协议: 服务器发送事件 (SSE)
- 定义的工具:
upload_claimget_claim_details
🚀 MCP 客户端
- 端口:
5000 - 框架: FastAPI
- 端点:
POST /upload_claim→ 调用 MCP 服务器上的upload_claim工具GET /get_claim_details→ 调用 MCP 服务器上的get_claim_details工具
🔄 通信流程
- 客户端 发送一个 SSE HTTP 请求到 MCP 服务器以调用工具。
- 服务器 处理请求并通过 SSE 流式传输响应。
⚠️ 注意事项
⚠️ 重要提示
- 这是一个最小的原型,仅供 开发或教育 使用。
- 数据存储在内存中,服务器重启后会重置。
- SSE 用于简单性和流式兼容性。
微信扫一扫