FastMCP: MCPサーバーとクライアント構築の完全ガイド

FastMCP: MCPサーバーとクライアント構築の完全ガイド

FastMCP 2.0の全容を解説するチュートリアルです。このライブラリを使えば、Model Context Protocol (MCP) のサーバーとクライアントをPythonらしく、かつ迅速に構築できます。LLMアプリケーション向けのツール、リソース、プロンプトの作成方法を習得しましょう。

レッスン 1 2025-07-03 06:56

FastMCPとModel Context Protocolのご紹介

FastMCPとモデルコンテキストプロトコルの概要

モデルコンテキストプロトコル(MCP)とは?

モデルコンテキストプロトコル(MCP)は、大規模言語モデル(LLM)にコンテキストとツールを提供する画期的な標準化された方法です。「AIのためのUSB-Cポート」と形容されることが多いMCPは、LLMを外部リソースや機能に接続するための統一されたインターフェースを提供します。

MCPは、LLMとのインタラクション専用に設計された特殊なAPIだと考えてください。MCPサーバーは以下のことができます。

  • リソースを介したデータ公開(情報読み込みのためのGETエンドポイントに類似)
  • ツールを介した機能提供(アクション実行のためのPOSTエンドポイントに類似)
  • プロンプトを介したインタラクションパターンの定義(LLM会話のための再利用可能なテンプレート)
  • 接続の安全かつ効率的な管理

なぜFastMCPなのか?

MCPサーバーをゼロから構築するには、サーバーセットアップ、プロトコルハンドラー、コンテンツタイプ管理、エラー処理といった膨大な定型コードが必要になります。FastMCPは、こういった複雑さを排除し、優れた機能の構築に集中できるようにする、高レベルでPythonらしいインターフェースを提供します。

FastMCP 2.0は活発にメンテナンスされているバージョンで、基本的なプロトコル実装をはるかに超えた機能を提供します。

🚀 迅速な開発: 高レベルのインターフェースにより、コード量が減り、開発が加速
🍀 シンプルなAPI: 最小限の定型コードでMCPサーバーを構築
🐍 Pythonicな設計: Python開発者にとって自然な使い心地
🔍 完全なプラットフォーム: 開発から本番環境まで対応する包括的なツールキット

FastMCPの機能

コア機能

  • 簡単なサーバー作成: わずか数行のコードでMCPサーバーを作成
  • デコレーターベースの設計: シンプルなデコレーターで関数をMCPツールに変換
  • 複数のトランスポートをサポート: STDIO、HTTP、SSEトランスポートに対応
  • 型安全性: Pythonの型ヒントから自動的にスキーマを生成
  • 非同期対応: 同期関数と非同期関数の両方を完全にサポート

高度な機能

  • サーバーの構成: 複数のサーバーをまとめてマウント
  • プロキシサーバー: 既存のMCPサービス用の中間サーバーを作成
  • 認証: 本番環境でのデプロイメント向けに組み込みのセキュリティ機能
  • OpenAPI統合: 既存のREST APIからサーバーを生成
  • クライアントライブラリ: テストと統合のための包括的なクライアントサポート

簡単な例

FastMCPで基本的なMCPサーバーをいかに簡単に作成できるかを見てみましょう。

from fastmcp import FastMCP

# サーバーインスタンスを作成
mcp = FastMCP("デモサーバー 🚀")

@mcp.tool
def add_numbers(a: int, b: int) -> int:
    """2つの数値を加算します。"""
    return a + b

@mcp.tool
def greet_user(name: str) -> str:
    """ユーザーに名前で挨拶します。"""
    return f"こんにちは、{name}さん! FastMCPへようこそ!"

if __name__ == "__main__":
    mcp.run()

これだけです!これにより、任意のMCPクライアントから呼び出し可能な2つのツールを持つ、完全に機能するMCPサーバーが作成されます。

次のステップ

以下のセクションでは、さらに深く掘り下げていきます。 - FastMCP開発環境のセットアップ - 高度なツールとリソースの作成 - 本番環境対応サーバーの構築 - Claude Codeやその他のMCPクライアントとの統合 - 高度なパターンとベストプラクティス

FastMCPは、強力なモデルコンテキストプロトコルをPython開発者にとって身近なものにし、最小限の労力で洗練されたAI駆動型アプリケーションを構築することを可能にします。