模型上下文协议示例

一个使用Python实现的模型上下文协议(MCP)示例,展示了大型语言模型(LLM)代理如何通过标准化的客户端-服务器接口与企业系统通信。

  • by srivatssan
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 srivatssan/mcp-demo

使用说明

🧠 模型上下文协议(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请求
  • 使用模拟实时连接 /events SSE 终端
  • 模块化结构,可扩展 resources/ 和 prompts/ 支持

🧩 后续步骤

您可以通过以下方式扩展此原型:

  • 添加更多具有不同模式的工具
  • 支持 resources/list 和 resources/read
  • 使用管理提示模板 prompts/get
  • 实施身份验证和访问控制
  • 处理从服务器到客户端的流式响应

📚 参考文献


创建于❤️ 靠近 斯里瓦桑·斯里尼瓦桑