使用说明
🧠 模型上下文协议(MCP)示例——Python实现
此存储库提供了一个最小但功能强大的示例 模型上下文协议(MCP) 使用Python。它演示了大型语言模型(LLM)代理如何通过标准化的客户端-服务器接口与企业系统通信,使用 JSON-RPC 超过 超文本传输协议,包括支持 服务器发送事件(SSE).
你可以阅读我的博客来更好地理解这个主题:https://srivatssan.medium.com/model-context-protocol-exhaustively-explained-f5a30a87a3ff?sk=1b971265640303c66b04377371c82102
📦 存储库结构
mcp-protocol-example/
├── client/
│ └── main.py # Python MCP client using JSON-RPC
├── server/
│ └── main.py # FastAPI-based MCP server with /rpc and /events endpoints
🚀 如何运行此示例
1.️⃣ 启动服务器
确保您已安装FastAPI和Uvicorn:
pip install fastapi uvicorn
然后,启动MCP服务器:
cd server
uvicorn main:app --reload
这将通过以下方式启动FastAPI服务器:
POST /rpc:用于工具列表和调用的JSON-RPC处理程序GET /events:模拟SSE端点每5秒发出一次心跳消息
2.️⃣ 运行客户端
安装所需的Python请求包:
pip install requests
然后运行客户端与服务器交互:
cd client
python main.py
输出:
Tools: [{'name': 'greet', 'description': 'Greets the user', ...}]
Response: {'message': 'Hello, Sri!'}
你可以跑http://localhost:8000/events 您应该看到心跳事件被返回 如下图所示。
_数据:{事件:心跳}
数据:{事件:心跳} _ ...
⚙️ 它展示了什么
- 通过以下方式公开工具的基本MCP服务器
tools/list和tools/call - 客户端向列表和调用工具发送JSON-RPC请求
- 使用模拟实时连接
/eventsSSE 终端 - 模块化结构,可扩展
resources/和prompts/支持
🧩 后续步骤
您可以通过以下方式扩展此原型:
- 添加更多具有不同模式的工具
- 支持
resources/list和resources/read - 使用管理提示模板
prompts/get - 实施身份验证和访问控制
- 处理从服务器到客户端的流式响应
📚 参考文献
创建于❤️ 靠近 斯里瓦桑·斯里尼瓦桑
