Skip to main content
Glama
The-Swarm-Corporation

openapi-to-mcp

MCP Scribe

任意のOpenAPIスキーマを本番グレードのMCPサーバーに変換します。

PyPI Python License

Swarms GitHub Swarms website Discord Twitter


Related MCP server: Any API MCP Server

概要

MCP ScribeをOpenAPIスキーマに向けるだけで、MCPサーバーが得られます。

仕様内のすべての操作は、モデルが呼び出せるツールになります。JSON Schema、認証情報、リトライ、レート制限、レスポンス整形はすべて処理済みです。保守すべき生成コードも、同期を保つアダプターレイヤーもありません。仕様が唯一の情報源であり、サーバーは起動時にそこから導出されます。

MCP Scribeは、実際のAPIを言語モデルの前に置くチーム向けに設計されています。そこでの重要な障害モードは、認証情報の漏洩、課金対象エンドポイントへの無制限なリトライ、モデルがナビゲートするには大きすぎるツールサーフェスです。


インストール

pip install mcp-scribe

ソースから、グローバルCLIとして:

git clone https://github.com/kyegomez/mcp-scribe && cd mcp-scribe
uv tool install --editable ".[http]"

httpエクストラはuvicornとstarletteをインストールします。これらはHTTPトランスポートにのみ必要です。stdioサーバーにはどちらも不要です。

要件: Python 3.10 – 3.13。


クイックスタート

共有サーバーをデプロイする

コマンド1つ。仕様を入れると、サーバーが起動します。

mcp-scribe deploy https://api.swarms.world/openapi.json --port 8000

そのサーバーを呼び出す

import asyncio
import os
import sys

from dotenv import load_dotenv
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
from mcp.shared._httpx_utils import create_mcp_http_client

load_dotenv()

# Streamable HTTP path defaults to /mcp (see transport.path).
MCP_URL = "http://127.0.0.1:8000/mcp"


async def main() -> None:
    api_key = os.environ.get("SWARMS_API_KEY")
    if not api_key:
        sys.exit(
            "set SWARMS_API_KEY first: export SWARMS_API_KEY=sk-..."
        )

    http = create_mcp_http_client(headers={"x-api-key": api_key})
    async with http, streamable_http_client(
        MCP_URL, http_client=http
    ) as (read, write), ClientSession(read, write) as session:
        await session.initialize()
        result = await session.call_tool(
            "get_available_models_v1_models_available_get",
            {},
        )
        print(result.content[0].text)


if __name__ == "__main__":
    asyncio.run(main())

CLIコマンド

Usage: mcp-scribe [OPTIONS] COMMAND [ARGS]...

Turn any OpenAPI schema URL into a production-grade MCP server.

Options:
  --help          Show this message and exit.

Commands:
  serve     Run the MCP server.
  deploy    Serve over HTTP with production defaults. The short path to a shared server.
  inspect   Show the tools a spec produces — the fastest way to validate a setup.
  call      Invoke one tool from the terminal — the same code path the server uses.
  generate  Write a self-contained, deployable MCP server project for a spec.
  install   Build the server and register it with your MCP client in one step.
  version   Print the version.

主な機能

機能

提供されるもの

ユニバーサル仕様取り込み

URL、ファイル、またはstdinからのOpenAPI 3.1、3.0、Swagger 2.0 — JSONまたはYAML。Swagger 2.0は事前に変換されます。外部および再帰的な$refはプリフェッチされ解決されます。

ゼロコードツール生成

操作ごとに1つのMCPツール。JSON Schema 2020-12として出力され、完全なstyle/explodeマトリクス、再帰モデル用の$defs、ツール呼び出し精度のための自動ボディフラット化を備えています。

認証情報の分離

仕様で宣言された認証情報パラメータはツールスキーマから除去され、リクエスト時に注入されます。モデルが保持していないシークレットを生成するよう求められることはありません。

エンタープライズ認証

APIキー(ヘッダー、クエリ、クッキー)、ベアラー、HTTPベーシック、自動リフレッシュ付きOAuth2クライアント認証情報、任意の静的ヘッダー — すべて合成可能で、リクエストごとに適用されます。

マルチテナント分離

ヘッダーの許可リストとフェイルクローズ強制による呼び出し元ごとの認証情報パススルー。1つの共有サーバーが1つの共有アイデンティティや1つの共有請求を意味しないようにします。

デフォルトでの耐障害性

Retry-Afterを尊重するフルジッター指数バックオフ、ホストごとのサーキットブレーカー、トークンバケット、並行性の上限、ツール呼び出しごとのウォールクロック予算。

デフォルトで安全なリトライ

POSTとPATCHは明示的に有効にしない限りリトライされません。課金対象リクエストの再送は、失敗よりも悪いものとして扱われます。

攻撃面の制御

タグ、パス正規表現、メソッド、またはoperationIdでフィルタリング。--read-onlyは1つのフラグでサーバーをGET/HEAD/OPTIONSに制限します。

コンテキストガバナンス

レスポンスは設定可能な予算に切り詰められ、モデルにリクエストを絞り込む方法を示すヒントが付与されます。

デュアルトランスポート

個人用・ユーザーごとのサーバー向けのstdio。共有・水平スケーリングされたデプロイメント向けの/healthプローブとステートレスセッションを備えたストリーミングHTTP。

シークレット衛生管理

.envファイル、MCP_SCRIBE_*環境変数、設定内の${VAR}補間。シークレットはメモリ内ではSecretStrとして保持され、出力では編集されます。

運用ツール

何も起動せずにセットアップを検証するinspect、正確な送信リクエストを確認するcall --dry-run、構造化JSONロギング、ホットスペックリロード。

デプロイ可能な成果物

generateは、Dockerfile、固定された要件、設定、オフライン起動用のベンダリングされた仕様を含む自己完結型プロジェクトを出力します。


ドキュメント

ドキュメント

内容

docs/DOCS.md

完全なユーザーガイド — メンタルモデル、トランスポート、認証情報、マルチテナンシー、フィルタリング、スキーマ整形、信頼性、デバッグ、デプロイメント、トラブルシューティング。

docs/REFERENCE.md

網羅的なリファレンス — すべてのCLIコマンドとフラグ、型とデフォルト値を含むすべての設定キー、完全な環境変数テーブル、Python API、例外階層。

CLAUDE.md

コントリビューターおよびエージェント向けガイド — コマンド、モジュールごとのアーキテクチャ、重要な不変条件、規約、落とし穴。

MCP_SCRIBE_SKILL.md

エージェントスキル定義 — 自律エージェントがコマンドを選択し、セットアップを検証し、認証情報を処理する方法。


ライセンス

Apache-2.0。LICENSEを参照してください。


引用

@misc{mcpscribe2026,
    title   = {mcp-scribe: production-grade MCP servers from OpenAPI schemas},
    author  = {Gomez, Kye},
    year    = {2026},
    url     = {https://github.com/kyegomez/mcp-scribe}
}
@misc{mcp2024,
    title   = {Model Context Protocol},
    author  = {Anthropic},
    year    = {2024},
    url     = {https://modelcontextprotocol.io}
}

Related MCP Connectors

Related MCP Servers