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