這是一個供 AI Agent 使用的 MCP Server 範例,可用於獲取美國各州的天氣預報與警示資訊。
本專案使用 uv 管理相關依賴與 Python 的運行環境。若尚未安裝 uv,可依照官網的安裝指示進行安裝。
以下相關命令是在 Ubuntu 24.04 環境下執行的,其他作業系統的操作請自行修改:
$ curl -LsSf https://astral.sh/uv/install.sh | sh
下載源碼:
$ git clone https://github.com/erhwenkuo/mcp-weather.git
$ cd mcp-weather
$ uv sync
$ uv run server
INFO: Started server process [15784]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
首先構建 Docker image:
$ docker build -t mcp-weather .
啟動 mcp-weather:
$ docker run -d -p 5488:5488 mcp-weather
首先安裝 Node.js:
# 下載並安裝 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
# 載入 shell 環境變量
\. "$HOME/.nvm/nvm.sh"
# 安裝 Node.js
nvm install 22
# 驗證 Node.js 版本
node -v # 應該輸出 "v22.14.0"
nvm current # 應該輸出 "v22.14.0"
# 驗證 npm 版本
npm -v # 應該輸出 "10.9.2"
接著啟動 mcp inspector:
$ npx @modelcontextprotocol/inspector
Starting MCP inspector...
Proxy server listening on port 3000
打開瀏覽器進入 http://localhost:3000,然後按照指示測試 mcp-weather 伺服器。
這個 mcp 伺服器示範了基於 SSE 的 MCP 伺服器和使用其中工具的獨立 MCP 用戶端的工作模式。
這個專案使用了 SSE(Streaming Strategy Engine)作為通訊協議,原因如下:
SSE 伺服器預設在 localhost:5488 上運行,但可以通過命令列參數進行配置:
uv run server.py --host --port