プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

MCP Gateway

作者:PanosSaltバージョン 1.0.4i★ –iクラウドで動く
レジストリ名io.github.PanosSalt/MCP-Gateway

インストール

概要

作者による説明(英語の原文)

Multi-tenant MCP platform with OAuth 2.1, Entra SSO, RBAC and audit logging.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: SSE
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://your-gateway.example.com/t/your-org/mcp/sse

ターミナルでこれを実行します

claude mcp add --transport sse gateway https://your-gateway.example.com/t/your-org/mcp/sse

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "gateway": {
      "url": "https://your-gateway.example.com/t/your-org/mcp/sse"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "gateway": {
      "type": "sse",
      "url": "https://your-gateway.example.com/t/your-org/mcp/sse"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://your-gateway.example.com/t/your-org/mcp/sse

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント PanosSalt で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    エンドポイントが応答する

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    OAuthでサインイン

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32718件のうち0%よりスターが多い
  • このカテゴリのほかの32718件のうち50%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32718件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

MCP Gatewayは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.0.4)がレジストリに届いたのは41 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211一昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

MCP Gateway

The production platform for MCP tools.

Claude Desktop can connect to your internal tools — databases, filesystems, APIs, anything — through a single authenticated endpoint. You control who can use which tools, every action is logged, and no raw credentials ever leave your server.

Built-in tools: SQL query (Postgres, MySQL, SQLite, MSSQL), filesystem access. Custom tools: plug in anything that implements the MCP tool interface.

[See it in action](docs/media/local_demo.mp4) — short demo of Claude Desktop querying a database through MCP Gateway.

Table of Contents

  • Overview
  • Features
  • Architecture
  • Quick Start
  • Configuration
  • Authentication
  • API Reference
  • MCP Integration
  • Role-Based Access Control
  • Entra ID / SSO
  • Development
  • Troubleshooting
  • Security
  • Additional Documentation

Overview

MCP Gateway sits between AI assistants and your databases. It:

  1. Authenticates users via password login, Microsoft Entra ID (Azure AD), or API keys
  2. Enforces role-based access control (viewer / analyst / admin)
  3. Exposes databases as MCP tools that AI assistants can discover and call
  4. Translates natural language questions into SQL via Claude, executes queries, and summarizes results
  5. Logs all activity to a structured audit trail
Claude Desktop / mcp-remote

│ │ MCP over SSE (OAuth 2.1 + PKCE) ▼ ┌─────────────────────────────────────────────────────────┐ │ MCP Gateway │ │ │ │ ┌──────────┐ ┌──────────┐ ┌───────────────────────┐ │ │ │ Auth / │ │ Admin │ │ MCP SSE Endpoint │ │ │ │ OAuth │ │ UI │ │ /t/{slug}/mcp/sse │ │ │ └──────────┘ └──────────┘ └───────────────────────┘ │ │ │ │ │ ┌──────────────────────────────────────┐│ │ │ │ Tool Providers ││ │ │ │ sql.py → get_schema / execute_sql ││ │ │ └──────────────────────────────────────┘│ │ └─────────────────────────────────────────┼───────────────┘ │ Decrypted DSN ┌─────────────────────┼────────────────┐ │ Your Databases │ │ │ Postgres MySQL MSSQL SQLite │ └──────────────────────────────────── ┘


What you get out of the box

For your organisation

  • One URL for Claude Desktop — users authenticate once, access everything they're allowed
  • Microsoft Entra ID SSO — roles assigned automatically from Azure AD groups
  • Full audit trail — every tool call, every query, every login, who did what and when

For your tools

  • Drop any MCP tool into the gateway and it inherits auth, RBAC, and logging automatically
  • Per-tool role overrides — restrict SQL execution to analysts, filesystem writes to admins
  • Bundled: SQL tools (4 databases), filesystem tools (read, write, search, tree)

For your security team

  • No credentials on employee machines
  • Tenant isolation — org A cannot see org B's tools or data
  • API keys for CI/CD, OAuth 2.1 + PKCE for human users
Supported Databases
DatabaseDriverDSN Format
PostgreSQLpsycopg2postgresql://user:pass@host/db
MySQL / MariaDBPyMySQLmysql+pymysql://user:pass@host/db
Microsoft SQL Serverpymssqlmssql+pymssql://user:pass@host/db
SQLiteBuilt-insqlite:///path/to/file.db
Filesystem Tools
  • Sandboxed file read/write/search exposed as MCP tools
  • Enabled via FILESYSTEM_ALLOWED_DIRS environment variable
  • Read operations (analyst+): fs_read_file, fs_list_directory, fs_directory_tree, fs_search_files, fs_get_file_info
  • Write operations (admin): fs_write_file, fs_create_directory, fs_move_file
Admin UI
  • Web interface served at /admin/
  • Manage connections, users, SSO config, API keys, and tool roles
  • View audit logs, generated SQL, and query results

Architecture

Technology Stack
LayerTechnologyVersion
API FrameworkFastAPI + Starlette0.136.1 / 1.3.1
ASGI ServerUvicorn0.34.0
ValidationPydantic + pydantic-settings2.12.5 / 2.7.1
ORMSQLAlchemy2.0.30
MigrationsAlembic1.13.1
Auth / JWTPyJWT + bcrypt2.14.0 / 4.0.1
Encryptioncryptography (Fernet)50.0.0
LLMAnthropic SDK0.42.0
MCP Protocolmcp1.28.1
SQL Validationsqlglot25.1.0
Rate Limitingslowapi0.1.9
HTTP Clienthttpx0.28.1
DB Driverspsycopg2-binary / PyMySQL / pymssql2.9.10 / 1.1.1 / 2.3.1
FrontendReact 18 + TypeScript + Vite—

Dev tooling (requirements-dev.txt): pytest, pytest-asyncio, ruff, mypy. The pinned versions above are generated from requirements.txt — update both together.

Project Structure
app/

├── main.py # FastAPI app setup, middleware, routing ├── config.py # Environment config (Pydantic Settings) ├── database.py # SQLAlchemy engine + session factory ├── api/ │ ├── auth.py # POST /auth/login │ ├── auth_entra.py # Entra SSO (legacy admin UI paths) │ ├── oauth.py # OAuth 2.1 endpoints (/t/{slug}/oauth/*) │ ├── connections.py # DB connection CRUD │ ├── query.py # Natural language query endpoint │ ├── tenants.py # Tenant + user management │ ├── tools.py # Tool listing + role overrides │ ├── mcp_sse.py # MCP SSE transport │ ├── api_keys.py # API key management │ └── audit_logs.py # GET /audit-logs/ (admin) ├── core/ │ ├── auth.py # JWT creation/validation, password hashing │ ├── dependencies.py # FastAPI dependency injection │ ├── rbac.py # Role hierarchy helpers │ ├── security.py # Fernet encrypt/decrypt │ ├── api_keys.py # API key generation + hashing │ ├── limiter.py # slowapi rate limiter setup │ └── log_filter.py # Health-check log noise filter ├── constants.py # Non-tunable application-wide constants (pagination caps, etc.) ├── models/init.py # All SQLAlchemy ORM models ├── schemas/init.py # All Pydantic request/response schemas ├── services/ │ ├── entra.py # Microsoft Graph API client │ ├── llm.py # Anthropic API (SQL gen + summarization) │ ├── mcp_client.py # Direct SQLAlchemy schema introspection + query execution │ └── audit.py # Audit log writer └── tools/ ├── init.py # Tool provider framework + registry ├── sql.py # DB schema + execute_sql tools ├── example.py # Example custom tools └── filesystem.py # Sandboxed file read/write/search tools

app/static/ # Built admin UI, served at /admin/ (generated by the

frontend build; not edited by hand)

