MCP 定型句: モデルコンテキストプロトコルサーバー
このサーバーは、モデルコンテキストプロトコル(MCP)をグローバルなボイラープレートとして実装しています。モデルコンテキストプロトコルを使用して、AIモデルをさまざまなデータソースやツールに接続するための標準化された方法を提供します。
特徴
MCP Server-Sent Events (SSE)トランスポートを実装します
カスタムMCPサーバーを構築するための堅牢な構造を提供します
適切な型定義を持つサンプルツールが含まれています
APIキーによる安全な認証
異なる重大度レベルのログ機能
複数のクライアント接続のセッション管理
SIGINTおよびSIGTERMシグナルの正常なシャットダウン処理
Related MCP server: SourceSync.ai MCP Server
ツール
現在、サーバーには次のサンプル ツールが含まれています。
calculator:基本的な算術演算(加算、減算、乗算、除算)を実行します
独自のカスタム ツールを追加する方法については、 「ボイラープレートの拡張」セクションを参照してください。
構成
サーバー設定はsrc/config.tsに集約されています。これにより、複数のファイルを変更することなく設定を簡単に調整できます。
// Essential configuration options
export const config = {
server: {
name: "mcp-boilerplate",
version: "1.0.0",
port: parseInt(process.env.PORT || "4005"),
host: process.env.HOST || "localhost",
apiKey: process.env.API_KEY || "dev_key",
},
sse: {
// How often to send keepalive messages (in milliseconds)
keepaliveInterval: 30000,
// Whether to send ping events in addition to comments
usePingEvents: true,
// Initial connection message
sendConnectedEvent: true,
},
tools: {
// Number of retries for failed tool executions
maxRetries: 3,
// Delay between retries (in milliseconds)
retryDelay: 1000,
// Whether to send notifications about tool execution status
sendNotifications: true,
},
logging: {
// Default log level
defaultLevel: "debug",
// How often to send log messages (in milliseconds)
logMessageInterval: 10000,
},
};SSEタイムアウトのトラブルシューティング
MCP 接続で「Body timeout error」が発生する場合:
keepaliveIntervalを減らして、キープアライブメッセージをより頻繁に送信します(例:15000ms)接続の安定性を高めるために、
usePingEventsが有効になっていることを確認してください。プロキシサーバーを使用している場合は、プロキシのタイムアウトを確認してください。
設定
依存関係をインストールします:
npm install次の変数を含む
.envファイルを作成します。
PORT=4005
API_KEY=your_api_keyプロジェクトをビルドします。
npm run buildサーバーを起動します。
npm run start:sse発達
# Start in development mode with hot reloading
npm run start
# Start with PM2 for production
npm run start:pm2
# Development mode with nodemon
npm run devAPIエンドポイント
/health: サーバーの状態とバージョンを返すヘルスチェックエンドポイント/sse: MCP 接続を確立するための SSE エンドポイント (API キーが必要)/messages: クライアント・サーバー間通信のメッセージ処理エンドポイント
MCP構成
MCP をこのサーバーに接続するには、次の構成を追加します。
{
"mcpServers": {
"mcp-server": {
"url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}"
}
}
}定型句の拡張
カスタムツールの追加
MCP サーバーに新しいツールを追加するには、次の手順に従います。
ツールハンドラーを作成します:
新しいツールハンドラーを
src/tools.tsファイルに追加するか、src/toolsディレクトリに新しいファイルを作成します。ツールは
ToolHandlerインターフェースに従う必要があります
ツールを設定します:
src/tools.tsのtoolConfigs配列にツール設定を追加します。ツールの名前、説明、入力スキーマ、ハンドラーを定義します
ツールをエクスポートして登録します:
別のファイルを作成した場合は、ハンドラーをエクスポートして
src/tools.tsにインポートします。ツールが
toolConfigs配列に正しく登録されていることを確認してください
例:
// In src/tools.ts (adding directly to the toolConfigs array)
{
name: "myTool",
description: "My tool description",
inputSchema: {
type: "object" as const,
properties: {},
required: [],
},
handler: async () => {
return createSuccessResult({ result: "Tool result" });
},
}エラー処理
サーバーは包括的なエラー処理を実装します。
すべての操作はtry/catchブロックで囲まれています
パラメータと入力の適切な検証
デバッグを容易にするための適切なエラーメッセージ
標準化されたエラーおよび成功応答を作成するためのヘルパー関数
セキュリティに関する考慮事項
すべての接続に対するAPIキー認証
すべてのパラメータの型検証
ハードコードされた機密情報はありません
情報漏洩を防ぐための適切なエラー処理
セッションベースのトランスポート管理
MCPプロトコルの機能
この定型文は、MCP のコア機能をサポートします。
ツール: 適切なパラメータ検証を使用してツールを一覧表示および呼び出します
ログ記録: さまざまな重大度レベル (デバッグ、情報、通知、警告、エラー、重大、アラート、緊急)
サーバー構成: 名前、バージョン、機能
セッション管理
サーバーは以下を通じてクライアント セッションを管理します。
各クライアント接続に固有のセッションID
セッションIDによるアクティブトランスポートの追跡
切断されたセッションの自動クリーンアップ
接続ステータスの追跡
追加リソース
ライセンス
このプロジェクトはMIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.