MCP(模型上下文协议)项目
🚀 什么是MCP?
MCP(模型上下文协议) 是一种功能强大、灵活的构建协议 工具增强人工智能系统它使您能够将Python函数公开为可以通过不同传输方式访问的工具,例如 上海证券交易所, 标准,或 超文本传输协议,允许服务器、客户端和大型语言模型(LLM)之间的无缝交互。
🧠 项目亮点
- 🔧 从头开始构建MCP服务器 使用FastMCP提供实时天气工具。
- 📡 与客户集成 两者都使用 上海证券交易所 和 标准.
- 🤖 通过LangChain连接到Google Gemini,实现使用工具的对话式人工智能。
- 🐳 Docker化环境 易于部署和移植。
📁 项目结构
根
| 文件 |
描述 |
main.py |
打印问候语的输入脚本。 |
README.md |
这份文件。 |
pyproject.toml |
项目依赖关系。 |
uv.lock |
锁定文件以进行确定性安装。 |
mcpserver/
| 文件 |
描述 |
server.py |
带天气工具的主MCP服务器(get_alerts, get_forecast). |
client-sse.py |
客户端使用SSE列出和调用服务器工具。 |
client-stdio.py |
客户端使用stdio与服务器工具交互。 |
Dockerfile |
Docker设置在容器中运行MCP服务器。 |
requirements.txt |
Python包依赖关系。 |
server/
| 文件 |
描述 |
weather.py |
具有天气工具和自定义资源的替代MCP服务器。 |
client.py |
LangChain+Google Gemini与会话工具使用的集成。 |
weather.json |
用于启动天气服务器的配置文件。 |
🖼️ 运行天气get_alert()函数的屏幕截图
🔍 运作原理
1.MCP服务器
- 使用以下工具显示与天气相关的工具
@mcp.tool() 装饰师。
- 可以在SSE和stdio等传输上运行。
2.客户集成
- SSE客户端:通过SSE连接以发现和调用工具。
- Stdio客户端:使用stdin/stdout进行命令行交互。
3.法学硕士整合
- LangChain 将Gemini连接到MCP服务器。
- 使LLM能够在对话过程中动态推理和调用工具。
4.Docker化部署
- 所有代码和依赖项都是容器化的。
- 通过Docker在任何平台上轻松运行MCP服务器。
🧪 如何跑步
本地运行(Python)
pip install -r mcpserver/requirements.txt
uv run mcpserver/server.py