frontend/src/ ├── main.tsx # Vite entry point ├── App.tsx # Root component, auth context, tab routing ├── api.ts # API client, token management ├── types.ts # TypeScript types (mirrors Pydantic schemas) ├── constants.ts # Frontend constants (timeouts, retry config) ├── app.css # Global styles ├── hooks/ │ └── useForm.ts # Shared form state helper └── components/ ├── Login.tsx # Sign-in form ├── Setup.tsx # Tenant registration ├── Dashboard.tsx # Tenant info + role display ├── Connections.tsx # DB connection management ├── ConnectionCreateForm.tsx # Add-connection form ├── ConnectionEditRow.tsx # Inline connection editor ├── Query.tsx # Natural language query UI ├── Users.tsx # User management (admin) ├── SsoConfig.tsx # Entra ID configuration (admin) ├── Tools.tsx # Tool browser + role overrides ├── ToolGroup.tsx # Grouped tool listing ├── ToolRoleOverride.tsx # Per-tool role control ├── ApiKeys.tsx # API key management ├── AuditLog.tsx # Filterable audit log viewer (admin) ├── AuditLogFilters.tsx # Audit log filter controls ├── AuditLogDetail.tsx # Single audit entry detail ├── ConfirmModal.tsx # Reusable confirmation dialog └── ErrorBoundary.tsx # Top-level error boundary

