MCP-SERVER-TEMPLATE

by vyasa1986

Integrations

  • Loads environment variables from .env files for server configuration, enabling customization of transport types, HTTP settings, authentication, and logging options.

  • Provides HTTP request utilities through the 'serviceRequest' function in httpUtils.ts, supporting authenticated API requests with OAuth2 or API key authentication, retries, and response validation.

  • Implements the HTTP transport layer using Express to handle POST requests to the /mcp endpoint, process JSON-RPC messages, and support stateless request handling.

MCP サーバー テンプレート

MCP-SERVER-TEMPLATEへようこそ。これは、公式 TypeScript SDK を使用して Model Context Protocol (MCP) サーバーを実装するためのテンプレート プロジェクトです。このプロジェクトは、HTTP や標準 I/O (stdio) などのさまざまなトランスポート メカニズムをサポートし、ステートレスおよびステートフル MCP サーバーを構築するための基盤を提供します。

目次

概要

このプロジェクト( MCP-SERVER-TEMPLATE )は、公式SDKを用いてModel Context Protocol(MCP)サーバーを構築するためのTypeScriptベースのスターターテンプレートです。このサーバーは、ユーザークエリとツール実行間のインターフェースとして機能し、AIアシスタントや外部システムがツールを動的に呼び出し、プロンプトを解釈し、モジュール式かつ拡張可能な方法でリソースを管理できるようにします。

主な機能

  • モジュラー アーキテクチャ: プロジェクトは、構成、トランスポート管理、ツール登録、サーバー オーケストレーション、およびユーティリティ ヘルパーの明確なモジュールに分割されており、関心の分離とメンテナンスの容易さを促進します。
  • トランスポート抽象化: 以下の複数のトランスポート タイプに対する組み込みサポート:
    • HTTP (ステートレス) : 各リクエストは、完全な分離と RESTful プラクティスへの準拠のために新しい MCP サーバー インスタンスを起動します。
    • STDIO (ステートフル) : 永続的な通信を必要とするデスクトップまたは CLI ベースの統合用。
    • 統合されたインターフェースとファクトリ パターンにより、SSE や WebSocket などの将来のトランスポートに簡単に拡張できます。
  • 依存性注入: カスタム DI システムは、構成やログインなどのサービスをツールやトランスポート層に注入し、テスト可能性と分離を保証します。
  • ツール システム: ツールは次のものを定義する独立したクラスです。
    • 一意の名前と説明
    • 入力検証のためのZodスキーマ
    • ビジネスロジックを処理するexecute関数
    • 外部イントロスペクション用の自動生成された JSON スキーマ
  • プロンプトとリソースの拡張性: プロンプト テンプレートと動的リソース フェッチをサポートするスキャフォールディングが組み込まれており、プロンプト オーケストレーションや検索拡張生成 (RAG) ユース ケースのために将来 LLM と統合できるようになります。
  • 組み込みのテストとデバッグ:
    • MCP Inspector : ツール呼び出し、入出力フロー、ライブデバッグを視覚化するための GUI。
    • HTTP テスト スクリプト: JSON-RPC 要求を送信してエンドポイント応答をテストします。
    • ユニット テスト: ツールおよびユーティリティ ロジック用の Jest ベースのテスト フレームワーク。
  • 構成可能で安全: .envおよびランタイム構成ファイルを通じて簡単に調整可能:
    • 認証情報とAPIキー
    • サーバーポートとトランスポートオプション
    • ログレベルとセッションの動作

ユースケース

このテンプレートは次の場合に最適です。

  • 会話型MCPサーバーの構築
  • LLM ベースのワークフローの呼び出し可能なツールを管理するためのバックエンドの作成

LLM ツールチェーンのプロトタイプ作成、独自システムとの統合、スケーラブルな本番環境向け MCP アシスタント バックエンドの準備など、このプロジェクトはすぐに拡張できる、徹底的に構造化されたソリューションを提供します。

前提条件

  • Node.js (バージョン 18.x 以降を推奨)
  • npm (ノード パッケージ マネージャー)
  • Git(リポジトリのクローン作成用)

