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/mcpserver_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

  1. ChatGPT 連接器:啟用 Developer mode → 新增自訂連接器 → 授權 → 在聊天或深度研究中使用。
  2. API:responses.create()tools 放入 { type: "mcp", server_url: "…" },以自然語言描述要做的事。
  3. Agents SDK:選擇 Hosted MCP/HTTP/SSE/stdio,必要時加上 require_approval
  4. 自建 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 連接器」建立簡報

  1. 打開 ChatGPT → 新對話 → 點「Tools」→「Use connectors」。
  2. 按「Add sources」搜尋 Canva,啟用並完成授權(同意連結你的 Canva 帳號)。
  3. 在對話中直接輸入指令,例如:
    請用 Canva 幫我建立「生成式 AI 行銷入門」投影片:
    - 版型:16:9;頁數:12;風格:深藍+金(A+ 品牌)
    - 結構:封面、議程、趨勢 3 頁、案例 3 頁、流程 2 頁、Q&A、結尾 CTA
    - 內容來源:用我「品牌內容」資料夾的 Logo 與配色;圖片用 Canva 素材庫
    - 產出:完成後先預覽縮圖,再匯出 PDF 與每頁 PNG
    
  4. 若要套用既有模板或企業品牌套件,可接著下指令:
    把第 2~5 頁改用我的品牌模板「A+ - Presentation」;
    更新第 3 頁的圖表為 2025 Q3 的數據(表格在 Google Sheet <連結>)。
    
  5. 匯出與下載:
    把整份簡報匯出為 PDF 與 1080p PNG;檔名:Aplus-AI-Intro-2025Q4。
    
提示:在 ChatGPT 介面中,你可以要求「列出我最近的 Canva 設計」、「搜尋簡報模板」、「將第 7 頁插入 3 張產品圖」等。若遇到權限或方案限制,系統會提示需要 Pro/Enterprise 功能。

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); 
授權與權限:Canva 會透過 OAuth 2.0 要求你授權可用的 API 範圍(scopes)。若未帶有效權杖,一些 AI 助理客戶端會自動跳轉登入授權;純 API 後端流程則需自行取得並附上存取權杖。

11.3 進階:自動填充模板(Autofill)與資料來源

  1. 先在 Canva 準備一個企業品牌模板(含文字欄位與佔位圖)。
  2. 在指令中提供資料表(CSV/Google Sheet 連結)或以自然語言貼上要填入的文字清單。
  3. 讓模型透過 MCP 工具呼叫「搜尋模板 → 建立設計 → 逐頁填充 → 匯出」。
