😁

AutoMCP徹底解剖:OpenAPIから“動く”MCPサーバを自動生成する

に公開

MCP(Model Context Protocol)は、LLMエージェントが外部システムへ標準的に到達する“USB-C”だ。既存のREST資産を最短でMCP対応させる答えの一つがAutoMCP。OpenAPIから実行可能なMCPサーバを自動生成し、5,066エンドポイントで評価された研究である。本稿はAutoMCPの生成フロー/認証配線/スキーマ写像を技術寄りに深掘りし、最後にmcpo(逆方向:MCP→OpenAPI)を軽く添える。(arXiv)


元記事

  • AutoMCP(論文)Making REST APIs Agent-Ready: From OpenAPI to MCP Servers for Tool-Augmented LLMs(2025-07-21). (arXiv)

参照リンク

  • MCP公式(仕様・解説サイト)/GitHub(スキーマ・実装). (Model Context Protocol)
  • OpenAI Agents SDK:MCPガイド(ホスト側からのMCP利用). (OpenAI)
  • Open WebUI mcpo:MCP→OpenAPIプロキシ(配線ガイド/GitHub). (Open WebUI)

1. 海外記事の要点

1-1. AutoMCPとは何か

AutoMCPは、OpenAPI 2.0/3.0仕様を入力にMCPサーバ実装を自動生成する“コンパイラ”的ツールチェーン。OpenAPIのエンドポイント/認証/スキーマを解析し、工具(tools)やリソース(resources)の定義、スキーマ登録、認証ハンドラまで含んだ「動く」MCPサーバを出力する。(arXiv)

“AutoMCP … takes as input an OpenAPI specification … and outputs a fully functional MCP server implementation.” (原文). (arXiv)

1-2. 実証スケールと成功率

論文は実API50件/5,066エンドポイントを対象に評価。1,023件の層別サンプル呼び出しでOOB成功率76.5%、OpenAPI側に平均19行の軽微修正を施すと**99.9%**に到達。失敗の大半はOpenAPI契約の不整合や欠落(Content-Typeの揺れ、nullable/oneOfの扱い、エラー未定義、パラメータ位置不整合、認証記述不足)に起因した。(arXiv)

1-3. 生成物の中身(何が“自動”になるか)

  • Tools:エンドポイント→tool(名前/説明/input_schemaresult_schema/HTTPメソッド・パス)
  • Resourcescomponents.schemasを再利用可能な型として登録
  • AuthsecuritySchemesに基づくAPI Key/OAuth2の配線
  • 実行スタブ:パス/クエリ/ボディのマッピング、例外処理の雛形
    MCP側の概念・型は公式仕様/ガイドに準拠。(Model Context Protocol)

2. 日本に引きつけた分析(産業・投資・制度)

2-1. “順方向(REST→MCP)”が日本で刺さる理由

日本ではOpenAPI公開のSaaSが増え、既存のOpenAPI資産をAutoMCPでMCP化する導線を取りやすい。定量的にも、日本のSaaS市場は2024年に104.76億USD、2030年に226.80億USDへ拡大見通し(CAGR 13%)。既存SaaSがMCP=エージェント接続の標準口を早期に備える意義は大きい。(グランドビューリサーチ)

加えて、国内クラウド市場の拡大(パブリッククラウド市場は2023年に3.26兆円、前年比27.5%増)は“エージェント実運用の土台”を太くする。(My IDC)

2-2. 現場メリット(PoC~運用)

  • PoC速度:OpenAPI→AutoMCP→MCPサーバ→Claude/OpenAI(ホスト)接続で、“動くデモ”までのリードタイムを短縮。(OpenAI)
  • 運用負債の抑制:手書きバインディングを減らし、“契約(OpenAPI)側”で差分を吸収しやすい。
  • ただし:本番ではOAuth差異(PKCE/refresh/consent)レート制限監査ログDLP等の非機能をMCP層に外付けする設計が必要(論文も「最後の数割はOpenAPI品質次第」と示唆)。(arXiv)

バイアス注意:AutoMCPは研究寄りで成功率が強調されがち。日本のエンタープライズでは監査・権限分離・個人情報取り扱いが律速段階になり得る。


3. 用語メモ(重要語を簡潔に)

  • MCP(Model Context Protocol)
    LLMアプリ(ホスト)が外部ツール/データ(サーバ)へ標準接続するプロトコル。ClaudeやChatGPT等がtools/resources/promptsのカタログを通じて型安全に呼び出す。(Model Context Protocol)

  • AutoMCP
    OpenAPI→MCPサーバの自動生成を行う研究ツールチェーン。50 API/5,066エンドポイントで評価(OOB 76.5%→軽微修正後 99.9%)。(arXiv)

(補足)mcpoは逆方向(MCP→OpenAPI)のプロキシで、Open WebUIでは「Open WebUI→mcpo→MCPサーバ」という配線が一般的。本文では比較に留める。(Open WebUI)


4. 著者の所感・示唆(エンジニア/起業家視点)

4-1. AutoMCPの“写像”をコードで掴む(最小例)

OpenAPI(抜粋)

paths:
  /users/{id}:
    get:
      summary: Get user by ID
      parameters:
        - in: path
          name: id
          required: true
          schema: { type: string }
      responses:
        '200':
          content:
            application/json:
              schema: { $ref: '#/components/schemas/User' }
components:
  schemas:
    User:
      type: object
      properties:
        id:   { type: string }
        name: { type: string }

