文章封面圖: Claude Code中的MCP:如何連接資料庫與API

Claude Code中的MCP:如何連接資料庫與API

發佈於:

閱讀時間: 3 min

主題: 技術

作者: Leandro Valencia

#claude code#mcp#model context protocol#mcp伺服器#postgresql#superpowers#AI代理

用 claude mcp add 為 Claude Code 新增 MCP 伺服器,透過 .mcp.json 與團隊共享,並在不暴露憑證的前提下連接 Git、PostgreSQL 與 API。

目錄

Claude Code 安裝完成後,就能在終端機中讀取檔案並執行指令。要讓它查詢資料庫、查看 Issue 或呼叫 API,你需要 MCP(Model Context Protocol)。這是 Anthropic 發布的開放協定,用來把模型與外部工具連接起來。

本指南說明如何新增 MCP 伺服器、如何在不把憑證提交到 Git 的情況下與團隊共享,以及在連接重要系統之前應遵守哪些安全規則。

快速參考

伺服器 傳輸方式 指令 建議範圍 關鍵注意事項
本地 Git stdio(uvx) claude mcp add git -- uvx mcp-server-git user 檢查它公開了哪些寫入操作
PostgreSQL stdio(npx) claude mcp add db -- npx -y @bytebase/dbhub --dsn "$DATABASE_READONLY_URL" project 僅使用唯讀使用者
遠端 API http claude mcp add --transport http mi-api https://mcp.ejemplo.com/mcp project 權杖放在變數中,絕不寫進檔案
檔案系統 stdio(npx) claude mcp add archivos -- npx -y @modelcontextprotocol/server-filesystem . local 將路徑限制在專案內,絕不要指向磁碟根目錄

MCP 的運作方式

Claude Code 扮演客戶端的角色。每個 MCP 伺服器都是一個行程或服務,負責公開工具,例如 run_query 或 list_issues。在工作階段期間,Claude 會看到這些工具,自行決定何時呼叫,並依照你的設定向你請求許可。

連接方式有兩種:

  • stdio: Claude Code 將伺服器當作本地行程啟動(通常使用 npx 或 uvx),並透過標準輸入與標準輸出通訊。這是在你的電腦上執行的工具常見的方式。
  • http: 伺服器位於遠端 URL。這是雲端服務常見的方式。許多大型服務都會發布附 OAuth 驗證的官方 MCP 伺服器。

步驟 1:新增本地伺服器(stdio)

基本格式如下:

claude mcp add <nombre> -- <comando> [argumentos...]

-- 分隔符號是必要的:它把 claude 的選項與啟動伺服器的指令分開。沒有它,Claude Code 會試著把伺服器的參數當成自己的參數來解析。

Git 伺服器範例:

claude mcp add git -- uvx mcp-server-git

使用 DBHub 連接 PostgreSQL 的範例,指向一個唯讀使用者的環境變數:

export DATABASE_READONLY_URL="postgresql://lectura:****@db.tuempresa.com:5432/analytics"
claude mcp add db -- npx -y @bytebase/dbhub --dsn "$DATABASE_READONLY_URL"

步驟 2:連接遠端伺服器(HTTP)

claude mcp add --transport http mi-api https://mcp.ejemplo.com/mcp \
  --header "Authorization: Bearer $MI_API_TOKEN"

如果伺服器使用 OAuth,就不要加入該 header:進入工作階段,執行 /mcp,然後在瀏覽器中完成驗證流程。

步驟 3:選擇範圍

每個伺服器會儲存在三種範圍之一,你可以用 --scope 來選擇:

  • local(預設):只供你自己使用,且只在這個專案中生效。適合測試,或使用個人憑證的伺服器。
  • project:寫入儲存庫根目錄的 .mcp.json。複製儲存庫的團隊成員都會收到此設定。有人第一次使用專案伺服器時,Claude Code 會要求核准。
  • user:供你在所有專案中使用。適合 Git 這類通用工具。
claude mcp add --scope project db -- npx -y @bytebase/dbhub --dsn '${DATABASE_READONLY_URL}'

步驟 4:共享設定而不共享機密

.mcp.json 支援以 ${VARIABLE} 語法引用環境變數(也支援 ${VARIABLE:-預設值})。如此一來,檔案就能在不含憑證的情況下提交到儲存庫:

{
  "mcpServers": {
    "mi-api": {
      "type": "http",
      "url": "https://mcp.ejemplo.com/mcp",
      "headers": {
        "Authorization": "Bearer ${MI_API_TOKEN}"
      }
    },
    "db": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_READONLY_URL}"]
    }
  }
}

每位開發者匯出自己的變數(export MI_API_TOKEN=...),或從機密管理工具載入,無需有人修改檔案。

步驟 5:驗證是否可用

claude mcp list        # estado de todos los servidores
claude mcp get db      # detalle de uno
claude mcp remove db   # eliminarlo

