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

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.

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