mcpField
M
MCP Server Template

MCP Server Template

ローカル
github.com/antoniodevivo開発ツール174 週間前に更新

MCP Server Template について

Express.js と TypeScript を使った MCP サーバーのテンプレートです。ノート管理アプリを開発する人向けで、SSE 通信と入力検証付きのノートツールを備えています。

主な機能

  1. 01Express.js と TypeScript のサーバー
  2. 02SSE 通信
  3. 03ノートの作成、取得、編集、削除
  4. 04Zod による入力検証
  5. 05Docker 対応

活用シーン

  1. 01ノート管理用 MCP サーバーの構築
  2. 02SSE による MCP 対応クライアントとの接続

MCP 対応

MCP を実装し、SSE エンドポイントを MCP クライアントに提供します。ツールを通じてノートの追加、更新、取得、一覧表示、削除を行えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"template-antoniodevivo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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(任意)

インストール

  1. リポジトリをクローンします。
git clone https://github.com/yourusername/mcp-template.git
cd mcp-template
  1. 依存関係をインストールします。
npm install
  1. プロジェクトをビルドします。
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 - 更新するノートの ID
      • noteTitle: 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。