在工作階段中執行 /mcp,可以查看哪些伺服器已連接,以及它們公開了哪些工具。如果某個伺服器顯示錯誤,最常見的原因是:啟動 Claude Code 的 shell 中沒有定義所需的環境變數。

連接重要系統前的 8 條安全規則

  1. 最小權限。 使用唯讀的資料庫使用者,權杖只授予所需的權限。絕對不要給代理人管理員使用者。
  2. 儲存庫中零機密。 一律在 .mcp.json 中使用環境變數。
  3. 限定路徑。 檔案伺服器只應能看到專案資料夾。
  4. 使用官方或經過審查的伺服器。 優先選擇服務提供者自己發布的伺服器。MCP 伺服器會在你的電腦上執行程式碼,安裝前請確認其來源。
  5. 寫入操作需要人工核准。 善用 Claude Code 的權限設定,讓會修改資料的工具需要確認;或使用比對器(例如 mcp__db__.*)的 PreToolUse hook,阻擋或記錄特定呼叫。
  6. 合理的逾時時間。 如果伺服器啟動較慢(第一次透過 npx 下載通常比較慢),請用 MCP_TIMEOUT 變數(單位為毫秒)延長等待時間。
  7. 輸出上限。 如果工具回傳的結果非常龐大,請調整 MAX_MCP_OUTPUT_TOKENS,並讓查詢使用 LIMIT,避免塞滿模型的上下文。
  8. 先用副本,再碰正式環境。 進行分析時,連接副本或預備環境,而不是主要資料庫。

Superpowers 在哪裡發揮作用?

MCP 讓 Claude Code 能夠存取工具,而 Superpowers 則為它提供一套方法:這是一個 skills 外掛,會強制它先設計再寫程式,撰寫分步計畫,並以測試優先的方式工作。兩者相輔相成:有了 MCP,Claude 可以查詢你的資料庫;有了 Superpowers,它則是在經過審查的計畫中完成這一切。

如果你還沒安裝,如何在 Claude Code 中安裝 Superpowers 指南說明了如何從外掛市集在五分鐘內完成安裝。

團隊方案

  1. 統一工具。 在團隊中安裝 Claude Code,並決定哪些伺服器用於通用場景(user 範圍),哪些屬於專案。
  2. 為 AI 建立憑證。 向基礎架構團隊申請專用的資料庫使用者,唯讀,並且只能存取所需的 schema。
  3. 對 .mcp.json 進行版本管理。 將它提交到儲存庫,使用環境變數,並在 README 中說明每位開發者需要哪些變數。
  4. 衡量影響。 如果團隊解決問題的速度變快,你的成本結構也會隨之改變。用利潤率計算器算一算。

Step-by-step guide

  1. 新增本地伺服器(stdio)

    claude mcp add <nombre> -- <comando>,指令前面要加上 -- 分隔符號。

  2. 連接遠端伺服器(HTTP)

    claude mcp add --transport http <nombre> <url>,權杖放在 header 中。

  3. 選擇正確的範圍

    local 供你個人使用,project 供團隊使用(.mcp.json),user 適用於你所有的專案。

  4. 把憑證移出儲存庫

    在 .mcp.json 中使用 ${VARIABLE},讓每位開發者在自己的 shell 中匯出該變數。

  5. 驗證並限制權限

    claude mcp list 或 /mcp 查看狀態,使用唯讀使用者,並用 hooks 管控寫入操作。

Frequently asked questions

Claude Code 中的 MCP 是什麼?

MCP(Model Context Protocol)是一種開放協定,讓 Claude Code 能夠連接資料庫、程式碼儲存庫、任務管理工具或 API 等外部工具。每個連接都是一個 MCP 伺服器,它會公開 Claude 在工作階段中可以呼叫的工具。

local、project 與 user 範圍有什麼差別?

local 只為你保存伺服器,且僅限目前的專案,這是預設值。project 會將它寫入儲存庫根目錄的 .mcp.json 檔案,讓整個團隊都能使用。user 則讓你在所有專案中都能使用該伺服器。

連接正式環境的資料庫安全嗎?

只有在使用唯讀使用者,而且最好連接副本的情況下才安全。擁有正式環境寫入權限的代理人可能因為誤解指令而執行破壞性的查詢。此外,啟用前也應先檢查伺服器公開了哪些工具。

使用 MCP 需要 Superpowers 嗎?

不需要。MCP 已內建於 Claude Code。Superpowers 是一個 skills 外掛,用來強制執行一套工作方法(設計、計畫、測試)。兩者可以互補,但各自都能獨立運作。

相關文章

繼續探索您可能感興趣的相似內容

合作

我每天在用的工具,社群可以拿到更好的條件。

含推廣連結。你支付的價格不變。查看全部合作
培訓計畫

準備好將您的想法轉化為真實專案了嗎?

Transforma是一個幫助您以清晰的方法創建、執行和擴展專案的培訓計畫。

了解Transforma計畫