インストール

  1. リポジトリをクローンします。
    git clone xxxx cd mcp-server-template
  2. 依存関係をインストールします:
    npm install
    これにより、 package.jsonで定義されているように、本番環境の依存関係 (例: @modelcontextprotocol/sdkexpressaxios ) と開発環境の依存関係 (例: typescriptts-nodejest ) の両方がインストールされます。
  3. MCP 機能のコア依存関係である@modelcontextprotocol/sdkパッケージ (バージョン^1.10.1 ) がインストールされていることを確認します。

構成

このプロジェクトでは、環境変数とsrc/core/config/内の2つの主要ファイルによって管理される設定システムを使用しています。設定はConfigServiceruntimeConfigで定義されており、トランスポートタイプ、ログ記録、外部API統合のカスタマイズが可能です。

設定オプション

  • 環境変数( runtimeConfig.tsdotenv経由で読み込まれます):
    • TRANSPORT_TYPE : トランスポートメカニズムを設定します ( 'http'または'stdio' 、デフォルト: 'stdio' )。
    • HTTP_PORT : HTTP サーバーのポート (デフォルト: 3000 )。
    • HTTP_HOST : HTTP サーバーのホスト (デフォルト: localhost )。
    • SESSION_SUPPORT : セッション サポートを有効/無効にします (デフォルト: 'true' )。
    • LOG_LEVEL : ログレベル (例: 'info''debug' 、デフォルト: 'info' )。
    • MCP_INSPECTOR_PORT : MCP インスペクタのポート (デフォルト: 6274 )。

構成例

.envファイルで環境変数を設定します。

TRANSPORT_TYPE=http HTTP_PORT=3000 HTTP_HOST=localhost LOG_LEVEL=debug

サーバーの実行

サーバーはエントリ ポイントsrc/index.tsを介して起動され、依存性の注入と構成設定を使用して初期化と起動のプロセスを調整します。

起動プロセス

  1. 環境設定: index.tsdotenvを使用して環境変数を読み込み、構成設定 (例: TRANSPORT_TYPEHTTP_PORT ) が利用可能であることを確認します。
  2. 依存関係の初期化: createDependenciesを使用して、ロガーやConfigServiceなどの共有依存関係を設定します。
  3. トランスポート構成: トランスポート ( HttpTransportまたはStdioTransport ) は、 TRANSPORT_TYPE設定に基づいて、 runtimeConfigを介して構成されます。
  4. サーバーの初期化: 構成されたトランスポートと依存関係を持つMCPServerインスタンスを作成します。
  5. サーバーの起動: サーバーを非同期的に起動し、致命的なエラーをログに記録して失敗コードで終了することで処理します。

サーバーの起動

  1. 生産モード
    • TypeScript を JavaScript にコンパイルするプロジェクトをビルドします。
      npm run build
      これにより、 tscが実行され、コンパイルされた JavaScript ファイルを含むdist/フォルダーが生成されます。
    • サーバーを起動します。
      npm start
      これによりnode dist/index.jsが実行され、コンパイルされたサーバーが実行されます。
    • httpの場合、サーバーはhttp://localhost:3000/mcpをリッスンします (ポートとホストはHTTP_PORTHTTP_HOSTで設定可能です)。
    • stdioの場合、サーバーはコンソールから読み取り、コンソールに書き込みます。
  2. 開発モード:
    • ts-nodeを使用して TypeScript でサーバーを直接実行します。
      npm run dev
      これによりts-node src/index.tsが実行され、ビルド ステップなしで反復処理が高速化されます。

注記

  • サーバーを起動する前に、環境変数またはruntimeConfig設定が正しく設定されていることを確認してください。
  • コンソール出力のログ ( LOG_LEVELによって制御) をチェックして、サーバーが正常に起動したことを確認します。

テスト

このプロジェクトには、自動テストと MCP インスペクターを使用してサーバーをテストし、その動作をデバッグし、機能を検証するためのスクリプトがいくつか含まれています。

ユニットテスト

Jest を使用して単体テストを実行し、個々のコンポーネントの機能を検証します。

npm test

これによりjestが実行され、プロジェクトで定義されているすべてのテスト(テストツール、ユーティリティ、サーバーロジックなど)が実行されます。テストファイルがJestとts-jestでセットアップされていることを確認してください。TypeScriptのサポートが必要です。

HTTPトランスポートテスト

MCP サーバーの基本機能を検証するための HTTP トランスポート用のテスト スクリプトが提供されています。

スクリプトの詳細 ( src/scripts/testHttpTransport.js )
  • 目的: JSON-RPC tools/list要求をサーバーに送信し、応答を検証することで、HTTP トランスポートをテストします。
  • 依存関係:
    • axiosを使用して HTTP POST リクエストをサーバーに送信します。
  • 機能性:
    • method: 'tools/list'id: 1 、適切なヘッダーを使用して、JSON-RPC 2.0 リクエストをhttp://localhost:3000/mcpに送信します。
    • 応答を検証して次のことを確認します。
      • 応答は JSON-RPC 2.0 ( jsonrpc: '2.0' ) に準拠します。
      • 応答idリクエストと一致します ( id: 1 )。
      • 応答には、予想されるtoolsキーを含むresultフィールドが含まれます。
    • 有効な場合は応答データとともに成功メッセージを記録します。形式が予期しない場合は受信したデータとともにエラーを記録します。
  • エラー処理:
    • リクエストの失敗 (ネットワーク エラー、サーバーが実行していないなど) をキャッチし、エラー メッセージとともに記録します。
テストの実行
  1. TRANSPORT_TYPE'http'に設定された状態でサーバーが実行されていることを確認します。
    npm start
  2. テスト スクリプトを実行します。
    npm run test:http
    これによりts-node src/scripts/testHttpTransport.tsが実行されます。
スタートとテストの組み合わせ

1 つのコマンドでサーバーを起動し、HTTP テストを実行するには:

npm run mcp:http

これによりnpm run start & npm run test:httpが実行され、バックグラウンドでサーバーが起動し、HTTP テスト スクリプトがすぐに実行されます。

期待される出力
  • 成功例: サーバーが正しく応答した場合、スクリプトは次をログに記録します。
    ✅ HTTP transport responded correctly to tools/list Response: { "tools": [ { "name": "calculator_tool", "description": "Performs basic arithmetic operations: add, subtract, multiply, divide.", "inputSchema": {...} } ] }
  • 失敗ケース (無効な応答形式) : 応答形式が予期しないものである場合、スクリプトは次をログに記録します。
    ❌ Response received, but unexpected format Received: {...}
  • 失敗ケース (リクエストが失敗) : リクエストが失敗した場合 (例: サーバーが実行されていない)、スクリプトは次をログに記録します。
    ❌ HTTP request failed: <error message>
注記
  • このスクリプトは、サーバーがhttp://localhost:3000/mcpで実行されていることを前提としています。HTTP_PORT またはHTTP_HOST``HTTP_PORT異なる場合は、スクリプト内のendpointを調整してください。
  • CalculatorToolなどのツールが登録されていることを確認し、 tools/list応答でそれらを表示します。

MCPインスペクタのデバッグ

MCP Inspector は、MCP サーバーのデバッグと監視を行う強力なツールであり、サーバー状態と相互作用を検査するための Web UI を提供します。

スクリプトの詳細 ( src/scripts/mcpInspectorScript.ts )
  • 目的: MCP インスペクターを起動し、Web UI の準備ができるまで待機し、ブラウザーで開いて、stdio トランスポートを使用して MCP サーバーをローカルでデバッグします。
  • 依存関係:
    • child_processを使用してmcp-inspectorプロセスを生成し、ブラウザーを開くコマンドを実行します。
    • axiosを使用して、MCP Inspector Web UI にアクセスできるかどうかを確認します。
    • createDependencies()を介して依存性注入を活用し、ポート構成のためにConfigServiceアクセスします。
  • 機能性:
    • npx mcp-inspector node dist/index.jsを使用してmcp-inspectorプロセスを生成し、コンソール出力用の stdio を継承します。
    • waitUntilInspectorIsReadyを実装して、Web UI (デフォルト ポート: 6274MCP_INSPECTOR_PORTで構成可能) を再試行 (20 回の試行、500 ミリ秒の遅延) してポーリングします。
    • プラットフォーム固有のブラウザで Web UI を開きます。
      • macOS: open
      • Windows: start
      • Linux: xdg-open
    • URL を含む起動概要テーブルを記録します。
      • MCP インスペクター UI: http://localhost:6274 (または設定されたポート)
      • MCP プロキシ サーバー: http://localhost:6277
  • エラー処理:
    • Web UI がすぐに利用できない場合は再試行します。
    • 再試行後もインスペクターの起動に失敗した場合は、エラーをスローして終了します。
    • 失敗した場合はインスペクター プロセスを強制終了し、手動で確認または再起動するためのメッセージをログに記録します。
MCPインスペクターの実行
  1. サーバーがコンパイルされていることを確認します (例: npm run build実行してdist/index.jsを生成します)。
  2. MCP Inspector スクリプトを実行します。
    npm run mcp:inspector
    これによりts-node src/scripts/start-mcp-inspector.tsが実行されます。
ビルドとインスペクターの統合

プロジェクトをビルドし、MCP インスペクターを 1 つのコマンドで起動するには、次の手順を実行します。

npm run mcp:dev

これによりnpm run build && npm run mcp:inspector実行され、インスペクターを起動する前にプロジェクトがコンパイルされていることが保証されます。

デバッグのヒント
  • MCP Inspector UI を使用して、サーバー要求、ツール呼び出し、および応答を監視します。
  • インスペクターの起動に失敗した場合は、コンソール出力で起動ログまたはエラーを確認してください。
  • MCP_INSPECTOR_PORT別のサービスによって使用されていないことを確認します。

コードのフォーマット

このプロジェクトでは、Prettier を使用して、すべてのファイルにわたって一貫したコード形式を維持します。

フォーマットコード

プロジェクト内のすべてのファイルをフォーマットするには:

npm run format

これにより、 prettier --write .が実行され、サポートされているすべてのファイル (例: .ts.js.json ) が自動的にフォーマットされます。

書式設定を確認する

すべてのファイルが Prettier フォーマット ルールに準拠しているかどうかを確認するには:

npm run format:check

これにより、 prettier --check .が実行され、フォーマット規則に準拠していないファイルが変更されずに報告されます。

プロジェクト構造

  • src/core/config/
    • configService.ts : サーバー構成を管理するためのクラスであるConfigServiceを実装します。トランスポートタイプ、HTTPサーバー設定、ログレベル、API URL(例:MealDB)、認証資格情報、MCPインスペクタポートなどのデフォルト値を含む環境変数から設定を読み込みます。
    • runtimeConfig.ts : dotenvを使用して環境変数を読み込むランタイム設定を定義します。トランスポート設定 ( transportType 、 port ) と認証戦略 ( authStrategytokenSecretusernamepassword ) を設定します。
  • src/core/dependencies/
    • dependencies.ts : Dependenciesインターフェースを用いた依存性注入を実装し、Winston を使用したloggerConfigServiceインスタンスを提供しcreateDependencies 。createDependencies 関数はtransportTypeに基づいてログトランスポートを動的に設定し( stdioの場合は stderr、その他の場合は stdout、およびファイル log combined.log )、グローバル使用のためのシングルトンloggerをエクスポートします。
  • src/core/server/
    • transports/
      • http/
      • server.ts : Express を用いたステートレス HTTP トランスポートであるHttpTransport実装します。POST POST /mcpリクエストの処理、オプションの Bearer トークン認証による JSON-RPC メッセージの処理、レスポンスのResponseMapへの保存、そして非同期送信をサポートします。ログ記録と設定は、依存性注入 (DI) されたDependenciesに依存します。
        • stdio/
      • server.ts : SDK のStdioServerTransportを使用したトランスポートであるStdioTransportを実装します。stdin/stdout 通信の管理、トランスポートの開始と終了、そして依存性注入されたDependenciesによるエラーログ出力を伴うメッセージ送信の処理を行います。
        • baseTransport.ts : SDK のTransportインターフェースを拡張するBaseTransportインターフェースと抽象クラスAbstractTransportを定義します。トランスポート実装用のメソッド ( startsendcloseisRunning ) とイベントハンドラー ( onmessageonerroronclose ) を指定し、 HttpTransportStdioTransportに共通の規約を提供します。
        • transportFactory.ts : TransportFactoryを実装します。これは、 TransportConfig型(例: 'http'または'stdio' )に基づいてHttpTransportまたはStdioTransportのインスタンスを作成する静的クラスです。Dependencies によるDependencies性注入を使用してログ記録と設定を提供し、サポートされていないトランスポートタイプに対してはエラーをスローします。
    • mcpServer.ts : MCP SDK のServerとトランスポート ( HttpTransportまたはStdioTransport ) を統合するコアサーバークラスMCPServerを実装します。サーバーの初期化、 ToolRegistryを持つRequestHandlerのセットアップ、トランスポートへの接続、そして依存性注入によるDependenciesを用いたログ出力によるメッセージパッシング、エラー、レスポンスの処理を行います。
    • requestHandler.ts : RequestHandlerを実装します。これは、MCP SDK を使用してtools/listおよびtools/callリクエストのハンドラーを登録します。利用可能なツールを一覧表示し、検証済みの引数(Zod経由)を使用してツール呼び出しを実行します。認証トークンをサポートし、無効なツール( ToolNotFoundError )または引数( ValidationError )に対してエラーをスローします。ログ記録には依存性注入( Dependencies )を使用します。
  • src/core/toolManagement/
    • toolFactory.ts : ToolFactoryを実装します。これは、 Dependenciesによる依存性注入を用いてツール(例: calculatorTool )のインスタンスを作成するクラスです。汎用的なToolConstructor型を定義し、インスタンス化エラーをログに記録して処理します。
    • toolRegistry.ts : ツールの登録と取得を管理するクラスToolRegistryを実装します。ToolFactory ToolFactory使用してtoolClassesからツールをインスタンス化し、 Mapに格納します。また、ツールのメタデータ(名前、説明、入力スキーマ)を登録、取得、一覧表示するメソッドを提供します。依存性注入されたDependenciesを介して、読み込みステータスとエラーをログに記録します。
    • errors.ts : ツール管理用のカスタム エラー クラスを定義します。これには、 ToolNotFoundError (要求されたツールが登録されていない場合にスローされます) やValidationError (ツール引数が Zod などを介して検証に失敗した場合、スローされます) が含まれます。
    • types.ts : トランスポートと認証設定のためのTypeScript型TransportConfig定義します。TransportType ( 'stdio''sse''http' )、 TransportType (SSEまたはHTTPと認証のオプション付き)、 SSETransportConfig (ポート、CORS、認証)、 HttpStreamTransportConfig (ポート、レスポンスモード、CORS、セッション、再開可能性、認証)、 AuthConfig (戦略、資格情報) が含まれます。
  • src/prompts/ : プロンプト テンプレートのディレクトリ (現在は空ですが、将来の実装用に予約されています)。
  • src/resources/ : リソース管理用のディレクトリ (現在は空ですが、将来の実装用に予約されています)。
  • src/scripts/
    • testHttpTransport.js : tools/list要求を送信し、応答を検証することで基本機能を確認するための HTTP トランスポートのテスト スクリプト。
    • mcpInspectorScript.ts : MCP Inspector を起動し、Web UI の準備が整うまで待機し、MCP サーバーのデバッグのためにブラウザで開くスクリプトです。依存性注入を使用してConfigServiceにアクセスし、ポート設定を行います。また、プラットフォーム固有のブラウザの開き方にも対応しています。
  • src/tools/
    • types/
      • ITool.ts : ツールのIToolインターフェースを定義し、 namedescriptionschema (Zod型)、 jsonSchema 、およびJSON-RPC CallToolRequestを処理するためのexecuteメソッドを指定します。ツール実装のDependenciesをエクスポートします。
      • baseTool.ts : 定型句を削減し、 Dependenciesによる依存性注入を処理し、 BaseToolション、ドキュメント化、および UI 生成のためにzod-to-json-schemaを使用して Zod スキーマを JSON スキーマに自動的に変換する抽象 BaseTool クラスを実装します。
      • index.ts : ToolRegistryによる動的な読み込みのために、 toolClassesツール コンストラクター (例: CalculatorTool ) の配列としてエクスポートし、新しいツールによる拡張を容易にします。
      • calculatorTool.ts : CalculatorToolを実装します。 subtractは、 Zod による入力検証、エラー処理 ( HttpErrorを使用したゼロ除算divide )、および依存性注入によるDependenciesによるログ記録を伴う基本的な算術演算 ( addmultiply 、乗算、除算) を実行する具体的なツールです。
    • utils/
      • httpUtils.ts : HTTP操作用のユーティリティ関数を提供します。これには、再試行とタイムアウト処理を備えた認証済みHTTPリクエスト(OAuth2またはAPIキー)を作成するためのserviceRequest 、OAuth2トークンの取得とキャッシュを行うgetAuthToken 、クエリ文字列を作成するbuildQueryString 、レスポンス検証を行うvalidateResponseが含まれます。設定のためにConfigServiceと統合されています。
      • index.ts : ツールやその他のコンポーネントで使用するためのユーティリティ関数をエクスポートします。
  • src/index.ts : MCPサーバーを起動するためのエントリポイント。dotenv を使用して環境変数を読み込み、 createDependenciesを使用して依存関係をdotenv化し、 runtimeConfigからのトランスポートを使用してMCPServerインスタンスを作成し、サーバーを非同期的に起動します。致命的なエラーはログに記録して終了することで処理されます。

トラブルシューティング

  • 「サーバーが初期化されていません」エラー:
    • MCPServerセットアップでハンドラーが登録され、機能が設定されていることを確認します ( RequestHandler経由)。
    • 各リクエストを処理する直前にトランスポートが接続されていることを確認します (HTTP の場合)。
    • 再利用されたサーバーでもエラーが解決しない場合は、ステートレス アプローチ (リクエストごとに新しいサーバー) を使用します。
  • パフォーマンスの問題:
    • リクエストごとに新しいサーバーを作成すると、高負荷時にパフォーマンスに影響する可能性があります。必要に応じて、セッション管理機能を備えた単一のMCPServerの再利用を検討してください。ただし、十分なテストを実施してください。
  • 構成の問題:
    • 環境変数が.envファイルで正しく設定されているか、プロセスに直接渡されていることを確認します。
    • 外部 API 統合 (MealDB、OMDB など) が失敗した場合は、 ConfigServiceログをチェックして、読み込まれた設定を確認します。
  • ログの問題:
    • LOG_LEVEL環境変数が期待されるレベル (例: 'info''debug' ) と一致していることを確認します。
    • stdioトランスポートの場合、ログが意図したとおりに stderr に送信されていることを確認します。ファイルベースのログについては、 combined.logチェックします。
  • 輸送問題:
    • HttpTransportの場合、ポートが使用可能であり、競合するサービスが実行されていないことを確認します。
    • StdioTransportの場合、メッセージが処理されていない場合は stdin/stdout の可用性を確認します。
    • TransportFactoryが失敗した場合は、 TRANSPORT_TYPE構成でサポートされているタイプ ( 'http'または'stdio' ) と一致していることを確認します。
  • リクエスト処理の問題:
    • tools/listまたはtools/callリクエストが失敗した場合は、 ToolRegistryで登録済みのツールを確認してください。
    • ValidationError回避するには、 CallToolRequestSchema内のスキーマに対してツール引数を検証します。
    • ツールで必要な場合は認証トークンが提供されていることを確認します。
  • ツール管理の問題:
    • ツールの読み込みに失敗した場合は、 src/tools/index.tstoolClassesに有効なツール実装が含まれていることを確認してください。
    • ToolFactoryログでインスタンス化エラーを確認し、 Dependenciesが適切に挿入されていることを確認します。
  • MCP インスペクターの問題:
    • MCP インスペクタの起動に失敗した場合は、 MCP_INSPECTOR_PORT (デフォルト: 6274 ) が使用されていないことを確認してください。
    • スクリプトを起動する前にnpm run buildを実行してdist/index.jsが存在することを確認します。
    • 起動中に、ネットワークの問題や依存関係の不足などのエラーがないかコンソール出力を確認します。
  • HTTP リクエストの問題:
    • serviceRequestが失敗した場合は、 ConfigServiceauthTypeauthEndpointclientIdclientSecret 、またはapiKey設定を確認してください。
    • 再試行をトリガーする可能性のあるネットワークの問題またはサーバー エラー (5xx) を確認します。
    • リクエスト URL とメソッドが正しいことを確認し、 validateResponseを使用してレスポンス スキーマを検証します。
  • HTTP トランスポート テストの問題:
    • testHttpTransport.jsスクリプトが失敗する場合は、サーバーがTRANSPORT_TYPE='http'で実行されており、 http://localhost:3000/mcpをリッスンしていることを確認してください。
    • ポートとホストがスクリプトのendpointと一致していることを確認します ( HTTP_PORTまたはHTTP_HOSTが異なる場合は調整します)。
    • ToolRegistryに登録されているツールがあるかどうかを確認します。 tools配列が空の場合は、ツールの読み込みに問題がある可能性があります。
  • テストの問題:
    • npm testが失敗した場合は、TypeScript サポートのために Jest がts-jestで正しく構成されていることを確認し、テスト ファイルが存在することを確認します。
    • npm run mcp:inspectorまたはnpm run mcp:devが失敗する場合は、 @modelcontextprotocol/inspectorがインストールされ、サーバーがコンパイルされている ( dist/index.jsが存在する) ことを確認してください。
  • フォーマットの問題:
    • npm run format:check問題が報告された場合は、 npm run formatを実行して自動的にフォーマットを修正するか、Prettier のルールに合わせてファイルを手動で調整します。

