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 からの接続

agent.tools に HTTP MCP サーバーを追加します。サーバーは 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.typeself_hosted または openai_hosted に設定します。セルフホスト環境では、エージェントがツールを使用する前に、エグゼキューターを接続してください。

HTTP 経由の接続

すでに稼働しているサーバーには HTTP を使用します。URL をご自身の環境からアクセスできるアドレスに置き換えて、次のエントリを agent.tools に追加します。

{
  "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.tools に追加します。stdio 引数でスクリプトのトランスポートを選択します。

{
  "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.authorization または transport.headers を設定します。Agents API はこれらの値を暗号化し、返されるセッションリソースには含めません。
  • 再利用可能な HTTP 認証情報: 認証情報をボールトに保存し、vault_ids を通じてボールトを接続します。ボールトは OpenAI からの接続にのみ適用されます。認証情報はサーバーの URL と照合されます。複数の認証情報が一致する場合は、credential_id を使用して 1 つ選択します。
  • stdio の認証情報: 値を環境変数として設定し、その変数名を transport.env_vars に列挙します。環境内で実行されるコードは、これらの値を読み取ることができます。セルフホストのセッションでは、transport.env に値をインラインで指定することはできません。

たとえば、HTTP トランスポートには Bearer トークンと別のヘッダーを含めることができます。

{
  "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 を確認します。環境からの接続では、エグゼキューターが接続されていることと、そのネットワークからサーバーにアクセスできることを確認してください。
  • 認証情報: トークンまたはヘッダーを確認します。ボールトを使用する場合は、認証情報がサーバーの URL に一致することを確認してください。
  • 実行ファイルと依存関係: 設定したコマンドが環境内で実行できることを確認してください。
  • 作業ディレクトリ: インラインの stdio 構成では、cwd に既存のディレクトリの絶対パスを指定してください。
  • プラグインは MCP の構成とスキルをパッケージ化し、複数のセッションで再利用できるようにします。
  • ツール検索では、対応するモデルとプロバイダーでの MCP ツールの自動検出について説明しています。