📑

Python開発者必見!FastMCPでLLMアプリケーション開発を10倍速く

に公開

はじめに

「ボイラープレートコードに疲れた?FastMCPで解放されよう!」

こんにちは、今日は私が最近ハマっている超便利なライブラリ「FastMCP」について熱く語らせてください。正直、これを知ったときは目から鱗が落ちる思いでした!

私のような普通のプログラマーでも、LLMアプリケーションを簡単に作れるなんて...もっと早く出会いたかったですね(笑)

MCPって何?知らないと時代遅れかも?

まず基本から説明すると、Model Context Protocol(MCP)は、LLMアプリケーションとデータソースを安全に接続するための標準化されたプロトコルです。Anthropic社が開発したこのプロトコルは、「AIのUSB-C」とも呼ばれていて、LLMがリソースにアクセスするための統一された方法を提供しています。

簡単に言うと、APIみたいなものですが、LLMとの対話に特化しているんです。MCPサーバーでできることは:

  • リソースを公開する(GETエンドポイントのようなもの。LLMのコンテキストに情報を読み込むために使用)
  • ツールを提供する(POSTエンドポイントのようなもの。コードを実行したり副作用を生み出したりするために使用)
  • プロンプトを定義する(LLM対話のための再利用可能なテンプレート)
  • その他いろいろ!

MCPを直接実装するための低レベルPython SDKもありますが、正直言って面倒くさいです。そこで登場するのがFastMCPなんです!

なぜFastMCPを使うべき?

先週、MCPサーバーを実装しようとして丸一日潰してしまいました...サーバーセットアップ、プロトコルハンドラー、コンテンツタイプ、エラー管理...もう頭がパンクしそうでした。

そんなとき、FastMCPと出会ったんです。これが本当に救世主でした!FastMCPは複雑なプロトコルの詳細やサーバー管理をすべて処理してくれるので、私たちは素晴らしいツールの構築に集中できるんです。高レベルでPythonicなインターフェースを持ち、ほとんどの場合、関数にデコレータを付けるだけでOK!

FastMCPの目指すところは:

  • 高速:高レベルインターフェースでコード量が少なく、開発が速い
  • シンプル:最小限のボイラープレートでMCPサーバーを構築
  • Pythonic:Python開発者にとって自然な感覚
  • 完全:MCPコア仕様の完全な実装を提供

FastMCP v1はMCPサーバー機能を公開する最も一般的なボイラープレートを抽象化することに焦点を当て、その成功により公式MCP Python SDKに組み込まれました。FastMCP v2はその基盤の上に、柔軟なクライアント、プロキシ、コンポジション、デプロイメントなど、サーバー間の相互作用を簡素化することに主に焦点を当てた新機能を導入しています。

FastMCP v2の新機能が超便利!

FastMCP 1.0はMCPサーバーの構築を非常に簡単にしたため、公式Model Context Protocol Python SDKの一部になりました!基本的なユースケースでは、mcp.server.fastmcp.FastMCPをインポートするか、fastmcp=1.0をインストールすることで、アップストリームバージョンを使用できます。

MCPエコシステムの進化に基づいて、FastMCP 2.0はその基盤の上に様々な新機能(そしてより実験的なアイデア)を導入しています。MCPサーバーのプロキシやコンポジションなどの高度な機能や、OpenAPI仕様やFastAPIオブジェクトからの自動生成機能も追加されています。FastMCP 2.0はまた、LLMサンプリングなどの新しいクライアント側の機能も導入しています。

インストール方法(超簡単です!)

https://github.com/jlowin/fastmcp?tab=readme-ov-file#open-developer-guide

前提条件

  • Python 3.10+
  • uv

インストール

CLI経由でサーバーをデプロイするために必要なので、uvを使ってFastMCPをインストールすることを強くお勧めします:

uv pip install fastmcp

注意:macOSでは、Claude Desktopアプリで利用できるようにするために、Homebrew(brew install uv)でuvをインストールする必要があるかもしれません。

  • クローン:git clone https://github.com/jlowin/fastmcp.git && cd fastmcp
  • 環境と依存関係のインストール:uv venv && uv sync(作成後に.venvをアクティブ化)

テスト

テストスイートを実行:

uv run pytest -vv

クイックスタート(これは必見!)

https://gofastmcp.com/getting-started/quickstart

電卓ツールといくつかのデータを公開する簡単なMCPサーバーを作ってみましょう:

# server.py
from fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

以下のコマンドを実行するだけで、このサーバーを[Claude Desktop](Claude Desktop)にインストールして、すぐに対話できます:

fastmcp install server.py

詳細については、
FastMCPのドキュメントはgofastmcp.comで入手できます。

まとめ:

正直に言って、FastMCPはモデルコンテキストプロトコルの実装を簡素化することで、強力でコンテキストを意識したLLMアプリケーションを構築するためのハードルを大幅に下げてくれます。そのPythonicなデザイン、ボイラープレートを減らすことへのこだわり、そして包括的な機能セットは、LLMにカスタムツールやデータアクセスを安全かつ効率的に提供したい開発者にとって最高の選択肢です。

私自身、このライブラリのおかげで開発時間が半分以下になりました。みなさんもぜひ試してみてください!何か質問があれば、コメント欄で教えてくださいね。

Discussion