Cursor, VS Code, Codex y otros

Cualquier cliente MCP con Streamable HTTP, con OAuth o un token fijo.

Datos de conexión

Transporte Streamable HTTP
Endpoint un ordenador: https://mcp.opsgates.com/c/<id>/mcp — un servidor: https://TU-SERVIDOR/mcp
Autenticación OAuth 2.1 con PKCE y registro dinámico de clientes (descubrimiento en /.well-known/oauth-authorization-server). Los servidores también aceptan un token fijo en Authorization: Bearer <token>

Los ordenadores solo inician sesión con OAuth (tu cuenta de OpsGates). Los ejemplos de abajo usan la URL de un servidor; para un ordenador usa su URL de conector y el inicio de sesión en el navegador.

Crea un token fijo en un servidor para clientes que no pueden abrir un navegador:

sudo opsgate token create cursor
sudo opsgate token list
sudo opsgate token revoke cursor

Los tokens se guardan solo como hash SHA-256; el token se muestra una vez.

Cursor

~/.cursor/mcp.json (todos los proyectos) o .cursor/mcp.json (un proyecto):

{
  "mcpServers": {
    "opsgate": { "url": "https://TU-SERVIDOR/mcp" }
  }
}

Cursor abre la página de acceso de OpsGates la primera vez. Con un token:

{
  "mcpServers": {
    "opsgate": {
      "url": "https://TU-SERVIDOR/mcp",
      "headers": { "Authorization": "Bearer ogt_..." }
    }
  }
}

VS Code

.vscode/mcp.json en tu proyecto, o MCP: Open User Configuration:

{
  "servers": {
    "opsgate": { "type": "http", "url": "https://TU-SERVIDOR/mcp" }
  }
}

Codex CLI

~/.codex/config.toml:

[mcp_servers.opsgate]
url = "https://TU-SERVIDOR/mcp"
bearer_token_env_var = "OPSGATE_TOKEN"
export OPSGATE_TOKEN=ogt_...
codex

Tus propios agentes

Sirve cualquier SDK de MCP. Con el SDK oficial de Python:

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async with streamablehttp_client("https://TU-SERVIDOR/mcp",
                                 headers={"Authorization": "Bearer ogt_..."}) as (r, w, _):
    async with ClientSession(r, w) as s:
        await s.initialize()
        print(await s.call_tool("service_status", {"name": "nginx"}))

Redirecciones de inicio de sesión permitidas

El inicio de sesión solo devuelve códigos a apps conocidas: claude.ai, claude.com, chatgpt.com, vscode.dev, clientes de escritorio locales (localhost, 127.0.0.1) y esquemas de editores (cursor://, vscode://). Para permitir otra app web en un servidor, añade su dominio:

sudo opsgate config set MCP_OAUTH_REDIRECT_HOSTS=claude.ai,claude.com,chatgpt.com,localhost,127.0.0.1,app.ejemplo.com