使用说明
MCP服务器
描述
这个项目在Python中实现了一个MCP(模型上下文协议)服务器。服务器使用Open-Meteo API公开用于获取城市天气信息的工具,并且可以由MCP客户端使用或使用MCP VS代码检查器进行检查。
Python依赖项安装
-
创建并激活虚拟环境(可选但推荐):
python3 -m venv venv source venv/bin/activate -
安装项目依赖项:
pip install -r requirements.txt
地方开发运行
您可以在本地运行MCP服务器,而无需Nginx或systemd,这是开发和快速测试的理想选择。
从 src 文件夹,运行:
../venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000 --reload
这将以自动加载模式启动服务器(对开发很有用)。从浏览器访问它:
http://localhost:8000/mcp/
或者使用Raspberry Pi的IP从网络上的另一台机器:
http://192.168.10.101:8000/mcp/
使用MCP检查器
您可以使用 MCP检查员 从VS Code调试和探索您的MCP服务器。
建议与Inspector一起运行
从项目根目录运行:
npx -y @modelcontextprotocol/inspector /home/pi/Documents/Projects/MCP-Server/venv/bin/python /home/pi/Documents/Projects/MCP-Server/src/mcp_server/fast_mcp.py
或者,如果你使用 main.py 入口点:
npx -y @modelcontextprotocol/inspector /home/pi/Documents/Projects/MCP-Server/venv/bin/python /home/pi/Documents/Projects/MCP-Server/src/main.py
这将在浏览器中打开检查器,并使用stdio连接到MCP服务器。
使用systemd和Nginx部署为服务(守护进程)
1.将MCP服务器作为systemd服务启动
创建文件 /etc/systemd/system/mcp-server.service 与:
[Unit]
Description=MCP Server (uvicorn)
After=network.target
[Service]
User=pi
WorkingDirectory=/home/pi/Documents/Projects/MCP-Server/src
ExecStart=/home/pi/Documents/Projects/MCP-Server/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
然后运行:
sudo systemctl daemon-reload
sudo systemctl enable mcp-server
sudo systemctl start mcp-server
检查状态:
sudo systemctl status mcp-server
2.Nginx配置为反向代理
安装Nginx:
sudo apt update
sudo apt install nginx
创建文件 /etc/nginx/sites-available/mcp 与:
server {
listen 80;
server_name 192.168.10.101;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置并重新加载Nginx:
sudo ln -s /etc/nginx/sites-available/mcp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
3.从本地网络访问
在服务器和Nginx运行的情况下,从网络上的任何设备访问:
http://192.168.10.101/
4.代码更改后重新启动服务
sudo systemctl restart mcp-server
Python代码更改后不需要重新启动Nginx。
附加说明
- 对于生产环境,请使用带有systemd和Nginx的部署。
- 为了开发,使用
uvicorn随着--reload. - MCP检查器可用于调试和交互式测试。