Conectar un cliente de IA (MCP)
En el panel de administración: System › Settings › API & AI agents (
/agent/keys), la pestaña Connect an AI muestra la URL del endpoint y un fragmento listo para copiar para cada cliente, con la clave que acaba de crear.
Qué hace
El Model Context Protocol (MCP) permite que un cliente de IA invoque herramientas. Su panel ofrece un servidor MCP de administración en https://cloud.example.com/mcp/admin. Conecte su propia herramienta de IA a él y pregunte en lenguaje natural: "¿qué falta por configurar?", "añadir mi clúster de Proxmox", "crear planes con un 40% de margen". El cliente invoca las herramientas de administración indicadas a continuación; el panel comprueba los scopes, le solicita confirmación antes de cualquier acción de riesgo y registra cada llamada.
Dos endpoints MCP
/mcp es el endpoint de clientes (claves API de clientes, vk_; consulte MCP server). /mcp/admin es el endpoint de administración descrito aquí (claves de administración ak_ u OAuth). Ambos nunca se mezclan: las herramientas de administración no son visibles en /mcp y /mcp/admin solo acepta claves de administración.
Requisitos
| Elemento | Requisito |
|---|---|
| Endpoint | https://cloud.example.com/mcp/admin en el propio dominio de su panel. Copie la URL exacta desde la pestaña Connect an AI. La misma página indica una URL local (http://127.0.0.1:<port>/mcp/admin) para las herramientas que se ejecutan en el propio servidor. |
| Credenciales | Una clave API de administración (ak_...) con los scopes deseados, o inicio de sesión mediante OAuth para conectores web (OAuth connectors). |
| Cliente | Cualquier cliente MCP compatible con el transporte Streamable HTTP y un encabezado Authorization personalizado. Versiones de protocolo 2025-11-25, 2025-06-18 y 2025-03-26. |
| Red | Si coloca su propio proxy inverso delante del panel, este debe reenviar /mcp/admin. Los conectores web (claude.ai, ChatGPT) se conectan desde los servidores del proveedor, por lo que la URL debe ser accesible desde internet. |
Preparar la infraestructura
No hay nada que instalar en el servidor. Si restringe la clave por IP, asegúrese de que la dirección desde la que se conecta su cliente esté dentro del rango. Pruebe primero la conectividad:
bash
curl -i -X POST https://cloud.example.com/mcp/adminUna respuesta de 401 con un encabezado WWW-Authenticate: Bearer ... resource_metadata=... indica que el endpoint está activo y solicita credenciales.
Conectar en NexCMP
- Cree una clave: System › Settings › API & AI agents › API keys › New key. Para una primera prueba, use solo
admin:read; agregue scopes de escritura cuando los necesite. Consulte Admin API keys. - Abra la pestaña Connect an AI. Mientras el cuadro de diálogo de «clave creada» siga visible, cada fragmento a continuación ya contendrá su clave real. De lo contrario, mostrará el marcador de posición
ak_YOUR_KEY. - Copie el fragmento correspondiente a su cliente y ejecútelo o péguelo como se describe a continuación.

