天气教程
这个仓库包含了一个关于如何处理天气数据的最小化客户端/服务器教程。它旨在作为实验、研讨会或自主学习的起点。
仓库布局
weather-mcp-client– 客户端项目,为教程提供用户界面支持,并在教程运行时自动管理服务器的生命周期。weather-mcp-server– 独立服务器项目,提供客户端使用的API,并且可以独立进行探索。
入门指南(客户端 + 服务器)
- 按照各自目录中的说明,为两个项目安装依赖项。
- 决定客户端如何连接到服务器(使用标准输入输出还是HTTP),然后按照以下步骤操作。
- 如果提示,请将客户端指向服务器实例。
运行MCP客户端
- STDIO(单进程)
- 激活客户端虚拟环境(cd weather-mcp-client && source .venv/bin/activate)。 - 使用服务器路径启动客户端: uv run client.py ../weather-mcp-server/server.py. - 客户端将通过标准输入输出(stdio)启动服务器,所以你需要 不是 在这种模式下需要单独启动服务器。
- HTTP(独立服务器进程)
- 激活服务器环境(cd weather-mcp-server && source .venv/bin/activate)。 - 以HTTP模式启动服务器,例如: fastmcp run server.py:mcp --transport http --port 8000 (或根据您偏好的运行器/端口调整命令)。 - 或者,在(指定位置)构建Docker镜像 weather-mcp-server/ (默认为标准输入输出;传递 --transport http ... (在图像名称后,通过HTTP托管)。 - 在第二个终端中,激活客户端环境并运行: uv run client.py http://localhost:8000/mcp (set MCP_HTTP_HEADERS 如果您的服务器需要认证头信息)。 - 因为HTTP传输期望服务器已经运行,所以在启动客户端之前,请确认服务器进程状态正常。
在VS Code中的独立服务器
- 将服务器目录添加到您的VS Code工作区中(
File→Add Folder to Workspace…→ 选择weather-mcp-server)。
- 安装服务器依赖项(
uv venv && source .venv/bin/activate && uv sync)。
- 更新您的MCP配置(
mcp.json因此,VS Code(或MCP扩展)可以启动服务器:
a) 与……一同启动 uv (默认):
{
"servers": {
"weather": {
"command": "uv",
"args": ["run", "server.py"],
"cwd": "/absolute/path/to/weather-tutorial/weather-mcp-server"
}
}
}使用绝对值 cwd 因此,扩展程序能够可靠地解析脚本,并进行调整 command/args 如果你更喜欢不同的启动方法(例如 python server.py)。
b) 使用 Docker 启动:
{
"servers": {
"weather": {
"command": "docker",
"args": ["run", "--rm", "-i", "weather-mcp-server"],
"cwd": "/absolute/path/to/weather-tutorial/weather-mcp-server"
}
}
}在(指定位置/环境中)构建镜像 weather-mcp-server/ (docker build -t weather-mcp-server .),并在末尾添加额外的标志 args (例如 "-p", "8000:8000", "--", "--transport", "http", "--port", "8000") 如果你需要使用HTTP传输而不是stdio。
- 重新加载 VS Code 或 MCP 扩展以使其获取更新后的配置,然后使用 MCP 面板连接到
weather用于手动测试的服务器。
贡献
欢迎随时提出问题或提交拉取请求,以改进功能、修复错误或提出增加教程步骤的建议。请确保更改范围明确,并包含任何相关的测试或文档更新。
许可证
此项目仅作为教育用途提供,原样使用。请根据您的需求进行调整和扩展。
