もう迷わない!FastAPIエンドポイントをMCPツール化する手順


もう迷わない!FastAPIエンドポイントをMCPツール化する手順

tadata-org/fastapi_mcp

2025-08-10

このライブラリは、皆さんが普段開発しているFastAPIのエンドポイントを、大規模言語モデル(LLM)が利用できる「ツール」として簡単に公開するためのものです。

世の中にはさまざまなライブラリがありますが、このライブラリは、特に以下の点で皆さんの開発に役立ちます。

LLMとの連携を簡単に
FastAPIで作成したAPIを、まるでLLMの機能拡張のように利用できます。例えば、LLMに「最新の天気予報を教えて」と尋ねたときに、皆さんが作った天気予報APIを自動で呼び出してくれる、といったことが可能になります。

認証機能を標準で搭載
LLMからのリクエストに認証機能を付加できます。これにより、APIを安全に公開し、意図しないアクセスを防ぐことができます。

開発効率の向上
定義済みのエンドポイントにデコレーターを付けるだけで、MCPツールとして公開できます。これにより、LLM連携のための追加コードをほとんど書く必要がなくなります。

fastapi_mcpをプロジェクトに導入するのはとても簡単です。pipを使ってインストールするだけです。

pip install fastapi_mcp

では、実際にどのように使うのか、簡単なサンプルコードを見てみましょう。この例では、ユーザー名を受け取って挨拶を返すAPIを、MCPツールとして公開します。

from fastapi import FastAPI, HTTPException
from fastapi_mcp import MCP
from pydantic import BaseModel
import uvicorn

# FastAPIアプリケーションのインスタンスを作成
app = FastAPI()

# MCPのインスタンスを作成
mcp = MCP(app)

# リクエストボディの型定義
class GreetRequest(BaseModel):
    name: str

# 挨拶を返すエンドポイント
@mcp.tool()
@app.post("/greet")
def greet(request: GreetRequest):
    """
    指定された名前に挨拶を返します。
    """
    return {"message": f"Hello, {request.name}!"}

# FastAPIアプリケーションを実行
if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

from fastapi_mcp import MCP
まず、fastapi_mcpライブラリからMCPクラスをインポートします。

mcp = MCP(app)
FastAPIのインスタンスを渡して、MCPのインスタンスを作成します。

@mcp.tool()
これが一番重要な部分です。このデコレーターを、LLMに公開したいエンドポイントの上に付けるだけで、そのエンドポイントがMCPツールとして自動的に登録されます。

"""..."""
エンドポイントのdocstring(ドキュメンテーション文字列)は、LLMがこのツールをどのように使うべきかを理解するための重要な情報になります。分かりやすく書くことを心がけましょう。

このコードを実行すると、FastAPIのAPIエンドポイントが立ち上がるだけでなく、LLMが利用可能なMCPツールとしてのメタデータも自動的に生成されます。

tadata-org/fastapi_mcpは、LLMの進化に伴い、APIをLLMと連携させる機会が増えてきた現代において、非常に強力な味方となるライブラリです。皆さんの開発プロジェクトにぜひ取り入れてみてください。


tadata-org/fastapi_mcp




【禁断の記憶】AIエージェントが忘却を克服する日:memUが切り拓くメモリ・インフラストラクチャ

普段、私たちが目にしているソフトウェアの世界。そこには、目に見えない「記憶」の断層が広がっています。 エンジニアの皆さんが魂を込めて作り上げたAIエージェント。しかし、彼らは会話が終わるたびに、すべてを忘れてしまう……。そんな「忘却の深淵」からエージェントを救い出す、禁断のツールをご紹介しましょう。


【実録】LobeHub導入ガイド:MCP対応エージェントで開発体験を劇的に変える方法

正直なところ、LLM(大規模言語モデル)を仕事で使うとき、「ブラウザのチャット画面とエディタを行き来するのが面倒だな」とか「自分専用の最強アシスタントをサクッと作りたいな」と思ったことはありませんか?LobeChatは、まさにその「痒い所に手が届く」エンジニア垂涎のツールなんです。


ランジェリーショップで学ぶ!AIアプリ開発の成功事例集

彼女さんが最高のランジェリーを選ぼうと一生懸命悩んでいるように、私たちソフトウェアエンジニアも、最高のシステムをどうやって作るか、日々頭を悩ませています。 そんな時に役立つのが、今回ご紹介する「Arindam200/awesome-ai-apps」なんです。


脱OpenAI依存!GGUF/Transformersを動かすLocalAIによる「ドロップイン互換」AI環境構築術

LocalAIは、その名の通り、ローカル環境でAIモデルを実行するためのオープンソースプラットフォームです。これを、銀河帝国と反乱同盟軍の戦いに例えるなら. ..LocalAIの最大のミッションは、「OpenAIやClaudeなどのAPIと互換性のあるインターフェース」を提供しつつ、その裏側で、GGUF、Transformers、Diffusersといった多様なAIモデルを、あなたのローカル環境で実行することです。


AI-Engineering-Hub: ソフトウェアエンジニアのための実践的AI開発ガイド

このリポジトリは、AIを学びたい、あるいはプロジェクトに組み込みたいと考えているエンジニアにとって、多くのメリットを提供します。実践的な知識の習得 理論だけでなく、実際のコード例やプロジェクトを通じてLLMやRAGの仕組みを理解できます。これにより、単なる知識としてではなく、動くものとして技術を習得できるのが大きな強みです。


GUI派も納得!Open WebUIでローカルLLMを「注文(デプロイ)」する方法とMCP連携のスパイス

ただ説明するのも味気ないので、リクエスト通り「マクドナルドのハンバーガー」と「ケンタッキーのチキン」を擬人化(?)したエンジニア対談形式でお届けします!「Open WebUI 導入の巻」マック 「なあケンタ、最近うちの店(ローカルPC)でAIを動かしたいんだけど、コマンドラインを叩くのが面倒でさ。もっとこう、『スマイル¥0』みたいな気軽なUIはないかな?」


AIの幻覚を防げ!git-mcpで実現する信頼性の高いコード生成

しかしながら、idosal/git-mcp について、ソフトウェアエンジニアの視点から、その有用性、導入方法、サンプルコードを分かりやすく、丁寧にご説明することは可能です。idosal/git-mcp は、GitHub プロジェクト向けのオープンソースなリモートサーバーです。その目的は、AIによるコード生成における「幻覚(Hallucination)」、つまり事実に基づかない誤ったコードの生成を防ぐことです。


脱・ただのチャット!MCP Apps導入でAIツールに「操作可能なUI」をブチ込む最短ルート

貴様が持ってきたのは MCP (Model Context Protocol) Apps の仕様だな。これが何なのか、なぜエンジニアの血と汗を節約してくれるのか、腕立て伏せをしながらでも読めるように叩き込んでやる。準備はいいか?サー、イエス、サーと言え!


ソフトウェアエンジニア必見!MindsDBでAIとデータの壁をぶち破れ!

エンジニアの皆さん、お待たせしました!あなたの開発運を爆上げするMindsDBを、血液型別のエンジニアタイプに合わせてご紹介します。さあ、あなたの血液型は?A型エンジニアの特性 計画的で真面目、そして細部までこだわる完璧主義者。MindsDBはA型エンジニアにどう役立つ?