MCP
我們已經有工具、技能和連接器了。那為什麼還需要 MCP 呢?乍看之下,它似乎是疊加在 API 之上的第二個 API。這是個合理的問題——答案取決於誰來維護整合程式碼。
維護問題
假設您的代理需要從 Asana 提取任務、檢查 Google Calendar,並搜尋 Slack——全部一次完成。使用自訂工具,您必須撰寫三個整合。這部分是可行的。痛苦的部分在後面:每當這些服務中的任何一個更改其 API 時(這種情況經常發生),您還必須維護這些整合。恭喜,您現在正在維護一堆第三方 API 包裝器。
MCP 將這種維護工作轉移給服務提供商。Asana 發布了一個 MCP 伺服器。Slack 發布了一個。Google 也發布了一個。每個伺服器都透過標準協議公開自己的工具——包含描述、結構描述(schemas)和身份驗證。當他們的 API 發生變化時,他們會更新自己的伺服器。您什麼都不用改。
工具 vs. 技能 vs. MCP
這三個功能執行不同的工作:
- 工具將 Claude 連接到您的內部系統——您的資料庫、您的專案追蹤器、您的專有 API。您擁有程式碼,因此您也擁有維護責任。
- 技能教導 Claude 一個程序——您的報告範本、您的審查清單。技能是指令,不一定是整合。
- MCP 將 Claude 連接到第三方服務,由服務提供商維護整合。您不需要撰寫 Asana 包裝器——Asana 已經做好了。
簡而言之:工具用於您自己的東西,技能用於您的流程,而 MCP 用於其他人的東西。

連接到 MCP 伺服器
了解 MCP 最簡單的方式,就是讓 Claude 指向任何 MCP 伺服器,並讓它自行探索那裡有什麼。在這個範例中,我們將使用 Linear MCP 伺服器,連接詳細資訊和身份驗證權杖儲存在 .env 檔案中。
請求中有兩個部分協同運作。mcp_servers 鍵宣告連接——類型、URL、用於引用它的名稱,以及可選的身份驗證權杖。然後,類型為 mcp_toolset 的工具會配置 Claude 可以從該伺服器使用哪些工具。預設值是全部工具,但如果您想縮小範圍,這就是您可以操作的地方。
import os
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "What tools do you have available?"}
],
mcp_servers=[
{
"type": "url",
"url": "https://mcp.linear.app/mcp",
"name": "linear",
"authorization_token": os.environ["LINEAR_MCP_TOKEN"],
}
],
tools=[
{
"type": "mcp_toolset",
"mcp_server_name": "linear",
}
],
betas=["mcp-client-2025-11-20"],
)
print(response)請注意,我們從未撰寫過任何一個工具結構描述。Claude 會內省(introspect)該伺服器,取回工具清單及其結構描述,並為提示選擇正確的工具。截至本課程撰寫時,MCP 連接器仍處於測試版——請注意請求中的測試版標頭。
執行它,如果您的 MCP URL 指向 Linear 的 MCP 端點,Claude 會列出 Linear 的工具,然後呼叫其中一個。這基本上適用於任何符合規範的伺服器。我們沒有定義任何一個工具。我們也沒有撰寫 Linear 客戶端。這些都是 Linear 在維護。

篩選 Claude 可以使用的工具
MCP 伺服器通常會公開非常多的工具——而您並不總是希望 Claude 使用全部工具。也許您不希望它擁有寫入權限,或者您只是不想讓所有這些工具定義佔用上下文空間。
解決方法:預設停用所有工具,然後只啟用您想要的特定工具。以下是使用 Slack MCP 伺服器的這種模式:
tools=[
{
"type": "mcp_toolset",
"mcp_server_name": "slack",
"default_config": {
"enabled": False,
},
"configs": {
"search_messages": {"enabled": True},
"list_channels": {"enabled": True},
},
}
]現在 Claude 可以搜尋 Slack 並列出頻道,但無法發布或刪除內容。當您信任某項服務的讀取功能,但不希望 Claude 意外代表您進行寫入操作時,這非常有用。
回顧
- MCP 的存在是為了讓您不必維護別人已經建置好的整合。服務提供商發布 MCP 伺服器並保持其更新——當他們的 API 發生變化時,您什麼都不用改。
- 為工作選擇正確的功能:工具用於您的資料,技能用於您的流程,MCP 用於第三方服務。
- 在
mcp_servers中宣告連接(類型、URL、名稱、可選的身份驗證權杖),並透過tools中的mcp_toolset項目授予存取權限。Claude 會自行內省伺服器並發現工具——無需撰寫結構描述。 - 透過設定
default_config: {"enabled": False}並在configs中啟用特定工具來縮小存取範圍——這對於保持伺服器唯讀非常方便。 - MCP 連接器目前處於測試版,因此請在您的請求中包含測試版標頭。
- 請造訪 modelcontextprotocol.io 以取得可用伺服器清單,並進一步了解該協議。