mcp-gateway

MCP Gatewayは、Kubernetes環境におけるModel Context Protocol(MCP)サーバーのためのリバースプロキシおよび管理レイヤーです。このプロジェクトは、セッションアフィニティを持つトラフィックのルーティング、MCPサーバーのライフサイクル管理、エンタープライズ向けの統合ポイントを提供します。特に、テレメトリーやアクセス制御、可観測性を備えた機能が特徴です。

GitHubスター

180

ユーザー評価

未評価

お気に入り

0

閲覧数

36

フォーク

19

イシュー

3

インストール方法
難易度
中級
推定所要時間
10-20
必要な環境
.NET SDK 6.0以上
Kubernetes 1.18以上

インストール方法

インストール方法

前提条件

必要なソフトウェアとバージョンを明記してください。
.NET SDK: 6.0以上
Kubernetes: 1.18以上

インストール手順

1. リポジトリのクローン

bash
git clone https://github.com/microsoft/mcp-gateway.git
cd mcp-gateway

2. 依存関係の復元

bash
dotnet restore

3. アプリケーションのビルド

bash
dotnet build

4. アプリケーションの起動

bash
dotnet run

トラブルシューティング

よくある問題

問題: アプリケーションが起動しない 解決策: .NET SDKのバージョンを確認し、依存関係を再インストールしてください。 問題: Kubernetesクラスターに接続できない 解決策: Kubernetesの設定ファイルを確認し、正しいコンテキストが設定されていることを確認してください。

設定方法

設定方法

基本設定

MCP Gateway設定

appsettings.jsonを編集してMCPサーバーの設定を追加:
json
{
  "MCPServers": [
    {
      "Name": "example-server",
      "Url": "http://localhost:5000"
    }
  ]
}

環境変数

必要に応じて以下の環境変数を設定:
bash
export MCP_SERVER_URL="http://localhost:5000"
export LOG_LEVEL="info"

詳細設定

セキュリティ設定

APIキーは環境変数または安全な設定ファイルに保存
ファイルアクセス権限の適切な設定

パフォーマンス調整

タイムアウト値の設定
同時実行数の制限

設定例

基本的な設定

json
{
  "MCPServers": [
    {
      "Name": "my-mcp",
      "Url": "http://my-mcp-server:5000"
    }
  ]
}

高度な設定

json
{
  "MCPServers": [
    {
      "Name": "advanced-mcp",
      "Url": "http://advanced-mcp-server:5000",
      "Timeout": 30,
      "Retries": 3
    }
  ]
}

使用例

使用例

基本的な使用方法

MCP Gatewayの基本的な使用方法を以下に示します:

MCPサーバーのデプロイ

bash
curl -X POST http://localhost:5000/adapters -H "Content-Type: application/json" -d '{"name":"example-server","url":"http://localhost:5000"}'

MCPサーバーの状態確認

bash
curl -X GET http://localhost:5000/adapters/example-server/status

MCPサーバーのログ取得

bash
curl -X GET http://localhost:5000/adapters/example-server/logs

プログラムでの使用

csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        var response = await client.GetStringAsync("http://localhost:5000/adapters/example-server");
        Console.WriteLine(response);
    }
}

使用ケース

Kubernetes環境でのMCPサーバーのデプロイと管理
セッションに基づいたデータストリーミングの実装
MCPサーバーの状態監視とログ取得
複数のMCPサーバー間でのトラフィックの分散
エンタープライズアプリケーションにおけるアクセス制御の実装