alembic/versions/ # Database migrations docs/ # Guides (OAuth flow, deployment, audit logging, …) tests/ # pytest suite (SQLite in-memory, no services needed)

Database Schema
Tenants ─┬─► Users ──────► APIKeys

├─► APIKeys (also a direct tenant_id FK, not only via Users) ├─► DBConnections ├─► TenantEntraConfig ├─► AuditLogs (tenant_id and user_id both nullable) ├─► OAuthAuthorizationCodes ├─► OAuthRefreshTokens └─► ToolRoleOverrides

OAuthStates (no tenant_id FK — holds a plain tenant_slug string, since the row is created before the tenant is resolved)


Quick Start

Prerequisites
  • Docker and Docker Compose
  • An Anthropic API key (for the /query/ endpoint; not needed for raw MCP tool access)
1. Clone and configure
git clone <repo-url>

cd MCP-Gateway cp .env.example .env

Edit .env:

# Required — generate unique values

SECRET_KEY= ENCRYPTION_KEY= POSTGRES_PASSWORD=

Required for natural language query

ANTHROPIC_API_KEY=sk-ant-...

Update to your server's public URL in production

BASE_URL=http://localhost:8000

Generate secure random values:

# SECRET_KEY

python3 -c "import secrets; print(secrets.token_hex(32))"

ENCRYPTION_KEY (min 32 chars; full key consumed via BLAKE2b derivation)

python3 -c "import secrets; print(secrets.token_hex(32))"

2. Start the stack
docker compose up -d

Services started:

  • api on port 8000 (FastAPI + admin UI)
  • db on port 5432 (PostgreSQL, internal only)
3. Register your first tenant
curl -s -X POST http://localhost:8000/tenants/ \

-H "Content-Type: application/json" \ -d '{ "name": "My Organization", "slug": "my-org", "admin_email": "admin@example.com", "admin_password": "SuperSecret123!" }' | jq

The slug becomes part of your MCP URL: http://localhost:8000/t/my-org/mcp/sse

4. Open the admin UI

Navigate to http://localhost:8000/admin/ and sign in with your admin credentials.

5. Add a database connection

In the admin UI → Connections → Create connection, or via API:

TOKEN=$(curl -s -X POST http://localhost:8000/auth/login \

-H "Content-Type: application/json" \ -d '{"email":"admin@example.com","password":"SuperSecret123!"}' \ | jq -r .access_token)

curl -s -X POST http://localhost:8000/connections/ \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Production DB", "db_type": "postgres", "connection_string": "postgresql://user:pass@host/mydb", "min_role": "viewer" }' | jq

6. Connect Claude Desktop

Add to your Claude Desktop MCP config (`~/Li

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く