Skip to main content
Glama

MCPGate

軽量なMCPゲートウェイ — MCPツールを集約、フィルタリング、監視します。

MCPGateは、MCPクライアント(Claude Desktop、Claude Code、Cursor、VS Code)と複数のMCPサーバーの間に配置されます。単一の統合されたMCPエンドポイントを提供しつつ、どのツールを公開するかをきめ細かく制御できます。

特徴

  • ツール集約 — 複数のMCPサーバーを接続し、すべてのツールを1つのエンドポイント経由で公開

  • ツールフィルタリング — シンプルなYAML設定により、サーバーごとに特定のツールを許可/ブロック

  • ツールプレフィックス — 自動名前空間化(github.create_issueなど)により競合を回避

  • Webダッシュボード — サーバー、ツール、リクエストログを表示するリアルタイムステータスページ

  • デュアルトランスポート — Stdio(Claude Desktop)またはHTTP/SSE(リモートクライアント)

  • 監査ログ — すべてのツール呼び出しをタイミング付きで記録。PostgreSQLによる永続化も可能

  • セルフホスト — Railway、Dockerへのデプロイ、またはローカル実行が可能

クイックスタート

ローカル(stdio — Claude Desktop用)

npx mcp-gate start --config mcpgate.yaml

claude_desktop_config.jsonに追加します:

{
  "mcpServers": {
    "mcpgate": {
      "command": "npx",
      "args": ["-y", "mcp-gate", "start", "--config", "/path/to/mcpgate.yaml"]
    }
  }
}

ローカル(HTTP — ダッシュボード付き)

npx mcp-gate start --config mcpgate.yaml
# Dashboard at http://localhost:3000
# MCP endpoint at http://localhost:3000/mcp

Docker

docker compose up
# Dashboard at http://localhost:3000
# Includes PostgreSQL for persistent audit trail

またはスタンドアロン:

docker run -p 3000:3000 \
  -e MCPGATE_CONFIG=$(cat mcpgate.yaml | base64 -w 0) \
  -e GITHUB_TOKEN=$GITHUB_TOKEN \
  ghcr.io/mprezz/mcpgate

Railway

Deploy on Railway

永続的な監査ログのためにPostgreSQLプラグインを追加してください。MCPGateはDATABASE_URLを自動的に検出します。

設定

mcpgate.yamlを作成します:

gateway:
  name: "my-gateway"
  transport: "stdio" # stdio | http | both
  port: 3000
  toolPrefix: true # prefix tools with server name

servers:
  - name: "github"
    transport: "stdio"
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_TOKEN: "${GITHUB_TOKEN}"
    tools:
      allow:
        - "create_issue"
        - "search_repos"

  - name: "filesystem"
    transport: "stdio"
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
    tools:
      block:
        - "write_file"
        - "delete_file"

logging:
  level: "info"

詳細なリファレンスについてはmcpgate.example.yamlを参照してください。

ツールフィルタリング

各サーバーはallowまたはblockをサポートしています(これらは相互排他的です):

  • allow — これらのツールのみが公開されます(ホワイトリスト)

  • block — これらを除くすべてのツールが公開されます(ブラックリスト)

  • 指定なし — すべてのツールが公開されます

認証

HTTPトランスポートを保護するためにベアラートークンを追加します:

gateway:
  auth:
    token: "${MCPGATE_AUTH_TOKEN}"

認証が設定されている場合:

  • すべてのエンドポイントでAuthorization: Bearer <token>ヘッダーが必要になります

  • /healthは公開されたままになります(Railway/Dockerのヘルスチェック用)

  • MCPクライアントは、トランスポート設定のカスタムヘッダー経由でトークンを渡します

認証が設定されていない場合、すべてのエンドポイントはオープンになります(ローカル/プライベート利用向け)。

環境変数の補間

YAML内で${VAR}または${VAR:-default}を使用して環境変数を参照できます:

env:
  GITHUB_TOKEN: "${GITHUB_TOKEN}"
  API_URL: "${API_URL:-https://api.example.com}"

ダッシュボード

HTTPモードで実行すると、MCPGateはルートURLでWebダッシュボードを提供します:

  • / — アップストリームサーバー、ツール、リクエストログを表示するステータスページ

  • /api/status — プログラムアクセス用のJSON API

  • /health — ヘルスチェックエンドポイント(Railway/Docker用)

  • /mcp — MCPプロトコルエンドポイント(ストリーミング可能なHTTP)

ストレージ

MCPGateは、すべてのツール呼び出しをタイミングおよびエラー情報とともに記録します。

  • デフォルト — インメモリ(設定不要、再起動時に消失)

  • PostgreSQLDATABASE_URL環境変数を設定(テーブルは自動的に作成されます)

# Local development with Docker Compose
docker compose up postgres -d
export DATABASE_URL=postgresql://mcpgate:mcpgate@localhost:5432/mcpgate
npx mcp-gate start --config mcpgate.yaml

環境変数

変数

必須

デフォルト

説明

PORT

いいえ

3000

HTTPポート(Railwayはこれを自動設定します)

MCPGATE_CONFIG

いいえ

Base64エンコードされたYAML設定(Railway/Docker用)

DATABASE_URL

いいえ

PostgreSQL接続文字列(永続的な監査ログを有効化)

LOG_LEVEL

いいえ

info

debug / info / warn / error

MCPGATE_AUTH_TOKEN

いいえ

HTTP認証用ベアラートークン(YAML内で${MCPGATE_AUTH_TOKEN}として参照)

開発

git clone https://github.com/mprezz/mcpgate.git
cd mcpgate
npm install

npm run dev          # development with hot reload
npm run build        # compile TypeScript
npm run test         # run tests (vitest)
npm run lint         # eslint
npm run typecheck    # tsc --noEmit

アーキテクチャ

Client (Claude, Cursor)
    │
    ▼ stdio or HTTP/SSE
┌──────────────────────────────┐
│         MCPGate              │
│                              │
│  ┌─────────────────────┐     │
│  │   Tool Registry     │     │  ← filters + namespaces tools
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │   Tool Router       │     │  ← routes calls to correct server
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │  Upstream Manager   │     │  ← manages server connections
│  └─────────────────────┘     │
│  ┌─────────────────────┐     │
│  │   Storage           │     │  ← memory or PostgreSQL
│  └─────────────────────┘     │
└──────────────────────────────┘
    │           │           │
    ▼           ▼           ▼
 Server A    Server B    Server C
 (GitHub)  (Filesystem)  (Custom)

ライセンス

Apache 2.0 — LICENSEを参照

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/martin-santiago/mcpgate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server