Claude Code
bash
claude mcp add --transport http nexcmp https://cloud.example.com/mcp/admin \
--header "Authorization: Bearer ak_XXXX"Luego inicie claude y pregunte "listar las herramientas de nexcmp" o "¿qué falta por configurar?".
Verificado el 30/10/2026 con Claude Code 2.1: claude mcp add --transport http … registra el servidor (añada -s project para mantenerlo en el .mcp.json del proyecto; Claude Code le solicitará aprobar los servidores del proyecto la primera vez). Para scripts, claude -p "…" --mcp-config .mcp.json --strict-mcp-config --allowedTools "mcp__nexcmp__*" se ejecuta sin la solicitud de aprobación y permite que Claude use únicamente las herramientas del panel.
Claude Desktop
Requiere Node.js 18 o posterior. Añada esto a claude_desktop_config.json (utiliza el puente mcp-remote) y reinicie Claude Desktop:
json
{
"mcpServers": {
"nexcmp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://cloud.example.com/mcp/admin", "--header", "Authorization:Bearer ak_XXXX"]
}
}
}Si su sistema altera el espacio en el argumento del encabezado, coloque el valor completo en una variable de entorno, exactamente igual que para el endpoint de clientes: "args": [..., "--header", "Authorization:${NEXCMP_AUTH_HEADER}"] con "env": { "NEXCMP_AUTH_HEADER": "Bearer ak_XXXX" }.
claude.ai (conector personalizado)
No se necesita ninguna clave: inicia sesión con OAuth. En claude.ai abra la configuración de conectores, agregue un conector personalizado, pegue https://cloud.example.com/mcp/admin, luego inicie sesión con su cuenta de administrador de NexCMP y elija los permisos en la pantalla de consentimiento. Detalles: OAuth connectors.
ChatGPT (modo desarrollador)
No se necesita clave. En ChatGPT active el modo desarrollador, agregue un conector MCP con la URL https://cloud.example.com/mcp/admin, elija OAuth e inicie sesión con su cuenta de administrador de NexCMP. Detalles: OAuth connectors.
Codex CLI
Añada a ~/.codex/config.toml:
toml
[mcp_servers.nexcmp]
url = "https://cloud.example.com/mcp/admin"
bearer_token_env_var = "NEXCMP_KEY"Luego exporte la clave en el shell que inicia Codex:
bash
export NEXCMP_KEY=ak_XXXX
codex
codex mcp list # shows nexcmp with "Bearer token" authcodex exec no interactivo
En codex exec (scripts, CI) Codex no pregunta antes de llamar a las herramientas y omite aquellas que modifican datos. Añada default_tools_approval_mode = "approve" bajo [mcp_servers.nexcmp] para permitirle ejecutarlas; el panel seguirá devolviendo una vista previa y solicitando confirmación para acciones relacionadas con dinero, seguridad y eliminación. Comprobado con Codex CLI 0.166 el 30/10/2026.
Gemini CLI
Añada a ~/.gemini/settings.json:
json
{
"mcpServers": {
"nexcmp": {
"httpUrl": "https://cloud.example.com/mcp/admin",
"headers": { "Authorization": "Bearer ak_XXXX" }
}
}
}Gemini CLI desactiva los servidores MCP en carpetas en las que no confía. Inícielo en una carpeta de confianza (o confíe en ella cuando lo solicite) y luego compruébelo con gemini mcp list — muestra nexcmp … Connected. Puede mantener la clave fuera del archivo con "Authorization": "Bearer $NEXCMP_KEY". Comprobado con Gemini CLI 0.66 el 30/10/2026.
Cursor
Añada a ~/.cursor/mcp.json (o .cursor/mcp.json en un proyecto):
json
{
"mcpServers": {
"nexcmp": {
"url": "https://cloud.example.com/mcp/admin",
"headers": { "Authorization": "Bearer ak_XXXX" }
}
}
}Mantenga la clave fuera de los archivos de configuración
Cuando el cliente lo admita, lea la clave desde una variable de entorno en lugar de escribirla en el archivo: Codex lo hace de forma predeterminada (bearer_token_env_var) y Cursor admite "Bearer ${env:NEXCMP_KEY}". Nunca haga commit de un archivo que contenga una clave.
OpenAI Agents SDK (Python)
python
from agents.mcp import MCPServerStreamableHttp
nexcmp = MCPServerStreamableHttp(
params={"url": "https://cloud.example.com/mcp/admin",
"headers": {"Authorization": "Bearer ak_XXXX"}},
name="nexcmp",
)Una ejecución completa (comprobada con openai-agents 0.24 el 30/10/2026 — una herramienta de lectura, seguida de un cambio de saldo que devolvió la vista previa de confirmación y se aplicó en la segunda llamada con confirm_token):
python
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main():
async with MCPServerStreamableHttp(params={"url": "https://cloud.example.com/mcp/admin",
"headers": {"Authorization": "Bearer ak_XXXX"}}, name="nexcmp") as nexcmp:
agent = Agent(name="admin", model="gpt-5", mcp_servers=[nexcmp],
instructions="You operate a hosting panel through the nexcmp tools. Ask me before confirming money actions.")
result = await Runner.run(agent, "Run system_health and summarise it in one line.")
print(result.final_output)
asyncio.run(main())OpenAI Responses API
Pase el servidor como una herramienta de tipo mcp. Mantenga require_approval en always para que su programa le solicite confirmación antes de cada llamada:
json
{
"type": "mcp",
"server_label": "nexcmp",
"server_url": "https://cloud.example.com/mcp/admin",
"headers": { "Authorization": "Bearer ak_XXXX" },
"require_approval": "always"
}Cualquier otra opción (HTTP estándar)
Un cliente sin MCP puede llamar a las mismas herramientas a través de HTTP. GET /v1/admin/agent/tools las lista, POST /v1/admin/agent/tools/<name> ejecuta una con un cuerpo JSON de argumentos y GET /v1/admin/openapi.json devuelve una descripción de OpenAPI 3.1 (cada herramienta es una operación). Todas requieren Authorization: Bearer ak_....
Verificación
Sin un cliente, liste las herramientas:
bashcurl -s https://cloud.example.com/mcp/admin \ -H "Authorization: Bearer ak_XXXX" \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'La respuesta es un resultado JSON-RPC con las herramientas que permiten sus ámbitos.
En su cliente, solicite "run system_health". Devuelve alertas, el estado de la infraestructura conectada, pagos, correo electrónico, AI y el estado de la licencia.
Abra API & AI agents › Activity: las llamadas se listan con el nombre del cliente y
mcp.En el servidor,
sudo nexcmp statusmuestra una línea "MCP admin" que indicareadycuando el endpoint responde (HTTP 401 sin clave es el estado correcto).
Herramientas
El servidor ofrece 58 herramientas. Un cliente solo ve las herramientas que permiten los ámbitos de su clave: las herramientas de lectura requieren admin:read, las de escritura requieren su propio ámbito. Las herramientas de escritura también reciben un argumento opcional confirm_token (consulte Confirmación). Los argumentos se validan con el esquema de cada herramienta: los argumentos desconocidos o mal escritos se rechazan con un mensaje que los especifica.
Los precios están en USD: los precios de los planes en dólares por hora (hourly_usd) y los saldos en centavos. Los secretos se pueden configurar, pero nunca se devuelven.
Resumen y registros
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
system_health | Alertas que requieren atención, estado de la infraestructura, pagos, correo electrónico, AI, estado de la licencia y de las actualizaciones. | admin:read | No | No |
setup_checklist | Qué está configurado y qué queda pendiente: licencia, infraestructura, zona, plantillas de SO, planes, pagos, correo electrónico, personalización de marca, avisos legales y pedido de prueba. | admin:read | No | No |
license_status | Estado de la licencia y comprobación de si existe una versión más reciente de NexCMP. | admin:read | No | No |
audit_search | Busca en el registro de auditoría de administración y en el registro de claves de API. | admin:read | No | No |
Configuración, marca, legal, módulos
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
settings_get | Lee la configuración general (keys filtra; un * final coincide con un prefijo). | admin:read | No | No |
settings_update | Modifica la configuración general desde un objeto plano values. Solo se aceptan las claves listadas por settings_get. | settings:write | Sí | Cuando una clave afecta a pagos, seguridad de inicio de sesión, ajustes globales del sitio o precios |
branding_get | Nombre de marca, color, moneda de visualización, nombre del vendedor y URL del logotipo y favicon. | admin:read | No | No |
branding_update | Establece el nombre de marca (hasta 60 caracteres), el color (#rrggbb), la moneda de visualización (usd o vnd) y el nombre del vendedor. | settings:write | Sí | No |
branding_logo_set | Subir un logotipo claro u oscuro, o un favicon, desde una URL https o base64 (PNG, JPEG, WEBP, ICO o SVG, hasta 512 KB). | settings:write | Sí | No |
legal_get | Términos de servicio y política de privacidad (inglés y vietnamita) y los valores neutrales predeterminados. | admin:read | No | No |
legal_update | Definir el texto de términos y privacidad (markdown simple, sin HTML, hasta 50 KB cada uno). Una cadena vacía restaura el valor predeterminado. | settings:write | Sí | No |
modules_get | Qué módulos opcionales están activados y cuáles se pueden alternar. | admin:read | No | No |
module_set | Activar o desactivar un módulo opcional (key debe ser uno de settable). | settings:write | Sí | No |
Correo electrónico y alertas
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
smtp_get | Configuración del correo saliente (contraseña oculta) y estado de la cola. | admin:read | No | No |
smtp_configure | Definir el servidor SMTP. Cambiar el host, el puerto o la seguridad requiere ingresar la contraseña de nuevo. | settings:write (+ secrets:write para la contraseña) | Sí | No |
smtp_test | Enviar un correo de prueba real con la configuración guardada. | settings:write | Envía un correo | No |
telegram_get | Canales de notificación de administración (chat IDs; los tokens del bot nunca se devuelven). | admin:read | No | No |
telegram_configure | Agregar o actualizar el canal de alertas de Telegram (bot token y chat ID) y activar o desactivar las alertas de administración. | settings:write (+ secrets:write para el token) | Sí | No |
telegram_test | Enviar un mensaje de prueba al canal de Telegram. | settings:write | Envía un mensaje | No |
Pagos y monedas
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
payments_get | Estado de Stripe, PayPal, cripto (USDT) y transferencia bancaria, además de canales habilitados y comisiones. | admin:read | No | No |
payment_configure | Configurar las credenciales de una pasarela (stripe, paypal, crypto o bank). | billing:write (+ secrets:write) | Sí | Siempre |
payment_test | Verificar con el proveedor las credenciales guardadas de una pasarela. | billing:write | No | No |
currency_get | Moneda de visualización y tasa de cambio de USD a VND (automática o manual). | admin:read | No | No |
currency_set | Definir la moneda de visualización o una tasa manual (0 significa automática; de lo contrario, entre 15000 y 50000). | billing:write | Sí | Al cambiar la tasa manual |
Infraestructura y zonas
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
cloudstack_get | Endpoint de CloudStack guardado, IDs de zona y red (claves ocultas). | admin:read | No | No |
cloudstack_test | Probar un endpoint con un API key y secret sin guardar; enumera las zonas. | infra:write (+ secrets:write, ya que transmite las claves) | No | No |
cloudstack_connect | Guardar la conexión con CloudStack. | infra:write (+ secrets:write) | Sí | Siempre |
proxmox_list | Clústeres de Proxmox VE agregados como fuentes, junto con su estado de salud. | admin:read | No | No |
proxmox_add | Agregar un clúster de Proxmox VE con un API token (user@realm!tokenid) y su secret. | infra:write (+ secrets:write) | Sí | No |
proxmox_test | Conectar a un clúster por ID; la primera conexión correcta fija su certificado TLS. | infra:write | Sí | No |
proxmox_attach_zone | Comercializar un clúster de Proxmox en una zona existente, opcionalmente con un nodo como región. | infra:write | Sí | No |
zones_list | Zonas (ubicaciones) que los clientes pueden elegir. | admin:read | No | No |
zone_create | Crear una zona. | infra:write | Sí | No |
Catálogo y planes
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
templates_list | Plantillas de SO que los clientes pueden instalar. | admin:read | No | No |
templates_sync | Importar plantillas de SO desde CloudStack. | catalog:write | Sí | No |
template_update | Habilitar u ocultar una plantilla, cambiarle el nombre, definir el usuario de inicio de sesión o el orden. | catalog:write | Sí | No |
offerings_list | Ofertas de servicio de CloudStack (CPU, memoria, disco raíz) para crear planes a partir de ellas. | admin:read | No | No |
plans_list | Planes con precio por hora y por mes, tamaño, zona y cuántos servidores los utilizan. | admin:read | No | No |
plan_create | Crear un plan. Precio como hourly_usd. Los planes de CloudStack requieren cs_offering_id; los planes de Proxmox requieren backend_id. | catalog:write | Sí | No |
plan_update | Renombrar, mostrar u ocultar, habilitar o deshabilitar, o cambiar el precio de un plan. Cambiar el tamaño en un plan en uso requiere una copia. | catalog:write | Sí | Al cambiar el precio |
plans_from_offerings | Crea una tabla de planes iniciales a partir de ofertas (o tamaños de Proxmox) utilizando su costo y un porcentaje de margen. Devuelve una vista previa; llame de nuevo con apply=true para crear los planes. | catalog:write | Con apply=true | Siempre al aplicar |
quota_defaults_get | Límites predeterminados de clientes. | admin:read | No | No |
quota_defaults_set | Cambia la configuración de quota_*. | catalog:write | Sí | No |
coupons_list | Lotes de códigos de descuento y de regalo. | admin:read | No | No |
coupon_create | Crea un lote de códigos: tipo money (valor nominal en centavos de USD) o percent (de 1 a 100, con un descuento máximo). | catalog:write | Sí | Siempre |
Clientes y revendedores
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
customers_search | Busca clientes por correo electrónico, nombre o IP. | admin:read | No | No |
customer_get | Cuenta, saldo, servidores y facturación reciente de un cliente. | admin:read | No | No |
customer_adjust_balance | Añade (positivo) o retira (negativo) crédito en centavos de USD. Se requiere un motivo. | billing:write | Sí | Siempre |
customer_block | Bloquea a un cliente, deteniendo opcionalmente sus servidores. Se requiere un motivo. | customers:write | Sí | Siempre |
customer_unblock | Desbloquea a un cliente. | customers:write | Sí | No |
resellers_list | Revendedores con billetera y estado. | admin:read | No | No |
reseller_get | Sitio, billetera, usuarios y pasarelas de un revendedor. | admin:read | No | No |
Proveedor de IA
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
ai_provider_get | El proveedor compatible con OpenAI utilizado por AI Chat y AI Agent del cliente (clave enmascarada). | admin:read | No | No |
ai_provider_set | Define el proveedor: URL base, modelo, clave de API, modelos de respaldo, esfuerzo de razonamiento, habilitado. | ai:write (+ secrets:write para la clave) | Sí | No |
ai_provider_test | Hace una pregunta al proveedor guardado para comprobar que funciona. | ai:write | No | No |
Archivos de configuración
| Herramienta | Qué hace | Scope | Modifica datos | Pide confirmación |
|---|---|---|---|---|
config_export | Exporta la configuración como YAML (los secretos se convierten en referencias secret://). | admin:read | No | No |
config_plan | Compara una configuración YAML con el panel activo y enumera los cambios. | admin:read | No | No |
config_apply | Aplica una configuración YAML sección por sección. Cada cambio sigue las reglas normales de alcance y confirmación. | admin:read + el alcance de cada cambio | Sí | Por cada cambio |
Consulte Configuración como código para conocer el formato de archivo.
Prompts
El servidor también ofrece tres prompts predefinidos que los clientes pueden mostrar como accesos directos:
| Prompt | Argumento | Qué le pide hacer a la IA |
|---|---|---|
initial-setup | ninguno | Llama a setup_checklist, explica cada paso pendiente en una sola frase, le solicita la información que necesita, ejecuta el paso con la herramienta correspondiente, muestra una vista previa de los cambios de dinero o seguridad y finaliza con system_health. |
add-proxmox | endpoint (opcional, https://host:8006) | Solicita el token de API, luego proxmox_add, proxmox_test, herramientas de zona y proxmox_attach_zone; después propone planes con plans_from_offerings y espera su aprobación. |
launch-pricing | margin_pct (opcional, predeterminado 40) | Solicita su costo mensual por vCPU, por GB de RAM y por GB de disco, muestra una tabla de vista previa con el costo, el precio mensual y el precio por hora, y crea los planes tras su aprobación. |
Confirmación (confirm_token)
Las acciones que transfieren dinero, eliminan datos, modifican credenciales de pago o la seguridad de inicio de sesión constan de dos pasos:
- La primera llamada no modifica nada. El resultado de la herramienta comienza con "CONFIRMATION REQUIRED" e incluye una vista previa (qué se llamará, por qué es delicado, los nuevos valores y los actuales) y un
confirm_token. - El cliente debe mostrarle la vista previa. Solo tras su aprobación vuelve a llamar a la misma herramienta con los mismos argumentos más
confirm_token. - El token funciona una sola vez, únicamente para esa solicitud exacta, y caduca a los 5 minutos.
Las instrucciones del servidor indican a la IA que trate los resultados de las herramientas como datos, no como instrucciones, y que nunca repita una llamada con un token que usted no haya aprobado. Usted es la salvaguarda: revise la vista previa.
No apruebe automáticamente
Algunos clientes pueden aprobar cada llamada de herramienta automáticamente. Para las herramientas de escritura, mantenga activa la aprobación llamada por llamada o use una clave de solo lectura, de modo que un plan incorrecto de la IA no llegue a su panel sin supervisión.
Cómo funciona
| Elemento | Detalle |
|---|---|
| Transporte | POST /mcp/admin con un mensaje JSON-RPC 2.0; la respuesta es application/json. Hasta 20 mensajes en un lote. GET /mcp/admin responde 405 (sin server stream); DELETE /mcp/admin finaliza una sesión. |
| Autenticación | Authorization: Bearer ak_... (una clave manual o un token de acceso OAuth). Las credenciales faltantes o incorrectas devuelven 401 con WWW-Authenticate: Bearer ... resource_metadata=..., lo que permite a los clientes OAuth iniciar sesión por sí mismos. |
| Sesiones | Mcp-Session-Id es emitido por initialize, está vinculado a esa clave y es válido durante 24 horas. |
| Capacidades | Herramientas y prompts. Sin recursos. |
| Tamaño | Cuerpo de solicitud de hasta 1 MB; el resultado de una herramienta se trunca tras unos 100 KB. |
| Origen | Se rechaza una solicitud que contenga una cabecera Origin de otro sitio (origin_not_allowed). Los clientes de línea de comandos y de escritorio no envían ninguna. |
| Mismo control que REST | Cada llamada de herramienta se reenvía a través del propio pipeline de solicitudes del panel con su clave, por lo que los alcances, los rangos de IP, el rate limit, la confirmación y el registro de actividad se aplican exactamente igual que en las llamadas directas a la API. |
Límites y notas
- Una herramienta que no puede ver es un alcance que no otorgó. Añada el alcance a una nueva clave.
- Configurar una contraseña o clave de API a través de un cliente de IA significa que el secreto pasa por esa IA. Si lo prefiere, deje
secrets:writedesactivado e introduzca los secretos usted mismo en el panel de administración, o use el campo Secret de AI Chat (AI Chat en la administración) o las referenciassecret://(Configuración como código). - Los clientes no comparten sesiones: cada conexión comienza con
initialize. - Revoque la clave en API & AI agents para desconectar de inmediato a un cliente de IA.
Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
401 invalid_key | Clave incorrecta, truncada o que no es de administrador (por ejemplo, una clave vk_) | Use una clave ak_. |
401 key_expired o key_revoked | La clave expiró o fue revocada | Cree una nueva clave. |
403 ip_not_allowed | Su IP está fuera de los rangos de IP de la clave | Conéctese desde una IP permitida. |
403 origin_not_allowed | Una página del navegador en otro origen llamó al endpoint | Use un cliente de escritorio o CLI. |
404 en una solicitud con Mcp-Session-Id | La sesión pertenece a otra clave o ha expirado | Envíe initialize de nuevo. |
400 unsupported MCP-Protocol-Version | El cliente utiliza una versión que el servidor no reconoce | Actualice el cliente; admitidas: 2025-11-25, 2025-06-18, 2025-03-26. |
| La lista de herramientas es corta | Alcances de la clave | Cree una clave con más alcances. |
insufficient_scope en una llamada | Una herramienta necesita un segundo alcance, por ejemplo secrets:write | Añada el alcance a una nueva clave. |
429 rate_limited | Más llamadas por minuto de las que permite la clave | Espere a Retry-After o aumente el límite en una nueva clave. |
| claude.ai o ChatGPT no pueden conectarse | La URL no es accesible desde internet, o un proxy bloquea /mcp/admin o /oauth-admin/ | Compruebe el DNS, TLS y el proxy inverso. |
Para ver todos los códigos de error, consulte Claves de API de administración.