AutoMCPが吐くMCPサーバ定義(概念図)

{
  "tools": [
    {
      "name": "get_user",
      "description": "Get user by ID",
      "input_schema": {
        "type": "object",
        "properties": { "id": { "type": "string" } },
        "required": ["id"]
      },
      "call": {
        "method": "GET",
        "path": "/users/{id}",
        "path_params": ["id"]
      },
      "result_schema": { "$ref": "User" }
    }
  ],
  "resources": [
    { "name": "User",
      "schema": {
        "type": "object",
        "properties": { "id": {"type":"string"}, "name":{"type":"string"} }
    }}
  ],
  "auth": { "strategy": "apiKey" }
}

エンドポイント→tool、パラメータ→input_schema、レスポンス→result_schemacomponents.schemasresourcesに写像。認証はsecuritySchemessecurityから自動配線される。(arXiv)

4-2. 生成パイプライン(実践手順)

  1. OpenAPI静的検証content-typeの揺れ、nullable×oneOf併用、エラー未定義をLintで検出・修正。
  2. 認証の定義securitySchemes(API Key/OAuth2)→security→各operationへ適用。OAuth2はスコープ設計が要。(OpenAI)
  3. AutoMCPコンパイル:MCPサーバを生成。ローカルでツール一覧と引数検証を確認。(arXiv)
  4. ホスト接続テスト:OpenAI Agents/Claude等のホストからツール発見→引数推論→実行ログを確認。(OpenAI Platform)
  5. 非機能の外付け:レート制御(429→指数バックオフ+ジッタ)、監査ログ、DLP、PIIマスキング、タイムアウト・リトライ戦略。

4-3. 典型的な失敗パターン(論文の5類型の要旨)

  • Content-Typeの揺れ/誤記application/json以外や複数併記で曖昧化。
  • nullable×oneOfの曖昧さ:入力検証で弾かれる/LLMの引数推論が不安定。
  • エラー未定義4xx/5xxが型付けされておらず、再試行判定が不能。
  • パラメータin/required/format不整合pathqueryの混線。
  • 認証スキーム欠落:OAuth2のflowsscopesが合わず実行不能。
    平均19行の軽微修正で成功率が跳ね上がる実測は心強い。(arXiv)

4-4. 認証と安全運用の実務メモ

  • OAuth2authorizationCode(PKCE)+短命Access TokenRefresh最小スコープ原則。OpenAI/Agentsや各ホストのガイドに沿い、OpenAPIのsecuritySchemessecurity整合を厳格に。(OpenAI)
  • API Key:キーはホスト側のシークレット保管に置き、実行時注入。
  • レート制限429指数バックオフ+ジッタ、説明文に“高負荷操作”の注意を記述(LLM自律行動の暴走防止)。
  • 監査tool呼び出しの引数・レスポンス・エラーを相関IDで追跡。PIIはフィールドマスクを標準化。

4-5. (比較として)mcpoは“逆方向”のブリッジ

mcpoMCP→OpenAPIのプロキシ。現場配線でよく見るのはOpen WebUI→mcpo→MCPサーバ。OpenAPIしか話せないクライアントやゲートウェイに対し、MCPツール群をHTTP化して開く用途。AutoMCP(REST→MCP)とはベクトルが逆で、用途も異なる。(Open WebUI)

順方向:   OpenAPI ──[AutoMCP]──> MCP Server ──[Host]──> 使う
逆方向:   MCP Server ──[mcpo]──> OpenAPI/HTTP ──> 既存クライアント

付録A:OpenAPI→MCP 写像の実践ノート

A-1. 命名規約

  • tool.name{method}_{path}から動詞ベースへ正規化(get_/users/{id}get_user)。
  • descriptionにはOpenAPIのsummary/descriptionを落とし込み、ツール選択の自然言語ヒントにする(LLMが適切なツールを選びやすい)。(arXiv)

A-2. スキーマ取り回し

  • components.schemasresourcesとして登録し、$refで再利用。循環参照はフラット化oneOf分解で回避。
  • formatemail等)はバリデータへ転写し、実行前検証を通す。

A-3. エラー設計(型と再試行性)

  • 最低限400/401/403/404/429/5xx型付きエラーで定義。
  • 429再試行可能を明示、4xx再試行不可(ユーザ修正)を説明文に記す。LLMの無駄打ち防止。

付録B:日本企業向けアクション(具体)

  1. OpenAPI棚卸しnullableoneOfの乱用、content-typeの揺れ、エラー未定義をLintで全除去(成功率が跳ね上がる“最後の1割”)。(arXiv)
  2. 順方向PoC:主要3–5エンドポイントでAutoMCP→MCPサーバ生成Claude/OpenAIホストからツール発見~実行を確認(引数推論の妥当性も観察)。(OpenAI)
  3. 非機能を足す:レート制御、監査、DLP、スコープ最小化をMCP層で標準化。監査要件は早期にセキュリティ部門と握る。

英語原文の引用

“From a stratified sample of 1,023 tool calls, 76.5% succeeded out-of-the-box; after minor fixes (avg. 19 lines per API), success reached 99.9%.”(AutoMCP). (arXiv)


海外記事のバイアス指摘

  • 研究寄り(AutoMCP):評価はOpenAPI品質に依存し、現場のOAuth差異/監査要件/DLPなど非機能領域は別途設計が必要。
  • コミュニティ寄り(mcpo):Open WebUI文脈の知見が中心で、企業SLA・長期保守は各社設計次第。

Discussion