punkpeye/fastmcp

A TypeScript framework for building MCP servers.

FastMCP – 速報

何であるか – FastMCP は Model Context Protocol (MCP) を扱うサーバーを構築するための TypeScript フレームワークです。MCP は LLM(またはその他の AI エージェント)がツールを呼び出し、リソースを取得し、構造化されたデータをバックエンドサーバーと交換できるプロトコルです。FastMCP は公式の MCP SDK をラップし、ツール・リソース・プロンプトなどの定義に集中できるように、多くの内部処理を提供します。

主な機能

  • Zod、ArkType、Valibot、または生の JSON Schema をサポートする、シンプルで型安全な API で ツール、リソース、プロンプト を定義。
  • 標準搭載の 認証、セッションおよびリクエストIDの追跡、エラー処理。
  • 複数のトランスポートオプション:
    • stdio(ローカル CLI 用)
    • HTTP ストリーミング(効率的なバイナリ対応ストリーミング、SSE フォールバックも提供)
    • カスタム証明書、CORS 設定、ヘルスチェックエンドポイントを備えた HTTPS。
  • 基盤となる Hono アプリを介した カスタム HTTP ルート – MCP エンドポイントと併せて、REST API、Webhook、管理ページなどを公開可能。
  • エッジランタイム対応 – 軽量な EdgeFastMCP クラスにより、Cloudflare Workers、Deno Deploy などでも同じサーバーを実行可能(エッジでは状態なしモードのみ)。
  • 状態なしモード – サーバーレスデプロイ向け。各リクエストごとに一時セッションが作成され、永続的な状態は保持されません。
  • 機能性向上:プログレス通知、ストリーミング出力、型安全なサーバーイベント、プロンプト引数の自動補完、サンプリング/誘導制御、設定可能なピング、メモリ内トランスポート(ユニットテスト用)、CLI(fastmcp dev、fastmcp inspect)。

使用するべきタイミング – 公式 SDK が必要とする低レベルのソケット処理を書きたくない場合に FastMCP を選択してください。迅速なプロトタイピングや、認証、HTTPS、カスタムルート、エッジデプロイが必要なプロダクションサービスに最適です。すべての詳細を完全に制御したい場合は、元の SDK が依然として望ましいかもしれません。

一般的なワークフロー

  1. npm install fastmcp
  2. 基本的なメタデータで FastMCP インスタンスを作成。
  3. server.addTool(...) などのメソッドでツール/リソースを追加。スキーマ(Zod など)と非同期 execute 関数を提供。
  4. server.start({ transportType: "httpStream", httpStream: { port: 8080 } })(CLI 用には stdio を使用)。
  5. オプションで server.getApp() を通じてカスタム Hono ルートを追加(REST エンドポイントや Webhook 用)。
  6. デプロイ – Node サーバー上で実行するか、EdgeFastMCP に切り替えて Cloudflare Workers にデプロイ。

例のスニペット(README から)は、npx fastmcp dev src/examples/addition.ts でローカルで実行可能な小さな加算ツールを示しています。


クイックリファレンス

  • パッケージ: fastmcp (npm)
  • 言語: TypeScript
  • 主なランタイム: Node.js(Cloudflare Workers、Deno Deploy 用には EdgeFastMCP)
  • トランスポートオプション: stdio、httpStream(オプションで HTTPS)、SSE フォールバック
  • 認証: プラグイン可能な authenticate コールバック;API キー、OAuth などに対応。
  • テスト: メモリ内トランスポート、CLI デベロップモード、インスペクタ UI。

結論 – FastMCP は MCP を基盤とする AI サービスバックエンドを構築するための本格的でプロダクション対応のフレームワークです。プロトコルの詳細、セキュリティ、デプロイの課題を処理し、開発者が AI 固有のロジックに集中できるようにします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト