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(リポジトリのクローン作成用)
インストール
- リポジトリをクローンします。
- 依存関係をインストールします:これにより、
package.json
で定義されているように、本番環境の依存関係 (例:@modelcontextprotocol/sdk
、express
、axios
) と開発環境の依存関係 (例:typescript
、ts-node
、jest
) の両方がインストールされます。 - MCP 機能のコア依存関係である
@modelcontextprotocol/sdk
パッケージ (バージョン^1.10.1
) がインストールされていることを確認します。
構成
このプロジェクトでは、環境変数とsrc/core/config/
内の2つの主要ファイルによって管理される設定システムを使用しています。設定はConfigService
とruntimeConfig
で定義されており、トランスポートタイプ、ログ記録、外部API統合のカスタマイズが可能です。
設定オプション
- 環境変数(
runtimeConfig.ts
のdotenv
経由で読み込まれます):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
ファイルで環境変数を設定します。
サーバーの実行
サーバーはエントリ ポイントsrc/index.ts
を介して起動され、依存性の注入と構成設定を使用して初期化と起動のプロセスを調整します。
起動プロセス
- 環境設定:
index.ts
、dotenv
を使用して環境変数を読み込み、構成設定 (例:TRANSPORT_TYPE
、HTTP_PORT
) が利用可能であることを確認します。 - 依存関係の初期化:
createDependencies
を使用して、ロガーやConfigService
などの共有依存関係を設定します。 - トランスポート構成: トランスポート (
HttpTransport
またはStdioTransport
) は、TRANSPORT_TYPE
設定に基づいて、runtimeConfig
を介して構成されます。 - サーバーの初期化: 構成されたトランスポートと依存関係を持つ
MCPServer
インスタンスを作成します。 - サーバーの起動: サーバーを非同期的に起動し、致命的なエラーをログに記録して失敗コードで終了することで処理します。
サーバーの起動
- 生産モード:
- TypeScript を JavaScript にコンパイルするプロジェクトをビルドします。これにより、
tsc
が実行され、コンパイルされた JavaScript ファイルを含むdist/
フォルダーが生成されます。 - サーバーを起動します。これにより
node dist/index.js
が実行され、コンパイルされたサーバーが実行されます。 http
の場合、サーバーはhttp://localhost:3000/mcp
をリッスンします (ポートとホストはHTTP_PORT
とHTTP_HOST
で設定可能です)。stdio
の場合、サーバーはコンソールから読み取り、コンソールに書き込みます。
- TypeScript を JavaScript にコンパイルするプロジェクトをビルドします。
- 開発モード:
ts-node
を使用して TypeScript でサーバーを直接実行します。これによりts-node src/index.ts
が実行され、ビルド ステップなしで反復処理が高速化されます。
注記
- サーバーを起動する前に、環境変数または
runtimeConfig
設定が正しく設定されていることを確認してください。 - コンソール出力のログ (
LOG_LEVEL
によって制御) をチェックして、サーバーが正常に起動したことを確認します。
テスト
このプロジェクトには、自動テストと MCP インスペクターを使用してサーバーをテストし、その動作をデバッグし、機能を検証するためのスクリプトがいくつか含まれています。
ユニットテスト
Jest を使用して単体テストを実行し、個々のコンポーネントの機能を検証します。
これにより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
フィールドが含まれます。
- 応答は JSON-RPC 2.0 (
- 有効な場合は応答データとともに成功メッセージを記録します。形式が予期しない場合は受信したデータとともにエラーを記録します。
- エラー処理:
- リクエストの失敗 (ネットワーク エラー、サーバーが実行していないなど) をキャッチし、エラー メッセージとともに記録します。
テストの実行
TRANSPORT_TYPE
が'http'
に設定された状態でサーバーが実行されていることを確認します。- テスト スクリプトを実行します。これにより
ts-node src/scripts/testHttpTransport.ts
が実行されます。
スタートとテストの組み合わせ
1 つのコマンドでサーバーを起動し、HTTP テストを実行するには:
これによりnpm run start & npm run test:http
が実行され、バックグラウンドでサーバーが起動し、HTTP テスト スクリプトがすぐに実行されます。
期待される出力
- 成功例: サーバーが正しく応答した場合、スクリプトは次をログに記録します。
- 失敗ケース (無効な応答形式) : 応答形式が予期しないものである場合、スクリプトは次をログに記録します。
- 失敗ケース (リクエストが失敗) : リクエストが失敗した場合 (例: サーバーが実行されていない)、スクリプトは次をログに記録します。
注記
- このスクリプトは、サーバーが
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 (デフォルト ポート:6274
、MCP_INSPECTOR_PORT
で構成可能) を再試行 (20 回の試行、500 ミリ秒の遅延) してポーリングします。- プラットフォーム固有のブラウザで Web UI を開きます。
- macOS:
open
- Windows:
start
- Linux:
xdg-open
- macOS:
- URL を含む起動概要テーブルを記録します。
- MCP インスペクター UI:
http://localhost:6274
(または設定されたポート) - MCP プロキシ サーバー:
http://localhost:6277
- MCP インスペクター UI:
- エラー処理:
- Web UI がすぐに利用できない場合は再試行します。
- 再試行後もインスペクターの起動に失敗した場合は、エラーをスローして終了します。
- 失敗した場合はインスペクター プロセスを強制終了し、手動で確認または再起動するためのメッセージをログに記録します。
MCPインスペクターの実行
- サーバーがコンパイルされていることを確認します (例:
npm run build
実行してdist/index.js
を生成します)。 - MCP Inspector スクリプトを実行します。これにより
ts-node src/scripts/start-mcp-inspector.ts
が実行されます。
ビルドとインスペクターの統合
プロジェクトをビルドし、MCP インスペクターを 1 つのコマンドで起動するには、次の手順を実行します。
これによりnpm run build && npm run mcp:inspector
実行され、インスペクターを起動する前にプロジェクトがコンパイルされていることが保証されます。
デバッグのヒント
- MCP Inspector UI を使用して、サーバー要求、ツール呼び出し、および応答を監視します。
- インスペクターの起動に失敗した場合は、コンソール出力で起動ログまたはエラーを確認してください。
MCP_INSPECTOR_PORT
別のサービスによって使用されていないことを確認します。
コードのフォーマット
このプロジェクトでは、Prettier を使用して、すべてのファイルにわたって一貫したコード形式を維持します。
フォーマットコード
プロジェクト内のすべてのファイルをフォーマットするには:
これにより、 prettier --write .
が実行され、サポートされているすべてのファイル (例: .ts
、 .js
、 .json
) が自動的にフォーマットされます。
書式設定を確認する
すべてのファイルが Prettier フォーマット ルールに準拠しているかどうかを確認するには:
これにより、 prettier --check .
が実行され、フォーマット規則に準拠していないファイルが変更されずに報告されます。
プロジェクト構造
src/core/config/
configService.ts
: サーバー構成を管理するためのクラスであるConfigService
を実装します。トランスポートタイプ、HTTPサーバー設定、ログレベル、API URL(例:MealDB)、認証資格情報、MCPインスペクタポートなどのデフォルト値を含む環境変数から設定を読み込みます。runtimeConfig.ts
:dotenv
を使用して環境変数を読み込むランタイム設定を定義します。トランスポート設定 (transportType
、 port ) と認証戦略 (authStrategy
、tokenSecret
、username
、password
) を設定します。
src/core/dependencies/
dependencies.ts
:Dependencies
インターフェースを用いた依存性注入を実装し、Winston を使用したlogger
とConfigService
インスタンスを提供しcreateDependencies
。createDependencies 関数はtransportType
に基づいてログトランスポートを動的に設定し(stdio
の場合は stderr、その他の場合は stdout、およびファイル logcombined.log
)、グローバル使用のためのシングルトンlogger
をエクスポートします。
src/core/server/
transports/
http/
server.ts
: Express を用いたステートレス HTTP トランスポートであるHttpTransport
実装します。POSTPOST /mcp
リクエストの処理、オプションの Bearer トークン認証による JSON-RPC メッセージの処理、レスポンスのResponseMap
への保存、そして非同期送信をサポートします。ログ記録と設定は、依存性注入 (DI) されたDependencies
に依存します。stdio/
server.ts
: SDK のStdioServerTransport
を使用したトランスポートであるStdioTransport
を実装します。stdin/stdout 通信の管理、トランスポートの開始と終了、そして依存性注入されたDependencies
によるエラーログ出力を伴うメッセージ送信の処理を行います。baseTransport.ts
: SDK のTransport
インターフェースを拡張するBaseTransport
インターフェースと抽象クラスAbstractTransport
を定義します。トランスポート実装用のメソッド (start
、send
、close
、isRunning
) とイベントハンドラー (onmessage
、onerror
、onclose
) を指定し、HttpTransport
とStdioTransport
に共通の規約を提供します。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
を実装します。ToolFactoryToolFactory
使用して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
インターフェースを定義し、name
、description
、schema
(Zod型)、jsonSchema
、およびJSON-RPCCallToolRequest
を処理するための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
によるログ記録を伴う基本的な算術演算 (add
、multiply
、乗算、除算) を実行する具体的なツールです。
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.ts
のtoolClasses
に有効なツール実装が含まれていることを確認してください。 ToolFactory
ログでインスタンス化エラーを確認し、Dependencies
が適切に挿入されていることを確認します。
- ツールの読み込みに失敗した場合は、
- MCP インスペクターの問題:
- MCP インスペクタの起動に失敗した場合は、
MCP_INSPECTOR_PORT
(デフォルト:6274
) が使用されていないことを確認してください。 - スクリプトを起動する前に
npm run build
を実行してdist/index.js
が存在することを確認します。 - 起動中に、ネットワークの問題や依存関係の不足などのエラーがないかコンソール出力を確認します。
- MCP インスペクタの起動に失敗した場合は、
- HTTP リクエストの問題:
serviceRequest
が失敗した場合は、ConfigService
のauthType
、authEndpoint
、clientId
、clientSecret
、または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
ファイルをご覧ください。
謝辞
@modelcontextprotocol/sdk
を使用して構築- typescript-sdk リポジトリの例からヒントを得ました。
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
AI アシスタントがツールを動的に呼び出し、プロンプトを解釈し、複数のトランスポート方法をサポートするモジュラー アーキテクチャを通じてリソースを管理できるようにするモデル コンテキスト プロトコル サーバーを構築するための TypeScript ベースのスターター テンプレート。
Related MCP Servers
- AsecurityFlicenseAqualityA 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 -169TypeScript
- -securityAlicense-qualityA 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 -6TypeScriptMIT License
- -securityFlicense-qualityA TypeScript framework for building Model Context Protocol (MCP) servers with automatic discovery and loading of tools, resources, and prompts.Last updated -67TypeScript
- -securityFlicense-qualityA Model Context Protocol implementation for managing and serving AI prompts with a TypeScript-based architecture in a monorepo structure.Last updated -28,526,5832TypeScript