MCP
基本介紹
官方地址:
- https://modelcontextprotocol.io/introduction
“MCP 是一種開放協議,旨在標準化應用程序向大型語言模型(LLM)提供上下文的方式。可以把 MCP 想象成 AI 應用程序的 USB-C 接口。就像 USB-C 提供了一種標準化的方式,讓你的設備能夠連接各種外設和配件一樣,MCP 也提供了一種標準化的方式,讓 AI 模型能夠連接不同的數據源和工具。”
● MCP 主機(MCP Hosts):像 Claude Desktop、IDE 或 AI 工具等程序,它們希望通過 MCP 訪問數據。
● MCP 客戶端(MCP Clients):維護與服務器 1:1 連接的協議客戶端。
● MCP 服務器(MCP Servers):輕量級程序,它們通過標準化的模型上下文協議(Model Context Protocol)公開特定的功能。
● 本地數據源(Local Data Sources):你的計算機上的文件、數據庫和服務,MCP 服務器可以安全地訪問這些數據。
● 遠程服務(Remote Services):通過互聯網可用的外部系統(例如 API),MCP 服務器可以與其連接。
https://www.anthropic.com/news/model-context-protocol
Cline 擴展
我們可以借助 Cline 插件對 Cursor 進行擴展(VS Code等等也一樣),我們在插件市場找到: “Cline”,并且進行安裝:
安裝之后,會出現一個新的選項卡,是 Cline 的選項卡:
點擊右上角的 “設置” 按鈕,這里我選擇 “OpenAI” 的模型,但是支持沒有 Claude API 好:
配置完之后,我們進入 Cursor Settings 頁面,可以看到有個新的選項卡 MCP:
點擊進去之后,可以看到:“Add new global MCP Server”,我們點擊之后,添加一個新的服務:
添加一個新的類型 “postgres”,社區已經準備好了:
- https://github.com/modelcontextprotocol/servers/tree/main/src/postgres
我們進去之后,可以看到安裝方法,是 npx:
我們把對應的內容替換之后,寫入到 “cline_mcp_settings.json” 中,并且進行保存:
{"mcpServers": {"postgres": {"command": "npx","args": ["-y","@modelcontextprotocol/server-postgres","postgresql://postgres:123123@localhost/postgres"],"autoApprove": ["query"]}}
}
保存的內容如下所示:
我們進入到 Cline 中,可以看到 Installed 中,已經顯示我們完成了 postgres 的 MCP Server了:
此外,如果你沒有 postgres 服務的話,可以用 Docker 啟動一個新的服務,我的數據庫中已經有了一些平常使用的表,這里就略過了:
配置完畢之后,和 Cline 對話,我的問題是:“查看 poi 的表結構,同時 poi 表現在有多少條數據?”
可以看到自動執行的結果如下所示:
輸出文本:
poi 表中當前有 6352 條數據。總結如下:表結構:
name: character varying, 可為空
geom: USER-DEFINED, 可為空
數據行數:6352
任務已完成。Task Completed
poi 表的結構如下:name: character varying, 可為空
geom: USER-DEFINED, 可為空
poi 表中當前有 6352 條數據。
FastAPI + Cline
補充配置
(出現問題再走這一塊 一般是用不到!!!)
這里把我們剛才啟動的節點填寫進去,Cursor、Cline 等工具將自動獲取 MCP 下的所有 Endpoint。
PS:如果你是 Cursor,那你直接配置就好,如果你是別的比如 Claude APP,可能在 MacOS 上支持沒有那么好,你需要安裝一個插件。如果你沒有這個問題可以略過。
uv tool install mcp-proxy
安裝如下:
重新啟動服務即可。
編寫配置
我們回到 Cline (或者你配置 Cursor),在我們的基礎上繼續配置:
{"mcpServers": {"postgres": {"command": "npx","args": ["-y","@modelcontextprotocol/server-postgres","postgresql://postgres:123123@localhost/postgres"],"autoApprove": ["query"]},"wzkicu": {"command": "mcp-proxy","args": ["http://127.0.0.1:8000/now"]}}
}
如果是 MacOS 的話,需要配置 mcp-proxy 的路勁:
/Users/wuzikang/.local/bin/mcp-proxy
可以通過 which 獲取:
所以配置是:
...省略
"wzkicu": {"command": "/Users/wuzikang/.local/bin/mcp-proxy","args": ["http://127.0.0.1:8000/now"]
}
測試運行
(Cline在之前說過 這里就不說了)
配置完成之后,在 Cline 中對話:“獲取服務器當前時間”
可以看到 Cline 已經調用任務進行執行了: