解釋 MCP 工作原理和設定方式,讓 Claude Code 透過 MCP Server 接入資料庫、GitHub、Slack 等外部系統。
Claude Code 預設能做的事有它的邊界:讀寫本地檔案、執行終端指令、呼叫內建工具。但實際專案裡,你常常需要它查資料庫、讀 Notion 文件、搜 Slack 訊息、呼叫內部 API。
MCP 就是解決這個問題的。
MCP(Model Context Protocol)是 Anthropic 提出的開放協定,定義了 AI 模型如何與外部工具、資料來源通訊。你可以把它理解成給 Claude Code 裝插件——每個 MCP Server 是一個獨立的服務,暴露一組工具,Claude 可以在會話中直接呼叫。
不同於 Hooks(在 Claude 執行動作時觸發腳本),MCP 是主動擴展 Claude 的能力邊界:你接入什麼,Claude 就能操作什麼。
MCP 的架構很簡單:
Claude Code(Client) ←→ MCP Server ←→ 外部系統
整個過程對使用者透明。你看到的是 Claude 說「我去查一下資料庫」然後拿到結果,背後是 MCP 在轉發請求。
MCP Server 可以暴露三種東西:
Tools(工具)
Claude 可以主動呼叫的函式,比如「查詢使用者表」「搜尋文件」「傳送 Slack 訊息」。這是最常用的。
Resources(資源)
結構化資料,可以被 Claude 讀取作為上下文,比如資料庫 schema、API 文件、設定檔。
Prompts(提示模板)
預定義的提示片段,使用者可以直接引用。
實際使用中 90% 的場景都是 Tools。
以官方的 Filesystem MCP 為例,這個 Server 讓 Claude 可以存取你指定目錄外的檔案系統。
安裝
npm install -g @modelcontextprotocol/server-filesystem
設定
編輯 ~/.claude/settings.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents"
]
}
}
}
驗證
重啟 Claude Code,輸入:
列出 /Users/yourname/Documents 下的所有 PDF 檔案
如果 Claude 直接給出結果而不是說「我無法存取檔案系統」,代表 MCP 已經生效。
{
"mcpServers": {
"服務名稱": {
"command": "啟動指令",
"args": ["參數清單"],
"env": {
"API_KEY": "xxx"
}
}
}
}
command + args:Claude Code 用這個指令啟動 MCP Server 程序env 用來傳 API key 等敏感設定,不要寫死在程式碼裡MCP 設定可以放三個位置,按優先順序從低到高:
| 位置 | 檔案 | 適用場景 |
|---|---|---|
| 全域 | ~/.claude/settings.json |
所有專案都要用的工具 |
| 專案級 | .claude/settings.json |
這個專案專用 |
| 本地覆蓋 | .claude/settings.local.json |
個人設定,不提交 git |
對於資料庫連線、內部 API 這類專案專用的 MCP,放專案級設定,連同程式碼一起提交,團隊成員 clone 下來就能用。
Anthropic 維護了一批官方 MCP Server:
社群也有大量第三方實作,涵蓋 Notion、Linear、Jira、各類資料庫等。
| Hooks | MCP | |
|---|---|---|
| 觸發方式 | Claude 執行特定動作時 | Claude 主動呼叫 |
| 用途 | 攔截/增強現有行為 | 擴展新能力 |
| 典型場景 | 儲存時格式化、提交前檢查 | 查資料庫、呼叫外部 API |
| 設定複雜度 | 低 | 中 |
兩者互補。Hooks 管「Claude 做事的方式」,MCP 管「Claude 能做什麼事」。
這篇是 MCP 的概念入門。接下來的文章會涵蓋:
如果你已經有一個想接入的系統,可以先翻 MCP Server 清單,大概率已經有現成實作。