使用说明
MCP天气助手
一个在Ollama上使用Mistral实现的本地MCP(模型上下文协议),它允许模型通过专用的MCP服务器获取实时天气数据。
这个项目展示了大型语言模型(LLM)如何通过使用工具调用来安全地与外部API进行交互,其中客户端负责协调用户输入、模型推理、工具执行和最终输出之间的工作流程。
特点/功能
- 通过Ollama托管的本地Mistral模型
- MCP客户端用于管理工具发现和调用
- 天气MCP服务器从Open-Meteo获取实时天气数据
- 两步推理循环模型决定是否需要使用工具,工具执行操作,然后模型自然地总结结果
- 全模块化 — 可以轻松添加新工具
项目结构
MCP-Weather-Assistant/
├── mcp_client.py # MCP client connecting LLM to tools
├── mcp_weather_server.py # MCP server exposing weather API
├── README.md # Project documentation
└── requirements.txt # Python dependencies
要求
- Python 3.10+(或 Python 3.10及以上版本)
- Ollama(本地模型托管)
- 在Ollama中安装的Mistral或LLaMA模型
requests并且flaskPython包
安装依赖项:
pip install -r requirements.txt
requirements.txt(需求文件)
该 requirements.txt 文件包含以下依赖项:
blinker==1.9.0
certifi==2025.10.5
charset-normalizer==3.4.3
click==8.3.0
colorama==0.4.6
Flask==3.1.2
idna==3.11
itsdangerous==2.2.0
Jinja2==3.1.6
MarkupSafe==3.0.3
requests==2.32.5
urllib3==2.5.0
Werkzeug==3.1.3
设置
克隆此存储库:
git clone https://github.com/hmgtech/mcp.git
cd MCP
确保Ollama在本地运行:
ollama serve
验证您的模型是否已安装(例如,Mistral):
ollama list
你应该看到 mistral (或列表中您偏好的模型)。
可选:修改 mcp_client.py 指向您的Ollama模型:
MODEL_NAME = "mistral"
执行项目
1️⃣ 启动天气MCP服务器
python mcp_weather_server.py
输出:
🌦️ MCP Weather Server running at http://localhost:8080
2️⃣ 启动MCP客户端
在另一个终端中:
python mcp_client.py
输出:
🤖 MCP Client started. Type your queries below.
🔍 Discovered MCP tools: ['get_weather']
3️⃣ 与助手互动
示例对话:
You: What’s the weather in Tokyo?
🔧 Model requested MCP tool: get_weather({'city': 'Tokyo'})
🌐 Tool result: {'city': 'Tokyo', 'temperature': 22.1, 'windspeed': 3.7}
Assistant: The current temperature in Tokyo is around 22°C with gentle wind.
You: Write a haiku about clouds.
Assistant: Floating soft above, shadows drift across still fields, sky whispers in gray.
4️⃣ 退出
类型 exit 或者 quit 停止客户端。
它是如何工作的
- 用户输入 → 发送给 Mistral 模型。
- 模特决定 如果需要调用工具(例如。,
get_weather)。 - MCP客户端执行 通过MCP服务器使用该工具。
- 工具结果 被送回模型进行最终推理。
- 模型生成 返回给用户的人类可读输出。
这一架构确保:
- 安全、可审计的工具执行
- 模块化添加新工具
- 模型推理与外部行为的分离
添加更多工具
- 创建一个新的MCP服务器,通过它来暴露您的工具(或多个工具)
/tools和/invoke。 - 在(系统/平台中)注册服务器
MCP_REGISTRY在mcp_client.py。 - 更新模型提示,以包含新工具的描述。
MCP 客户端将自动发现并路由呼叫到相应的服务器。
许可证
麻省理工学院许可证
© 2025 Hiteshkumar Gupta(希特什库马尔·古普塔)
