MCP(Model Context Protocol)已成為 AI 工具與資料的「USB‑C 標準」。本文一次整理 OpenAI 目前的支援現況、如何在 ChatGPT 啟用自訂連接器(Developer Mode)、以及用 Responses API/Agents SDK 串接遠端 MCP 伺服器的完整步驟。
為什麼現在就該導入 MCP × OpenAI?
為什麼現在就該導入 MCP?因為它像「AI 的 USB‑C」:一次對接,模型能安全、可治理地擴充企業內外部工具與資料;同時保留在 ChatGPT 介面(非程式人員)、與 API/Agents SDK(工程團隊)兩種通路的可用性。
- 降低整合成本:統一協議,減少每個模型與工具之間的專屬膠水程式。
- 可治理:可加入審批、稽核與最小權限;方便企業合規。
- 可重用:同一組 MCP 工具可同時給 ChatGPT 與你自家 App 使用。
延伸學習:若你想快速理解協議角色與名詞,可看下文〈什麼是 MCP?〉。
OpenAI × MCP 最新支援與現況(2025/10)
名詞速懂(非工程版)
- MCP(Model Context Protocol)
- 把 AI 和外部系統連起來的「通用插頭」。接上後,模型就能用那些系統提供的功能(工具)、讀資料(資源)。
- ```
- 工具(Tools)
- 可被模型呼叫的動作,例如「建立 Canva 簡報」、「查 CRM 客戶」、「讀取檔案」。
- 資源(Resources)
- 模型可讀的資料來源,例如某個資料夾、文件片段、或 API 查詢結果。
- ChatGPT 連接器(自訂連接器)
- 讓你在 ChatGPT 介面安裝並使用 MCP 伺服器提供的工具;非工程人員也能用 GUI 操作。
- Developer mode
- ChatGPT 的開發者模式,允許安裝自訂連接器等進階功能。
- Responses API
- OpenAI 的通用生成 API。把 MCP 伺服器宣告在
tools中,模型就會自行呼叫那些工具來完成任務。 - Agents SDK
- 建 AI 助理/代理的程式庫。支援多種 MCP 連線方式,並可加上人工審批與流程控管。
- Hosted MCP / HTTP / SSE / stdio
- 連線傳輸模式:由 OpenAI 代管(Hosted)、一般 HTTP、串流事件(SSE)、或本地子程序(stdio)。選哪一種取決於部署環境與資安政策。
- require_approval(審批)
- 有副作用的動作(如寄信、金流)可設定需人工同意才能執行,降低風險。
- 最小授權(Least Privilege)
- 只給工具「剛好夠用」的權限,避免外洩與誤用。
- OAuth / Access Token / Scope
- 第三方服務(如 Canva)要求你先登入授權;授權後得到權杖(token),限定能做的範圍(scope)。
- server_url / server_label
- MCP 伺服器位置與識別名。例如
server_url指到https://mcp.canva.com/mcp,server_label叫做canva。 - ```
一句比喻:把 MCP 當成「USB‑C」,工具是你插的周邊(印表機、攝影機)、資源是你插的硬碟;ChatGPT 連接器與 Responses API/Agents SDK 就是不同的「電腦機身」與「作業系統」。
OpenAI 目前在 API(Responses API/Agents SDK)與 ChatGPT(Connectors)都能對接 MCP。重點包括:原生 type: mcp 工具、Hosted MCP/HTTP/SSE/stdio 多傳輸、以及可在 ChatGPT Developer mode 安裝自訂連接器。
想看細節與版本備註,請參考本文的〈OpenAI 最新支援現況〉章節。
能做到什麼:功能與亮點總覽
- Responses API:在請求的
tools直接宣告 MCP 伺服器,模型自行發工具呼叫。 - Agents SDK:提供 Hosted MCP、HTTP/SSE、stdio 等接法,並支援工具審批。
- ChatGPT 連接器:以 GUI 方式安裝並使用 MCP 工具,適合非工程人員。
- 治理:最小權限、稽核紀錄與審批流程,降低操作風險。
對應本文詳解:〈API:Responses API 串接 MCP〉、〈Agents SDK 整合〉、〈ChatGPT(介面)啟用與使用〉、〈安全性與權限治理〉。
實戰案例:Canva 快速做簡報 & 企業常見場景
- Canva 簡報自動化:以 Canva 官方 MCP 伺服器建立 12 頁簡報、套用品牌模板、匯出 PDF/PNG(見〈實戰:用 MCP 呼叫 Canva 做簡報〉)。
- 企業內部:CRM 開單、查庫存、讀取知識庫、CI/CD 觸發等(見〈常見用途與情境〉)。
一步一步上手:ChatGPT 連接器、API 與 Agents SDK
- ChatGPT 連接器:啟用 Developer mode → 新增自訂連接器 → 授權 → 在聊天或深度研究中使用。
- API:在
responses.create()的tools放入{ type: "mcp", server_url: "…" },以自然語言描述要做的事。 - Agents SDK:選擇 Hosted MCP/HTTP/SSE/stdio,必要時加上
require_approval。 - 自建 MCP 伺服器:
npx @modelcontextprotocol/server-filesystem ./my-folder起步,之後再部署到雲端。
各步驟的完整程式碼、錯誤排除與圖解,請見後文對應章節。
常見問題(Q&A)
本文已收錄完整 FAQ 與 Troubleshooting:請直接前往〈疑難排解〉與〈FAQ 與延伸閱讀〉兩節。
實戰:用 MCP 呼叫 Canva 做簡報(ChatGPT 與 API)
下面示範兩種方式:ChatGPT 介面(連接器) 與 OpenAI API(Responses API)。兩者都透過 Canva 的官方 MCP 伺服器 https://mcp.canva.com/mcp 運作;第一次使用需授權 Canva 帳號。
11.1 在 ChatGPT 介面用「Canva 連接器」建立簡報
- 打開 ChatGPT → 新對話 → 點「Tools」→「Use connectors」。
- 按「Add sources」搜尋 Canva,啟用並完成授權(同意連結你的 Canva 帳號)。
- 在對話中直接輸入指令,例如:
請用 Canva 幫我建立「生成式 AI 行銷入門」投影片: - 版型:16:9;頁數:12;風格:深藍+金(A+ 品牌) - 結構:封面、議程、趨勢 3 頁、案例 3 頁、流程 2 頁、Q&A、結尾 CTA - 內容來源:用我「品牌內容」資料夾的 Logo 與配色;圖片用 Canva 素材庫 - 產出:完成後先預覽縮圖,再匯出 PDF 與每頁 PNG - 若要套用既有模板或企業品牌套件,可接著下指令:
把第 2~5 頁改用我的品牌模板「A+ - Presentation」; 更新第 3 頁的圖表為 2025 Q3 的數據(表格在 Google Sheet <連結>)。 - 匯出與下載:
把整份簡報匯出為 PDF 與 1080p PNG;檔名:Aplus-AI-Intro-2025Q4。
11.2 用 OpenAI Responses API(Hosted MCP)建立簡報
此作法適合要在自家 App/後端流程中自動建簡報。重點:在 tools 放入一個 type: "mcp" 的工具,連到 Canva 的 MCP 伺服器,並在 headers 帶入 OAuth 存取權杖(Authorization: Bearer <YOUR_CANVA_TOKEN>)。
Python 範例:
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4.1",
tools=[{
"type": "mcp",
"server_label": "canva",
"server_url": "[https://mcp.canva.com/mcp](https://mcp.canva.com/mcp)",
"headers": {"Authorization": "Bearer "}
}],
input=(
"使用 Canva MCP 建立 12 頁 16:9 的簡報《生成式 AI 行銷入門》;"
"用我的品牌色深藍+金;依序產生封面、議程、趨勢(3)、案例(3)、流程(2)、Q&A、結尾。"
"插入品牌資料夾的 Logo;完成後匯出 PDF 與每頁 PNG,回傳設計連結與檔案 URL。"
)
)
print(resp.output_text)
JavaScript 範例:
import OpenAI from "openai";
const client = new OpenAI();
const resp = await client.responses.create({
model: "gpt-4.1",
tools: [{
type: "mcp",
server_label: "canva",
server_url: "[https://mcp.canva.com/mcp](https://mcp.canva.com/mcp)",
headers: { Authorization: "Bearer " }
}],
input: "使用 Canva MCP 建立 12 頁 16:9 的簡報,主題為《生成式 AI 行銷入門》…並匯出 PDF 與 PNG。"
});
console.log(resp.output_text);
11.3 進階:自動填充模板(Autofill)與資料來源
- 先在 Canva 準備一個企業品牌模板(含文字欄位與佔位圖)。
- 在指令中提供資料表(CSV/Google Sheet 連結)或以自然語言貼上要填入的文字清單。
- 讓模型透過 MCP 工具呼叫「搜尋模板 → 建立設計 → 逐頁填充 → 匯出」。
請以模板「A+ - Presentation」為基底,自動填入以下欄位:
- 標題:生成式 AI 行銷入門
- 章節:市場趨勢、成功案例、導入流程
- CTA:預約顧問(https://example.com/booking)
完成後匯出 PDF 與每頁 PNG。
11.4 常見問題
- 授權失敗:登出再登入 Canva;確認瀏覽器未封鎖彈出視窗;企業帳號請檢查團隊權限。
- 工具清單沒有出現:在 API 請求中加入正確的
server_url與headers;或在 ChatGPT 連接器中重新啟用。 - 匯出格式受限:依帳號方案不同,部分匯出或自動填充功能需 Pro/Enterprise。
什麼是 MCP?
MCP(Model Context Protocol)是一套開放協議,用來把 LLM 客戶端(如 ChatGPT)與外部系統連起來,包含「工具(tools)」、「資料來源(resources)」、「提示模板(prompts)」等。直覺地把它想像成 AI 的 USB‑C:一次對接,跨模型/跨平台可重用。
OpenAI 最新支援現況(截至 2025-10-09)
- Responses API:原生支援「
type: mcp」工具,能直接連接「遠端 MCP 伺服器」(remote servers)。 - Agents SDK(Python):提供多種傳輸介面,含 Hosted MCP(由 OpenAI 端代理呼叫)、HTTP、HTTP+SSE、以及
stdio本地子程序。 - ChatGPT 產品:可在 Developer Mode 下新增「自訂連接器(Custom Connectors)」;企業/校園工作區(Enterprise/Edu/Business/Team)可由管理員發佈連接器,成員即可在深度研究或聊天中使用。
ChatGPT(介面)如何啟用與使用 MCP 連接器
- 開啟 Developer Mode:到 ChatGPT「設定 → Connectors → Advanced → Developer mode」。個人方案(Plus/Pro)要使用自訂連接器需開啟此模式;企業/校園/商務工作區可由管理員發佈後供全員使用。
- 新增自訂連接器:在「Connectors」搜尋或新增自家 MCP 伺服器(通常需要伺服器 URL、標籤 label、以及可能的認證資訊)。
- 授權與可見範圍:首次使用請完成 OAuth/API Token 等授權;工作區管理員可限制哪些角色能新增或使用自訂連接器。
- 使用場景:在「深度研究」或「聊天」中選取剛新增的連接器,直接以自然語言下達任務(例如:查詢 CRM、下單、讀檔、發工單等)。
API:用 Responses API 串接遠端 MCP 伺服器
最短可行範例(Python):
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4.1",
tools=[{
"type": "mcp",
"server_label": "shopify",
"server_url": "[https://example.com/mcp](https://example.com/mcp)"
}],
input="Add the toner pads to my cart"
)
print(resp.output_text)
等價的 JavaScript:
import OpenAI from "openai";
const client = new OpenAI();
const resp = await client.responses.create({
model: "gpt-4.1",
tools: [
{ type: "mcp", server_label: "shopify", server_url: "[https://example.com/mcp](https://example.com/mcp)" }
],
input: "Add the toner pads to my cart"
});
console.log(resp.output_text);
Agents SDK(Python)整合:Hosted MCP、HTTP、SSE、stdio
以下展示三種常見整合方式:
4.1 Hosted MCP(由 OpenAI 端直接代理呼叫)
from agents import Agent, HostedMCPTool, Runner
agent = Agent(
name="Assistant",
tools=[HostedMCPTool(tool_config={
"type": "mcp",
"server_label": "gitmcp",
"server_url": "[https://gitmcp.io/openai/codex](https://gitmcp.io/openai/codex)",
"require_approval": "always" # 可改 "never" 或依工具細項配置
})]
)
result = Runner.run(agent, "Which language is this repository written in?")
print(result.final_output)
4.2 HTTP / HTTP+SSE 遠端伺服器
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp, MCPServerSse
# HTTP(自行管理連線與重試機制)
async with MCPServerStreamableHttp(name="HTTP server", params={
"url": "[http://localhost:8000/mcp](http://localhost:8000/mcp)",
"headers": {"Authorization": "Bearer "},
"timeout": 10
}, cache_tools_list=True) as server:
agent = Agent(name="Assistant", mcp_servers=[server])
print((await Runner.run(agent, "Add 7 and 22.")).final_output)
# SSE(伺服器以 Server-Sent Events 提供工具串流)
async with MCPServerSse(name="SSE server", params={"url": "[http://localhost:8000/sse"}](http://localhost:8000/sse%22})) as server:
agent = Agent(name="Assistant", mcp_servers=[server])
print((await Runner.run(agent, "Weather in Tokyo?")).final_output)
4.3 本地 stdio 伺服器(以子程序啟動)
from pathlib import Path
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
samples = Path(**file**).parent / "sample_files"
async with MCPServerStdio(name="FS", params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", str(samples)]
}) as server:
agent = Agent(name="Assistant", mcp_servers=[server])
print((await Runner.run(agent, "List the files available.")).final_output)
如何建立並啟動一個 MCP 伺服器(入門)
- 準備環境:
node 18+或python 3.10+。 - 快速體驗檔案系統伺服器(Node):
npx -y @modelcontextprotocol/server-filesystem ./my-folder - 在本機測試連線:以 Agents SDK 啟動
MCPServerStdio或MCPServerStreamableHttp;若要接到 Responses API,請將伺服器部署為可公開存取的 URL。 - 部署到雲端(例):以 Cloudflare / Fly.io / 任意支援長連線的服務部署你的 HTTP/SSE MCP 伺服器,取得
server_url。 - 串到 ChatGPT:在 Connectors 介面新增自訂連接器,貼上
server_url,完成授權。
常見用途與情境
| 情境 | MCP 伺服器工具 | 在 ChatGPT/Responses API 的體驗 |
|---|---|---|
| 內部知識庫查詢 | 全文檢索、權限檢查、片段回傳 | 指令式查詢、結果引用、附來源 |
| CRM/客服 | 建立/查詢客戶、撈單、發 Ticket | 一鍵生成回覆、直接下達工單 |
| 商務操作 | 下單、出貨、退款 API | 多步驟自動化(可要求審批) |
| 研發工程 | 讀/寫 Repo、CI 狀態、雲端資源 | 邊聊邊操作,維持上下文 |
視覺化示意圖(流程圖/架構圖)
以下兩張示意圖為純 HTML/CSS 元素繪製,無外部圖片與 SVG,適合直接貼上 Pixnet;所有文字均為繁體中文,並在手機上自動改成直向排版。
Developer mode 已啟用
MCP 客戶端
CRM/DB/ERP
tools: { type: \"mcp\" }
HTTP/SSE/stdio
安全性與權限治理(強烈建議)
- 最小授權:讓 MCP 伺服器僅能存取必要資源;使用專用 API Key/Service Account,避免個人憑證。
- 審批流程:對具副作用的工具(如發信、金流、刪除),以
require_approval或回呼機制加入人工核可。 - 稽核與封存:保存工具列表、呼叫參數、回傳摘要(切記勿無謂暴露敏感內容)。
- 傳輸面:HTTP/HTTPS 伺服器務必強制 TLS 與權杖驗證;本地
stdio伺服器限制啟動環境。 - 來源信任:僅安裝來路清楚的第三方 MCP 伺服器;對開源套件釘版本、檢查變更紀錄。
疑難排解
- 「This MCP server doesn't implement our specification」:表示伺服器未符合規範(常見是缺少必要工具或回應格式錯誤)。請更新伺服器版本或依規格修正。
- 權限不足或需管理員核可:工作區管理員需在後台允許此連接器與授權範圍。
- 混用限制(個人 Plus/Pro):Developer Mode 下自訂連接器暫時不能與內建連接器同時啟用,屬產品限制。
FAQ 與延伸閱讀
我應該用 ChatGPT 連接器還是直接走 Responses API?若你的使用者主要在 ChatGPT 介面互動,且偏重深度研究或聊天工作流,優先用「連接器」。若要做自家 App/多代理協作,或需要自訂審批、回放、追蹤與資料保護,建議用 Responses API 或 Agents SDK。
Hosted MCP 和我自己接 HTTP/SSE 的差異?Hosted MCP 由 OpenAI 端直接代理工具呼叫,省去你在應用層處理工具列舉與回呼的複雜度;HTTP/SSE/stdio 模式則讓你完全掌控連線與環境,較適合企業與在地部署。
如何規劃多環境(dev/stg/prod)?使用不同的 server_label 與 server_url,並在 IAM 上分段權限。對有副作用的工具,預設 require_approval=always,只有在生產環境才開放自動執行。
