For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主要導覽

MCP 連線

從 OpenAI 或你的環境連線至 MCP 伺服器。

MCP 伺服器會發布工具定義並執行工具呼叫。Agents API 會探索可用工具、呼叫伺服器,並將結果傳回智慧體。你的應用程式不需要逐一處理每次呼叫。

依據哪些位置能連上伺服器,選擇從哪裡建立連線:

連線執行位置是否需要環境
使用 connection_origin: "service" 的 HTTP 連線(預設)OpenAI
使用 connection_origin: "environment" 的 HTTP 連線你的工作階段環境
stdio你的工作階段環境中的程序

從 OpenAI 連線

將 HTTP MCP 伺服器新增至 agent.tools。OpenAI 必須能連上該伺服器。無論是否設有工作階段環境,都能使用這種方式。

例如,OpenAI 文件 MCP 允許匿名存取:

{
  "type": "mcp",
  "server_label": "openai_docs",
  "transport": {
    "type": "http",
    "server_url": "https://developers.openai.com/mcp"
  },
  "connection_origin": "service",
  "required": true
}
Agents API 服務會連線至遠端 MCP 伺服器,並交換呼叫與結果。也可以選擇附加保管庫,提供與伺服器 URL 相符的憑證。

從你的環境連線

執行器 MCP 會從工作階段環境建立連線。若伺服器位於私人網路,或軟體安裝在該環境中,就使用這種方式。

將工作階段的 environment.type 設為 self_hostedopenai_hosted。若使用自行託管的環境,請在智慧體使用工具之前連接執行器

透過 HTTP 連線

若伺服器已在執行,請使用 HTTP。將以下項目新增至 agent.tools,並將 URL 替換為你的環境能連上的位址:

{
  "type": "mcp",
  "server_label": "internal_search",
  "transport": {
    "type": "http",
    "server_url": "https://mcp.internal.example.com/search"
  },
  "connection_origin": "environment",
  "required": true
}

此處的 localhost URL 指的是工作階段環境。若省略 connection_origin,則會改由 OpenAI 建立連線。

透過 stdio 啟動伺服器

使用 stdio,讓執行器啟動伺服器程序。請先在環境中安裝伺服器及其相依套件。

若要使用此客戶查詢範例,請安裝 MCP SDK:

python3 -m venv /workspace/mcp-demo
/workspace/mcp-demo/bin/python -m pip install 'mcp==1.26.0'

將伺服器程式儲存為 /workspace/lookup_mcp.py

執行客戶查詢 MCP 伺服器
import sys

from mcp.server.fastmcp import FastMCP

server = FastMCP("customer-lookup", host="127.0.0.1", port=8765, stateless_http=True)


@server.tool()
def get_customer(customer_id: str) -> dict:
    """Look up a customer in the example data."""
    customers = {"123": {"name": "Example Customer", "plan": "pro"}}
    return {"customer": customers.get(customer_id)}


if __name__ == "__main__":
    transport = sys.argv[1] if len(sys.argv) > 1 else "streamable-http"
    server.run(transport=transport)

將伺服器新增至 agent.toolsstdio 引數用來選擇指令碼的傳輸方式:

{
  "type": "mcp",
  "server_label": "customer_lookup",
  "transport": {
    "type": "stdio",
    "command": "/workspace/mcp-demo/bin/python",
    "args": ["/workspace/lookup_mcp.py", "stdio"],
    "cwd": "/workspace"
  },
  "required": true
}

使用 stdio 時,必須提供 command,並將 cwd 設為絕對路徑;args 則為選填。請省略 connection_origin

傳送訊息,請智慧體查詢客戶 123。工具會傳回使用 pro 方案的 Example Customer

對於由 OpenAI 託管的 stdio MCP,請省略網路政策,或將其設為 enabled。這類連線不支援 disabledrestricted 網路政策。

新增身分驗證

若伺服器允許匿名存取,請省略身分驗證欄位和 vault_ids。否則,請為連線選擇憑證來源:

  • 單一工作階段的 HTTP 憑證: 建立工作階段時,設定 transport.authorizationtransport.headers。Agents API 會將這些值加密,且不會將其包含在傳回的工作階段資源中。
  • 可重複使用的 HTTP 憑證: 將憑證儲存在保管庫中,並透過 vault_ids 附加保管庫。保管庫僅適用於從 OpenAI 建立的連線。憑證會依伺服器 URL 進行比對;若有多個憑證相符,請使用 credential_id 選擇其中一個。
  • Stdio 憑證: 在環境中提供憑證值,並在 transport.env_vars 中列出對應的環境變數名稱。在環境中執行的程式碼可以讀取這些值。自行託管的工作階段不接受直接在 transport.env 中設定的值。

例如,HTTP 傳輸可以包含 Bearer Token 和另一個標頭:

{
  "type": "http",
  "server_url": "https://mcp.example.com/mcp",
  "authorization": "Bearer YOUR_MCP_ACCESS_TOKEN",
  "headers": { "X-Tenant-ID": "tenant_123" }
}

Authorization 只能使用一種來源:直接在組態中設定,或使用相符的保管庫憑證。保管庫身分驗證可以搭配其他標頭使用。從環境發起的 HTTP 連線不使用保管庫憑證;請直接設定身分驗證,或使用可信任的代理伺服器。

請勿將機密資訊放入可重複使用的智慧體定義、外掛程式封存檔或記錄中。若要讓智慧體產生的程式碼無法存取憑證,請使用在環境外部提供憑證的可信任代理伺服器或伺服器

控制工具存取與啟動

設定 allowed_tools,以限制智慧體能探索及呼叫的工具。設定 required: true,即可在伺服器無法初始化時讓該回合失敗。預設情況下,初始化並非必要條件。

如需所有 MCP 組態欄位,請參閱建立工作階段參考資料

排解連線問題

如果必要的伺服器無法初始化,請查看 agent.session.turn.failed 中的錯誤。若使用 stdio 伺服器,也請檢查 MCP 程序記錄。

  • 網路存取: 檢查 URL 和 connection_origin。若從環境建立連線,請確認執行器已連線,且其網路能連上伺服器。
  • 憑證: 檢查 Token 或標頭。若使用保管庫,請確認憑證與伺服器 URL 相符。
  • 執行檔與相依套件: 確認所設定的指令能在環境中執行。
  • 工作目錄: 直接設定 stdio 組態時,請將 cwd 設為現有目錄的絕對路徑。
  • 外掛程式將 MCP 組態和技能封裝在一起,供不同工作階段重複使用。
  • 工具搜尋說明如何在支援的模型與供應商上自動探索 MCP 工具。