貢献

GitHubリポジトリに問題やプルリクエストをお気軽にご提出ください。サーバー実装の改善、新機能の追加、パフォーマンスの最適化など、皆様の貢献を歓迎いたします。

ライセンス

このプロジェクトはISCライセンスに基づいてライセンスされています。詳細はLICENSEファイルをご覧ください。

謝辞

-
security - not tested
F
license - not found
-
quality - not tested

AI アシスタントがツールを動的に呼び出し、プロンプトを解釈し、複数のトランスポート方法をサポートするモジュラー アーキテクチャを通じてリソースを管理できるようにするモデル コンテキスト プロトコル サーバーを構築するための TypeScript ベースのスターター テンプレート。

  1. Table of Contents
    1. Overview
      1. Key Capabilities
      2. Use Cases
    2. Prerequisites
      1. Installation
        1. Configuration
          1. Configuration Options
          2. Example Configuration
        2. Running the Server
          1. Startup Process
          2. Starting the Server
          3. Notes
        3. Testing
          1. Unit Tests
          2. HTTP Transport Test
          3. MCP Inspector Debugging
        4. Code Formatting
          1. Format Code
          2. Check Formatting
        5. Project Structure
          1. Troubleshooting
            1. Contributing
              1. License
                1. Acknowledgments

                  Related MCP Servers

                  • A
                    security
                    F
                    license
                    A
                    quality
                    A starter template for building Model Context Protocol servers that can be integrated with Cursor or Claude Desktop, allowing developers to create custom tools and extensions for AI assistants.
                    Last updated -
                    1
                    28
                    9
                    TypeScript
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A TypeScript implementation of a Model Context Protocol server that provides a frictionless framework for developers to build and deploy AI tools and prompts, focusing on developer experience with zero boilerplate and automatic tool registration.
                    Last updated -
                    6
                    TypeScript
                    MIT License
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.
                    Last updated -
                    67
                    TypeScript
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A Model Context Protocol implementation for managing and serving AI prompts with a TypeScript-based architecture in a monorepo structure.
                    Last updated -
                    28,526,583
                    2
                    TypeScript

                  View all related MCP servers

                  ID: 6l41001l9o