MCP Server (Model Context Protocol) について
SQLiteにコンテキストを保存し、SSEでリアルタイム通信するMCPコンテキスト管理サーバーです。セッションをまたいでコンテキストを保持したいMCPクライアント向けに、REST APIも提供します。
主な機能
- 01SQLiteによるコンテキスト永続化
- 02SSEリアルタイム通信
- 03RESTによるコンテキスト操作
- 04コンテキストの一括操作
- 05ヘルス状態と機能の照会
活用シーン
- 01セッション間でのコンテキスト保持
- 02コンテキストの一括書き込みや更新
- 03REST経由でのコンテキスト取得や削除
MCP 対応
MCPを実装し、SSEでリアルタイム更新を受信し、JSON-RPC 2.0メッセージでコンテキスト操作を処理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー(Model Context Protocol)
MCP(Model Context Protocol)に対応したコンテキスト管理サーバーです。永続化には SQLite、リアルタイム通信には SSE(Server-Sent Events)を使用します。
現在のバージョン:2.0.0
🚀 インストール
Docker(コマンド 1 つ)
docker run -d --name mcp-server --restart unless-stopped -p 3000:3000 -v "$(pwd)/data":/app/data -e NODE_ENV=docker -e PORT=3000 -e DB_PATH=/app/data/context.db -e LOG_LEVEL=info --memory=512m --cpus=1 --health-cmd="wget -qO- http://localhost:3000/health || exit 1" --health-interval=30s --health-timeout=10s --health-retries=3 --health-start-period=10s --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 maf38/mcp-server:2.0.0
Docker Compose(高度なインストール)
version: '3'
services:
mcp-server:
image: maf38/mcp-server:2.0.0
container_name: mcp-server
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- /path/to/data:/app/data
environment:
NODE_ENV: docker
PORT: 3000
DB_PATH: /app/data/context.db
LOG_LEVEL: info
deploy:
resources:
limits:
memory: 512M
cpus: '1.0'
⚠️ /path/to/data は、データベースを保存する実際のパスに置き換えてください。
Unraid
- Apps に移動します
- 「MCP Server」を検索します
- Install をクリックします
🔧 設定
環境変数
必須
PORT:サーバーのリッスンポート(デフォルト:3000)DB_PATH:データベースのパス(デフォルト:/app/data/context.db)
ロギング
NODE_ENV:実行環境(ログファイルを無効にするには「docker」を指定します)LOG_LEVEL:ログレベル(error、warn、info、http、debug)(デフォルト:info)
📖 API
MCP ルート
SSE(Server-Sent Events)ルート
GET /sse
リアルタイム更新を受信するための SSE 接続を確立します。
MCP メッセージ
POST /message
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "context/update",
"params": {
"key": "string",
"value": "string",
"metadata": {
"type": "string",
"timestamp": "string",
"source": "string"
}
}
}
REST ルート
コンテキストの保存/更新
POST /context
Content-Type: application/json
{
"key": "string",
"value": "string",
"metadata": {
"type": "string",
"timestamp": "string",
"source": "string"
}
}
コンテキストの取得
GET /context/:key
バッチ操作
POST /context/batch
Content-Type: application/json
[
{
"key": "string",
"value": "string",
"metadata": {
"type": "string",
"timestamp": "string",
"source": "string"
}
}
]
コンテキストの削除
DELETE /context/:key
システムルート
サーバーの状態を確認
GET /health
サーバーの機能を取得
GET /capabilities
🔍 ロギング
Docker 環境
- ログは stdout/stderr に出力されます
docker logs mcp-serverから確認できます- ログレベルは
LOG_LEVELで設定できます
標準環境
- ログは
logs/フォルダーに保存されます - ログファイルは毎日ローテーションされます
- 古いログは自動的に圧縮されます
- 14 日間保持されます
- ファイルサイズの上限は 20MB です
ログ形式
YYYY-MM-DD HH:mm:ss.SSS [LEVEL] [CONTEXT] Message {Metadata}
🔒 データの永続化
データは DB_PATH で指定した場所にある SQLite に保存されます。
Docker と Unraid では、/app/data にボリュームをマウントしてください。
🛠️ 開発
前提条件
- Node.js >= 18
- npm
インストール
npm install
npm run build
npm start
テスト
npm test
📦 Docker イメージの公開
イメージは Docker Hub で公開されています:
- 安定版(2.0.0):
maf38/mcp-server:2.0.0 - 最新版:
maf38/mcp-server:latest
🔄 GitHub Copilot との統合
このサーバーは、GitHub Copilot がセッション間でコンテキストを保持できるようにする MCP(Model Context Protocol)を実装しています。次の機能があります:
- SSE による双方向通信
- JSON-RPC 2.0 メッセージ形式
- SQLite による永続化
- メタデータのサポート
- バッチ操作
MCP の詳細については、docs/ フォルダー内のドキュメントを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。