請以模板「A+ - Presentation」為基底,自動填入以下欄位:
- 標題:生成式 AI 行銷入門
- 章節:市場趨勢、成功案例、導入流程
- CTA:預約顧問(https://example.com/booking)
完成後匯出 PDF 與每頁 PNG。

11.4 常見問題

  • 授權失敗:登出再登入 Canva;確認瀏覽器未封鎖彈出視窗;企業帳號請檢查團隊權限。
  • 工具清單沒有出現:在 API 請求中加入正確的 server_urlheaders;或在 ChatGPT 連接器中重新啟用。
  • 匯出格式受限:依帳號方案不同,部分匯出或自動填充功能需 Pro/Enterprise。

什麼是 MCP?

MCP(Model Context Protocol)是一套開放協議,用來把 LLM 客戶端(如 ChatGPT)與外部系統連起來,包含「工具(tools)」、「資料來源(resources)」、「提示模板(prompts)」等。直覺地把它想像成 AI 的 USB‑C:一次對接,跨模型/跨平台可重用。

重點:MCP 本身不等於某一家模型或 App;它是協議。誰只要實作了 MCP 客戶端或伺服器,就能彼此互通。

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 介面」還是「API/SDK」,OpenAI 現階段都已經能與 MCP 生態系互通;差異主要在啟用入口與權限管理。

ChatGPT(介面)如何啟用與使用 MCP 連接器

  1. 開啟 Developer Mode:到 ChatGPT「設定 → Connectors → Advanced → Developer mode」。個人方案(Plus/Pro)要使用自訂連接器需開啟此模式;企業/校園/商務工作區可由管理員發佈後供全員使用。
  2. 新增自訂連接器:在「Connectors」搜尋或新增自家 MCP 伺服器(通常需要伺服器 URL、標籤 label、以及可能的認證資訊)。
  3. 授權與可見範圍:首次使用請完成 OAuth/API Token 等授權;工作區管理員可限制哪些角色能新增或使用自訂連接器。
  4. 使用場景:在「深度研究」或「聊天」中選取剛新增的連接器,直接以自然語言下達任務(例如:查詢 CRM、下單、讀檔、發工單等)。
注意:自訂連接器屬開發者導向功能,僅安裝與信任來源清楚的 MCP 伺服器;個人帳號在 Developer Mode 下,無法同時混用「OpenAI 內建連接器」。

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); 
技巧:在 Responses API 中你也能混用其他工具(如 web search、file search、code_interpreter)。若 MCP 伺服器可能觸及敏感操作,建議在 SDK 端加入審批流程(見下一節)。

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 伺服器(入門)

  1. 準備環境:node 18+python 3.10+
  2. 快速體驗檔案系統伺服器(Node):
    npx -y @modelcontextprotocol/server-filesystem ./my-folder
  3. 在本機測試連線:以 Agents SDK 啟動 MCPServerStdioMCPServerStreamableHttp;若要接到 Responses API,請將伺服器部署為可公開存取的 URL。
  4. 部署到雲端(例):以 Cloudflare / Fly.io / 任意支援長連線的服務部署你的 HTTP/SSE MCP 伺服器,取得 server_url
  5. 串到 ChatGPT:在 Connectors 介面新增自訂連接器,貼上 server_url,完成授權。
小訣竅:設計工具(tool)時務必提供清楚的名稱、描述與 JSON Schema 參數,讓模型能正確發現與呼叫;若有副作用操作,請搭配審批或乾跑(dry-run)。

常見用途與情境

情境 MCP 伺服器工具 在 ChatGPT/Responses API 的體驗
內部知識庫查詢 全文檢索、權限檢查、片段回傳 指令式查詢、結果引用、附來源
CRM/客服 建立/查詢客戶、撈單、發 Ticket 一鍵生成回覆、直接下達工單
商務操作 下單、出貨、退款 API 多步驟自動化(可要求審批)
研發工程 讀/寫 Repo、CI 狀態、雲端資源 邊聊邊操作,維持上下文

視覺化示意圖(流程圖/架構圖)

以下兩張示意圖為純 HTML/CSS 元素繪製,無外部圖片與 SVG,適合直接貼上 Pixnet;所有文字均為繁體中文,並在手機上自動改成直向排版。

使用者/ChatGPT
Connectors
Developer mode 已啟用
自訂連接器
MCP 客戶端
MCP 伺服器
工具(Tools)
企業系統
CRM/DB/ERP
圖 10-1‑A:ChatGPT 介面 → 自訂連接器 → MCP 伺服器 → 工具 → 企業系統。
你的應用程式
OpenAI Responses API
tools: { type: \"mcp\" }
MCP 伺服器
HTTP/SSE/stdio
工具清單
外部系統
Agents SDK(Python)
Hosted MCP / 自管傳輸
圖 10-2‑A:API/SDK 架構。
模型/代理
提出工具呼叫
需要人工核可?
送審(require_approval)
管理員/審批者同意
執行工具(生效)
直接執行工具
圖 10-3‑A:權限審批流程。         左邊流程需人工核可,右邊流程自動執行。

安全性與權限治理(強烈建議)

  • 最小授權:讓 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,只有在生產環境才開放自動執行。


免責聲明:本文僅為技術教學,請遵守各平台服務條款與法規,勿在未授權情況下存取或操作資料。將 MCP 伺服器連到具有敏感權限的系統(信箱、金流、儲存體)前,務必評估資安風險、開啟最小權限與必要的審批與稽核機制。
文章標籤
全站熱搜
創作者介紹
創作者 小黃老師 的頭像
小黃老師

小黃老師嘿技術

小黃老師 發表在 痞客邦 留言(0) 人氣(234)