FastMCP
FastMCPは、クライアントセッション管理が可能なMCPサーバーを構築するためのTypeScriptフレームワークです。
Python実装版はFastMCP Pythonをご覧ください。
主な機能
FastMCPは以下の機能を提供します:
シンプルなツール、リソース、プロンプト定義
CORS(デフォルトで有効)
自動SSEピング
ルート管理
インストール方法
クイックスタート
FastMCPの実際の使用例は多数あります。事例紹介をご覧ください。
これだけで動作するMCPサーバーができました!
ターミナルで以下のようにテストできます:
SSE
Server-Sent Events(SSE)は、サーバーがHTTPS接続を介してクライアントにリアルタイム更新を送信するメカニズムです。MCPにおいて、SSEは主にリモートMCP通信を可能にするために使用され、リモートマシンでホストされたMCPにアクセスしてネットワーク経由で更新を中継できるようにします。
SSEサポート付きでサーバーを実行することもできます:
これにより、サーバーが起動し、http://localhost:8080/sseでSSE接続をリッスンします。
その後、SSEClientTransportを使用してサーバーに接続できます:
基本概念
ツール
MCPのツールでは、サーバーが実行可能な関数を公開し、クライアントやLLMがアクションを実行するために呼び出すことができます。
FastMCPはツールパラメーターの定義にStandard Schema仕様を使用しています。これにより、Zod、ArkType、Valibotなど、仕様を実装している好みのスキーマ検証ライブラリを使用できます。
Zodの例:
ArkTypeの例:
Valibotの例:
Valibotにはピア依存関係@valibot/to-json-schemaが必要です。
文字列を返す
executeは文字列を返すことができます:
これは以下と同等です:
リストを返す
メッセージのリストを返したい場合は、contentプロパティを持つオブジェクトを返せます:
画像の返却
画像のコンテンツオブジェクトを作成するには、imageContentを使用します:
imageContent関数は以下のオプションを受け取ります:
url: 画像のURLpath: 画像ファイルへのパスbuffer: バッファとしての画像データ
url、path、bufferのいずれか1つのみを指定する必要があります。
上の例は以下と同等です:
ロギング
ツールはコンテキストオブジェクトのlogを使用してクライアントにメッセージをログ出力できます:
logオブジェクトには以下のメソッドがあります:
debug(message: string, data?: SerializableValue)error(message: string, data?: SerializableValue)info(message: string, data?: SerializableValue)warn(message: string, data?: SerializableValue)
エラー
ユーザーに表示されるべきエラーは、UserErrorインスタンスとしてスローする必要があります:
進捗通知
ツールはコンテキストオブジェクトのreportProgressを呼び出すことで進捗を報告できます:
リソース
リソースは、MCPサーバーがクライアントに提供したいあらゆる種類のデータを表します。これには以下が含まれます:
ファイルの内容
スクリーンショットや画像
ログファイル
その他多数
各リソースは一意のURIで識別され、テキストまたはバイナリデータを含むことができます。
loadは複数のリソースを返すことができます。これは例えば、ディレクトリが読み込まれたときにディレクトリ内のファイルのリストを返すために使用できます。
loadでバイナリコンテンツを返すこともできます:
リソーステンプレート
リソーステンプレートを定義することもできます:
リソーステンプレート引数の自動補完
リソーステンプレート引数の自動補完を有効にするために、complete関数を提供します:
プロンプト
プロンプトは、サーバーが再利用可能なプロンプトテンプレートとワークフローを定義し、クライアントがユーザーやLLMに簡単に提示できるようにします。これにより、一般的なLLMインタラクションを標準化して共有するための強力な方法を提供します。
プロンプト引数の自動補完
プロンプトは引数の自動補完を提供できます:
enumを使用したプロンプト引数の自動補完
引数にenum配列を提供すると、サーバーは自動的に引数の補完を提供します。
認証
FastMCPではカスタム関数を使用してクライアントをauthenticateできます:
これで、ツール内で認証されたセッションデータにアクセスできます:
セッション
sessionオブジェクトはFastMCPSessionのインスタンスであり、アクティブなクライアントセッションを記述します。
クライアントとサーバー間の1対1通信を可能にするために、各クライアント接続に対して新しいサーバーインスタンスを割り当てます。
型付きサーバーイベント
onメソッドを使用してサーバーから発行されるイベントをリッスンできます:
FastMCPSession
FastMCPSessionはクライアントセッションを表し、クライアントとやり取りするためのメソッドを提供します。
FastMCPSessionインスタンスの取得方法については、セッションの例を参照してください。
requestSampling
requestSamplingはサンプリングリクエストを作成し、レスポンスを返します。
clientCapabilities
clientCapabilitiesプロパティにはクライアント機能が含まれています。
loggingLevel
loggingLevelプロパティは、クライアントによって設定されたロギングレベルを記述します。
roots
rootsプロパティには、クライアントによって設定されたルートが含まれています。
server
serverプロパティには、セッションに関連付けられたMCPサーバーのインスタンスが含まれています。
型付きセッションイベント
onメソッドを使用してセッションから発行されるイベントをリッスンできます:
サーバーの実行
MCP-CLIでテスト
サーバーをテストしてデバッグする最速の方法は、fastmcp devを使用することです:
これにより、mcp-cliを使用してターミナルでMCPサーバーをテストおよびデバッグするためのサーバーが実行されます。
MCP Inspectorで検査
もう一つの方法は、公式のMCP Inspectorを使用してWebUIでサーバーを検査することです:
よくある質問
Claude Desktopで使用するには?
ガイド https://modelcontextprotocol.io/quickstart/user に従って、次の設定を追加してください:
事例紹介
FastMCPを使用したサーバーを開発した場合は、ぜひPR提出して事例として紹介してください!
apinetwork/piapi-mcp-server - Midjourney/Flux/Kling/LumaLabs/Udio/Chrip/Trellisを使用してメディアを生成
domdomegg/computer-use-mcp - コンピュータを制御
LiterallyBlah/Dradis-MCP – Dradisでプロジェクトと脆弱性を管理
Meeting-Baas/meeting-mcp - 会議ボットの作成、議事録の検索、録画データの管理
drumnation/unsplash-smart-mcp-server – AIエージェントがUnsplashからプロの写真をシームレスに検索、推奨、配信できるようにする
ssmanji89/halopsa-workflows-mcp - HaloPSAワークフローとAIアシスタントの統合
aiamblichus/mcp-chat-adapter – LLMがチャット完了を使用するためのクリーンなインターフェースを提供
謝辞
FastMCPはJonathan LowinによるPython実装に着想を得ています。
コードベースの一部はLiteMCPから採用されました。
コードベースの一部はModel Context protocolでSSEをやってみるから採用されました。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A TypeScript framework for building MCP servers with client session management capabilities, supporting tools definition, authentication, image content, logging, and error handling.
Related MCP Servers
- -security-license-qualityA TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.Last updated -0
- Asecurity-licenseAqualityA simple TypeScript library for creating Model Context Protocol (MCP) servers with features like type safety, parameter validation, and a minimal code API.Last updated -101MIT License
- -security-license-qualityA TypeScript framework for building MCP servers with features for client sessions, authentication, image/audio content, and typed server events.Last updated -MIT License
- -security-license-qualityA template repository for building Model Context Protocol (MCP) servers with TypeScript, featuring full TypeScript support, testing setup, CI/CD pipelines, and modular architecture for easy extension.Last updated -2