返回市场
MCP基础组件

MCP基础组件

作者:khshanovskyi6 星标更新:2025-11-10

项目介绍

基于框架的MCP(服务器与客户端)

使用Python实现带有MCP工具和MCP服务器的用户管理代理

🎯 任务概述

创建并运行一个简单的MCP服务器,并使用该服务器中的MCP工具实现一个简单的用户管理代理。

🎓 学习目标

通过探索和参与这个项目,您将学习到:

  • 如何配置简单的MCP服务器
  • 如何配置客户端并连接到MCP服务器
  • 如何使用MCP服务器中的工具创建简单的代理
  • MCP的关键特性

🏗️ 架构

task/
├── agent/
│   ├── models/           
│   │   └──message.py         ✅ 完成
│   ├── app.py                🚧 待办:实现逻辑
│   ├── openai_client.py      🚧 待办:实现逻辑
│   └── mcp_cleint.py         🚧 待办:实现逻辑
└── mcp_server/               
    ├── server.py             🚧 待办:实现逻辑
    ├── user_client.py        ✅ 完成
    └── Dockerfile            ✅ 完成

📋 要求

  • Python: 3.11 或更高版本
  • 依赖项: 列在 requirements.txt
  • Docker 和 Docker Compose
  • Postman

✍️ 任务:

如果主分支的任务对你来说太难了,那么切换到 with-detailed-description 分支

你需要实现用户管理代理,它能够在用户管理服务中执行CRUD操作。

创建并运行MCP服务器:

  1. 运行 根docker-compose (可选步骤,如果你之前已经完成了)
  2. 打开 mcp_server
  3. 实现所有 待办事项
  4. 运行 mcp_server

可选:在Postman中使用MCP服务器

  1. mcp.postman_collection 导入到Postman
  2. 发起 init 请求并从响应头中获取 mcp-session-id
  3. 发起 init-notification 请求。请注意,你需要使用从 init 请求中获取的 mcp-session-id。它应该返回202状态码。
  4. 获取工具(别忘了带上 mcp-session-id)。它应该返回工具流。
  5. 调用计算器(别忘了带上 mcp-session-id)。它应该返回工具执行结果流。

创建并运行代理:

  1. 打开 mcp_client 并实现所有 待办事项
  2. 打开 openai_client 并实现所有 待办事项
  3. 打开 prompts 并编写系统提示
  4. 打开 app 并实现所有 待办事项
  5. 运行应用程序 mcp_client,测试其是否能够连接到MCP服务器并正常工作
  6. 尝试使用你的解决方案与 fetch MCP https://remote.mcpservers.org/fetch/mcp 并检查在 init 步骤上的差异(它们有什么和没有什么)

可选:支持两种(用户管理和fetch)MCP服务器:

  1. 记住我们有一个MCP客户端与一个MCP服务器之间的1对1连接!
  2. 你需要思考如何改变当前流程以支持来自不同MCP服务器的工具,并实现它
  3. 最终你应该拥有一个能够从网络上获取某些人的信息并将其保存到用户服务中的代理
  4. 提示:问题所在是 openai_client