Skip to main content
Glama

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」が発生する場合:

  1. keepaliveIntervalを減らして、キープアライブメッセージをより頻繁に送信します(例:15000ms)

  2. 接続の安定性を高めるために、 usePingEventsが有効になっていることを確認してください。

  3. プロキシサーバーを使用している場合は、プロキシのタイムアウトを確認してください。

設定

  1. 依存関係をインストールします:

npm install
  1. 次の変数を含む.envファイルを作成します。

PORT=4005 API_KEY=your_api_key
  1. プロジェクトをビルドします。

npm run build
  1. サーバーを起動します。

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 dev

APIエンドポイント

  • /health : サーバーの状態とバージョンを返すヘルスチェックエンドポイント

  • /sse : MCP 接続を確立するための SSE エンドポイント (API キーが必要)

  • /messages : クライアント・サーバー間通信のメッセージ処理エンドポイント

MCP構成

MCP をこのサーバーに接続するには、次の構成を追加します。

{ "mcpServers": { "mcp-server": { "url": "http://localhost:4005/sse?API_KEY={{your_api_key_here}}" } } }

定型句の拡張

カスタムツールの追加

MCP サーバーに新しいツールを追加するには、次の手順に従います。

  1. ツールハンドラーを作成します:

    • 新しいツールハンドラーをsrc/tools.tsファイルに追加するか、 src/toolsディレクトリに新しいファイルを作成します。

    • ツールはToolHandlerインターフェースに従う必要があります

  2. ツールを設定します:

    • src/tools.tstoolConfigs配列にツール設定を追加します。

    • ツールの名前、説明、入力スキーマ、ハンドラーを定義します

  3. ツールをエクスポートして登録します:

    • 別のファイルを作成した場合は、ハンドラーをエクスポートして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ファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamsrikanthnani/mcp-boilerplate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server