mcpField
M
MCP Server (Model Context Protocol)

MCP Server (Model Context Protocol)

ローカル
github.com/Maf38メモリ・ナレッジ079 週間前に更新

MCP Server (Model Context Protocol) について

SQLiteにコンテキストを保存し、SSEでリアルタイム通信するMCPコンテキスト管理サーバーです。セッションをまたいでコンテキストを保持したいMCPクライアント向けに、REST APIも提供します。

主な機能

  1. 01SQLiteによるコンテキスト永続化
  2. 02SSEリアルタイム通信
  3. 03RESTによるコンテキスト操作
  4. 04コンテキストの一括操作
  5. 05ヘルス状態と機能の照会

活用シーン

  1. 01セッション間でのコンテキスト保持
  2. 02コンテキストの一括書き込みや更新
  3. 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
  1. Apps に移動します
  2. 「MCP Server」を検索します
  3. 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/ フォルダー内のドキュメントを参照してください。

コメント

MCP は初めてですか?

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

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