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
