mcpField
M
MCP Server Runner

MCP Server Runner

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

MCP Server Runner について

MCP Server Runner は、Model Context Protocol(MCP)サーバーを実行し、WebSocket 接続経由で利用できるようにするサーバーです。MCP サーバーを Web アプリケーションやネットワーク接続されたクライアントから利用したい開発者向けです。現在は開発中のため、API が変更される可能性があります。

主な機能

  1. 01WebSocket 経由での MCP サーバーへのアクセス
  2. 02MCP サーバープロセスの起動と管理
  3. 03クライアントとサーバー間の双方向メッセージ転送
  4. 04グレースフルシャットダウンとエラーログ
  5. 05JSON 設定による複数サーバー定義
  6. 06Docker によるデプロイ対応

活用シーン

  1. 01ローカルの MCP サーバーを Web アプリケーションに接続
  2. 02ネットワーク上のクライアントから MCP サーバーを利用
  3. 03コンテナ内での MCP サーバーのデプロイ

MCP 対応

WebSocket クライアントと MCP サーバー実装の間を橋渡しし、MCP サーバープロセスを起動して双方向にメッセージを転送します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

MCP Server Runner

Note:このプロジェクトは現在、活発に開発中であり、WIP(作業中)の状態です。機能や API は大幅に変更される可能性があります。

Model Context Protocol(MCP)サーバーを実行するための WebSocket サーバー実装です。このアプリケーションにより、WebSocket 接続を介して MCP サーバーにアクセスでき、Web アプリケーションやその他のネットワーク対応クライアントとの統合が容易になります。

開発状況

  • 🚧 作業中:このソフトウェアは活発に開発されています
  • ⚠️ API の安定性:API や機能は予告なく変更される可能性があります
  • 🧪 テスト:現在、テストと改善を進めています
  • 📝 ドキュメント:ドキュメントは継続的に更新されています

概要

MCP Server Runner は、WebSocket クライアントと MCP サーバー実装の間をつなぐブリッジとして機能します。次のことを行います。

  • MCP サーバーのプロセスを起動します
  • WebSocket 接続を管理します
  • クライアントと MCP サーバー間の双方向通信を処理します
  • グレースフルシャットダウンとエラー処理に対応します

機能

  • 単一クライアントに対応した WebSocket サーバー実装
  • MCP サーバーインスタンスのプロセス管理
  • クライアントとサーバー間の双方向メッセージ通信
  • グレースフルシャットダウン処理
  • 包括的なエラーログ記録
  • クロスプラットフォーム対応(Unix/Windows)

前提条件

  • Rust 1.70 以降
  • MCP サーバー実装の実行可能ファイル

設定

環境変数

環境変数を使ってアプリケーションを設定できます。

PROGRAM=        # Path to the MCP server executable (required if no config file)
ARGS=           # Comma-separated list of arguments for the MCP server
HOST=0.0.0.0    # Host address to bind to (default: 0.0.0.0)
PORT=8080       # Port to listen on (default: 8080)
CONFIG_FILE=    # Path to JSON configuration file

追加の環境変数は MCP サーバープロセスに引き継がれます。

JSON 設定

または、JSON 設定ファイルを指定できます。

{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/workspace"
      ]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
      }
    }
  },
  "default_server": "filesystem",
  "host": "0.0.0.0",
  "port": 8080
}

設定ファイルは、次の 2 つの方法で指定できます。

  1. コマンドライン引数として指定:mcp-server-runner config.json
  2. CONFIG_FILE 環境変数を使って指定:CONFIG_FILE=config.json mcp-server-runner

JSON 設定では、複数のサーバー設定を定義し、そのうち 1 つをデフォルトとして選択できます。

設定の優先順位
  1. コマンドラインで指定された設定ファイル
  2. CONFIG_FILE 環境変数
  3. 環境変数(PROGRAM、ARGS など)
  4. デフォルト値

使用方法

  1. 環境変数を使用する場合:

    export PROGRAM=npx
    export ARGS=-y,@modelcontextprotocol/server-github
    export PORT=8080
    export GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_***
    cargo run
    
  2. 設定ファイルを使用する場合:

    # Either specify the config file as an argument
    cargo run config.json
    
    # Or use the CONFIG_FILE environment variable
    CONFIG_FILE=config.json cargo run
    
  3. WebSocket サーバーに接続します:

    const ws = new WebSocket("ws://localhost:8080");
    

Docker 対応

コンテナ環境へのデプロイ用に、Dockerfile と docker-compose.yml が用意されています。

docker-compose up --build

開発

プロジェクトをビルドします。

cargo build

テストを実行します。

cargo test

デバッグログを有効にして実行します。

RUST_LOG=debug cargo run

アーキテクチャ

このアプリケーションはモジュール型アーキテクチャを採用しています。

  • main.rs:アプリケーションのエントリーポイントとサーバーのセットアップ
  • config/:設定の読み込みと管理
  • process/:プロセス管理と I/O 処理
  • websocket/:WebSocket 接続の管理
  • state.rs:グローバル状態の管理
  • shutdown.rs:グレースフルシャットダウン処理

エラー処理

  • MCP サーバーの標準エラー出力はログに記録されますが、クライアントには転送されません
  • WebSocket 接続エラーは適切に処理されます
  • プロセスエラーは詳細情報とともにログに記録されます

制限事項

  • 同時に接続できるクライアントは 1 つのみです
  • WebSocket SSL/TLS には対応していません(安全な接続にはリバースプロキシを使用してください)
  • 認証機能は組み込まれていません

コントリビューション

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します

ライセンス

このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルを参照してください。

参考資料

コメント

MCP は初めてですか?

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

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