MCP Server Template について
Express.js と TypeScript を使った MCP サーバーのテンプレートです。ノート管理アプリを開発する人向けで、SSE 通信と入力検証付きのノートツールを備えています。
主な機能
- 01Express.js と TypeScript のサーバー
- 02SSE 通信
- 03ノートの作成、取得、編集、削除
- 04Zod による入力検証
- 05Docker 対応
活用シーン
- 01ノート管理用 MCP サーバーの構築
- 02SSE による MCP 対応クライアントとの接続
MCP 対応
MCP を実装し、SSE エンドポイントを MCP クライアントに提供します。ツールを通じてノートの追加、更新、取得、一覧表示、削除を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーテンプレート
Express.js と TypeScript で構築された、軽量で拡張性の高い MCP(Model Context Protocol)サーバー実装です。このテンプレートは、Server-Sent Events(SSE)を通じて MCP 対応クライアントと通信できる、AI を活用したアプリケーションを構築するための確かな基盤を提供します。
特長
- TypeScript に対応した Express.js サーバー
- リアルタイム通信のための Server-Sent Events(SSE)
- MCP プロトコルの実装
- メモ管理システム
- Docker のサポート
- Zod を使用した入力検証
前提条件
- Node.js 22 以降
- npm(Node Package Manager)
- Docker(任意)
インストール
- リポジトリをクローンします。
git clone https://github.com/yourusername/mcp-template.git
cd mcp-template
- 依存関係をインストールします。
npm install
- プロジェクトをビルドします。
npm run build
サーバーの起動
ローカル開発
npm start
サーバーはデフォルトでポート 3123 で起動します。
Docker を使用する場合
Docker イメージをビルドします。
docker build -t mcp-template .
コンテナを実行します。
docker run -p 3123:3123 mcp-template
API エンドポイント
MCP エンドポイント
GET /mcp/sse- MCP 通信のための SSE 接続を確立します
利用可能なツール
-
add-note- ノートストアに新しいノートを追加します- パラメーター:
noteTitle: string - ノートのタイトルnoteContent: string - ノートの内容noteTags: string[](任意)- ノートのタグ
- パラメーター:
-
update-note- 既存のノートを更新します- パラメーター:
noteId: string - 更新するノートの IDnoteTitle: string - 新しいノートのタイトルnoteContent: string - 新しいノートの内容noteTags: string[](任意)- 新しいノートのタグ
- パラメーター:
-
get-note- 特定のノートを取得します- パラメーター:
noteId: string - 取得するノートの ID
- パラメーター:
-
get-all-notes- ストア内のすべてのノートを取得します- パラメーター:なし
-
delete-note- ストアからノートを削除します- パラメーター:
noteId: string - 削除するノートの ID
- パラメーター:
入力検証
サーバーは、実行時の型チェックと入力検証に Zod を使用します。すべての受信リクエストは、処理前に定義済みのスキーマに照らして検証されます。これにより、アプリケーション全体で型安全性とデータの整合性が確保されます。
環境変数
PORT- サーバーのポート(デフォルト:3123)LOG_LEVEL- ログレベル(デフォルト:"info")DOCKER- Docker で実行する場合は "true" に設定しますDEV- 開発モードでは "true" に設定します
開発
プロジェクト構成
src/
├── config.ts # Configuration settings
├── index.ts # Application entry point
├── logger.ts # Logging configuration
├── note-store.ts # Note management system
└── server/
└── routers/
└── mcp.ts # MCP router implementation
ビルド
npm run build
Lint
npm run lint
ライセンス
MIT
作者
Antonio De Vivo
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。