Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

MCP Gateway

de PanosSaltversión 1.0.4i★ –iSe ejecuta en la nube
Nombre en el registroio.github.PanosSalt/MCP-Gateway

Instalar

Resumen

Descripción del creador (original en inglés)

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

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en la nube
  • Transporte: SSE
  • Categoría: Otros

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

Necesitas

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Funciona en Claude para web, escritorio y móvil:

  1. Abre Settings → Connectors
  2. Presiona Add custom connector
  3. Pega la dirección de abajo y presiona Add
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Add2https://…3
https://your-gateway.example.com/t/your-org/mcp/sse

Ejecuta esto en tu terminal

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

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

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

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

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

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

ChatGPT solo se conecta a servidores en internet:

  1. Abre ChatGPT en la web → Settings → Connectors (Apps)
  2. Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
  3. Pega la dirección de abajo, ponle un nombre y guarda
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Create2https://…3
https://your-gateway.example.com/t/your-org/mcp/sse

Los nombres de los menús pueden variar un poco según el plan y con el tiempo.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub PanosSalt, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    El endpoint responde

    Aún sin revisar; revisamos los endpoints por turnos

  • … Aún sin revisar

    Inicio de sesión con OAuth

    Aún sin revisar; revisamos los endpoints por turnos

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32718 servidores de esta categoría
  • Publicado en el registro más recientemente que el 50% de los otros 32718 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32718 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro MCP Gateway?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (1.0.4) llegó al registro hace 41 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

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

Se ejecuta en la nube★ 211Actualizado anteayer
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

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

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx