fastmcp-server について
Python と FastMCP 3.0 で MCP サーバーを開発する人向けのリファレンススキルです。サーバー機能、セキュリティ、ミドルウェア、プロバイダー、運用機能を扱います。
主な機能
- 01ツール、リソース、プロンプト
- 02コンテキストと依存性注入
- 03認証と認可
- 04組み込み・カスタムミドルウェア
- 05プロバイダー、ストレージ、テレメトリー
- 06FastMCP 2.x からの移行ガイド
活用シーン
- 01Python MCP サーバーの作成
- 02MCP サーバーへのコンポーネント追加
- 03アクセス制御とミドルウェアの設定
- 04FastMCP 2.x からのサーバー移行
MCP 対応
FastMCP 3.0 による MCP サーバー開発を案内し、ツール、リソース、プロンプト、トランスポート、認証を扱います。サーバーは MCP クライアントに機能を提供します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill fastmcp-serverインストール後、Claude Code で/fastmcp-serverを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/authorization.mdreferences/authentication/full-oauth-server.mdoauth-proxy.mdoidc-proxy.mdremote-oauth.mdtoken-verification.mdreferences/context/background-tasks.mddependency-injection.mdmcp-context.mduser-elicitation.mdreferences/features/client-logging.mdicons.mdlifespans.mdmiddleware.mdopentelemetry.mdpagination.mdprogress-reporting.mdsampling.mdstorage-backends.mdversioning.mdreferences/getting-started/installation.mdquickstart.mdupgrade-guide.mdreferences/providers/custom.mdfilesystem.mdlocal.mdskills.mdreferences/server/resources-and-templates.mdserver-class.mdtools.md詳細
FastMCP 3.0 サーバー開発
FastMCP 3.0 で本番環境向けの MCP (Model Context Protocol) サーバーを構築するための完全なリファレンスです。FastMCP は、LLM をツールやデータに接続するための、高速で Pythonic なフレームワークです。
このスキルを使用するタイミング
FastMCP サーバーを使用する場合:
- Python で新しい MCP サーバーを作成するとき
- MCP サーバーにツール、リソース、またはプロンプトを追加するとき
- 認証 (OAuth、OIDC、トークン検証) を実装するとき
- ロギング、レート制限、認可のためのミドルウェアを設定するとき
- プロバイダー (ローカル、ファイルシステム、スキル、カスタム) を構成するとき
- テレメトリとストレージを備えた本番向け MCP サーバーを構築するとき
- FastMCP 2.x から 3.0 へアップグレードするとき
対象となる主な領域:
- ツールとリソース (CORE): デコレーター、バリデーション、戻り値の型、テンプレート
- コンテキストと DI (CORE): MCP コンテキスト、依存性注入、バックグラウンドタスク
- 認証 (SECURITY): OAuth、OIDC、トークン検証、プロキシパターン
- 認可 (SECURITY): スコープベースおよびロールベースのアクセス制御
- ミドルウェア (ADVANCED): リクエスト/レスポンスのパイプライン、組み込みミドルウェア
- プロバイダー (ADVANCED): ローカル、ファイルシステム、スキル、カスタムプロバイダー
- 機能 (ADVANCED): ページネーション、サンプリング、ストレージ、OpenTelemetry、バージョン管理
クイックリファレンス
基本パターン
ツールを使ったサーバーを作成:
from fastmcp import FastMCP
mcp = FastMCP("MyServer")
@mcp.tool
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
リソースを作成:
@mcp.resource("data://config")
def get_config() -> dict:
"""Return server configuration"""
return {"version": "1.0", "debug": False}
リソーステンプレートを作成:
@mcp.resource("users://{user_id}/profile")
def get_user_profile(user_id: str) -> dict:
"""Get a user's profile by ID"""
return fetch_user(user_id)
プロンプトを作成:
@mcp.prompt
def review_code(code: str, language: str = "python") -> str:
"""Review code for best practices"""
return f"Review this {language} code:\n\n{code}"
サーバーを実行:
if __name__ == "__main__":
mcp.run()
# Or with transport options:
# mcp.run(transport="sse", host="0.0.0.0", port=8000)
ツール内でのコンテキストの使用
from fastmcp import FastMCP, Context
mcp = FastMCP("MyServer")
@mcp.tool
def process_data(uri: str, ctx: Context) -> str:
"""Process data with logging and progress"""
ctx.info(f"Processing {uri}")
ctx.report_progress(0, 100)
data = ctx.read_resource(uri)
ctx.report_progress(100, 100)
return f"Processed: {data}"
認証の設定
from fastmcp import FastMCP
from fastmcp.server.auth import BearerAuthProvider
auth = BearerAuthProvider(
jwks_uri="https://your-provider/.well-known/jwks.json",
audience="your-api",
issuer="https://your-provider/"
)
mcp = FastMCP("SecureServer", auth=auth)
主要な概念
ツール
LLM が実行可能な機能として公開される関数です。@mcp.tool でデコレートします。Pydantic によるバリデーション、非同期処理、カスタムの戻り値の型、アノテーション (readOnlyHint、destructiveHint) をサポートします。
リソースとテンプレート
URI で識別される静的または動的なデータソースです。リソースは固定の URI (data://config) を使用し、テンプレートはパラメーター付きの URI (users://{id}/profile) を使用します。MIME タイプ、アノテーション、ワイルドカードパラメーターをサポートします。
コンテキスト
Context オブジェクトは、ツールやリソース内から MCP の機能にアクセスするための手段を提供します。ロギング、進捗報告、リソースアクセス、LLM サンプリング、ユーザーへの問い合わせ (elicitation)、セッション状態などが含まれます。
依存性注入
Depends() を使用して、ツールやリソースの関数に値を注入します。HTTP リクエスト、アクセストークン、カスタム依存関係、ジェネレーターベースのクリーンアップパターンをサポートします。
プロバイダー
コンポーネントの提供元を制御します。LocalProvider (デフォルト、デコレーターベース)、FileSystemProvider (ディスク上の Python ファイルから読み込み)、SkillsProvider (パッケージ化されたバンドル)、またはカスタムプロバイダーがあります。
認証と認可
複数の認証パターンがあります: トークン検証 (JWT、JWKS)、OAuth プロキシ、OIDC プロキシ、リモート OAuth、完全な OAuth サーバーです。認可は、コンポーネントとミドルウェアに対するスコープによって行います。
ミドルウェア
リクエストとレスポンスを横取りして変更します。レート制限、エラー処理、ロギング、レスポンスサイズの制限のための組み込みミドルウェアがあります。@mcp.middleware によるカスタムミドルウェアも作成できます。
リファレンスの使用方法
詳細なドキュメントは references/ フォルダーに整理されています。
はじめに
- getting-started/installation.md - FastMCP のインストール、オプションの依存関係、セットアップの確認
- getting-started/upgrade-guide.md - FastMCP 2.x から 3.0 への移行
- getting-started/quickstart.md - 最初のサーバー、ツール、リソース、プロンプト、実行
サーバー
- server/server-class.md - FastMCP サーバーの構成、トランスポートオプション、タグフィルタリング
- server/tools.md - ツールデコレーター、パラメーター、バリデーション、戻り値の型、アノテーション
- server/resources-and-templates.md - リソース、テンプレート、URI、ワイルドカード、MIME タイプ
コンテキスト
- context/mcp-context.md - Context オブジェクト、ロギング、進捗、リソースアクセス、サンプリング
- context/background-tasks.md - タスクサポートを伴う長時間実行の操作
- context/dependency-injection.md - Depends()、カスタム依存関係、HTTP リクエスト、アクセストークン
- context/user-elicitation.md - 実行中にユーザーから構造化された入力を要求
機能
- features/icons.md - ツール、リソース、プロンプト、サーバー用のカスタムアイコン
- features/lifespans.md - サーバーのライフサイクル管理と起動・終了フック
- features/client-logging.md - MCP クライアントへのログメッセージの送信
- features/middleware.md - リクエスト/レスポンスのパイプライン、組み込みミドルウェアとカスタムミドルウェア
- features/pagination.md - 大規模なコンポーネント一覧のページ分割
- features/progress-reporting.md - 長時間実行される操作の進捗報告
- features/sampling.md - クライアントに対する LLM の補完リクエスト
- features/storage-backends.md - キャッシュとトークン用のメモリ、ファイル、Redis ストレージ
- features/opentelemetry.md - 分散トレーシングとオブザーバビリティ
- features/versioning.md - コンポーネントのバージョン管理とバージョン範囲によるフィルタリング
認証
- authentication/token-verification.md - JWT、JWKS、イントロスペクション、静的キー、カスタム
- authentication/remote-oauth.md - 上流の OAuth プロバイダーへの認証の委譲
- authentication/oauth-proxy.md - PKCE とクライアント管理を備えた完全な OAuth プロキシ
- authentication/oidc-proxy.md - 自動ディスカバリーを備えた OpenID Connect プロキシ
- authentication/full-oauth-server.md - 完全な組み込み OAuth サーバー
認可
- authorization.md - スコープベースのアクセス制御、ミドルウェアによる認可、パターン
プロバイダー
- providers/local.md - デフォルトのプロバイダー、デコレーターによるコンポーネント登録
- providers/filesystem.md - ディスク上の Python ファイルからのコンポーネント読み込み
- providers/skills.md - コンポーネントバンドルのパッケージ化と配布
- providers/custom.md - 任意のコンポーネントソース向けのカスタムプロバイダーの構築
バージョン履歴
v1.0.0(2026年2月)
- FastMCP 3.0(リリース候補)を対象とした初回リリース
- 7 つのカテゴリにまたがる 30 件のリファレンスファイル
- ツール、リソース、コンテキスト、認証、プロバイダー、機能を網羅的にカバー