AI・機械学習

mcpgenでOpenAPI仕様書をMCPサーバーに一発変換!LLM連携が秒で完成する神ツール

「REST APIをLLMに使わせたいけど、MCPツールを1個ずつ手書きするの、地味にしんどい…」

そんな悩みを持っている方に、朗報です!🎉

mcpgenというツールが話題になっています。OpenAPIの仕様書(JSONまたはYAML)を渡すだけで、MCPサーバーのPythonコードを自動生成してくれる超便利なジェネレーターです。

🤖 mcpgenって何をしてくれるの?

API automation
API automation / Photo by Katharina-Charlotte May via Pexels

イメージとしては「OpenAPI仕様書を入力したら、AIが使えるAPIサーバーがそのまま出てくる」という感じです。

具体的には、こんなことを自動でやってくれます。

  • ✅ OpenAPI 3.0 / 3.1 の仕様書をパース
  • ✅ エンドポイントごとにMCPツールを1つずつ自動生成(命名は snake_case 形式)
  • ✅ 認証処理も自動対応(APIキー・Bearerトークンなど)
  • ✅ すぐに動かせる完成形のPythonコードを出力

手動でツールを1つひとつ書いていた作業が、コマンド1発で完結するわけです。これはかなり大きいですよね。

🔧 使い方の基本イメージ

実際の使い方はとてもシンプルです。まずはインストールから。

# mcpgenをインストール
pip install mcpgen

あとはOpenAPIの仕様書ファイルを用意して、以下のように実行するだけです。

# openapi.yaml を読み込んでMCPサーバーを生成
mcpgen generate openapi.yaml --output my_mcp_server.py

ポイントをまとめるとこんな感じです👇

  • 引数に仕様書のパスを渡す
  • --output で出力ファイル名を指定
  • 生成されたファイルはそのまま python my_mcp_server.py で起動できる

あとは生成されたMCPサーバーをClaude DesktopやCursorなどのMCP対応クライアントに設定すれば、LLMがそのAPIを直接呼び出せるようになります。

💡 なぜこれが便利なのか


MCP(Model Context Protocol)自体はAnthropicが提唱した仕組みで、LLMが外部ツールやAPIを呼び出すための標準プロトコルです。ざっくり言うと「AIに道具の使い方を教えるルール」のようなもの。

これまでは「既存のREST APIをLLMに使わせたい」と思うたびに、MCPツールの定義を手作業で書く必要がありました。エンドポイントが10個あれば10個分の手書き作業が発生するわけです。

mcpgenはその作業を完全に自動化してくれます。すでにOpenAPIで設計されたAPIが手元にあれば、LLM連携まで一気に解決できるかもしれません! 🚀

📝 まとめ

mcpgenは「OpenAPI仕様書 → MCPサーバー」の変換を自動化してくれる、LLM開発者にとってかなり刺さるツールです。

REST APIを持っているプロジェクトなら、すぐに試せる手軽さも魅力。ぜひ一度使ってみてください!

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です