> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ryvo.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Servidor MCP

> Conecta Claude Code, Cursor, VS Code o Windsurf a tu cuenta de Ryvo con las mismas API keys que ya usas.

<div style={{ position: "relative", paddingBottom: "56.25%", height: 0 }}>
  <iframe src="https://cap.so/embed/y8cfsk3a2k9sbhb" title="Servidor MCP de Ryvo" frameBorder="0" allow="fullscreen" allowFullScreen style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} />
</div>

Ryvo tiene un servidor remoto de [Model Context Protocol](https://modelcontextprotocol.io). Conéctalo a tu asistente de IA y podrás pedirle en lenguaje natural cosas como «¿cuántas llamadas fallaron ayer y por qué?», «crea un agente para recordatorios de citas» o «enséñame la última conversación con este número», sin escribir código contra la API.

| | |
| - | - |
| URL | `https://mcp.ryvo.so` (también responde en `https://mcp.ryvo.so/mcp`) |
| Transporte | Streamable HTTP, sin estado: no hay sesiones que mantener vivas |
| Protocolo | MCP `2026-07-28`, con respaldo para clientes de las revisiones de 2025 |
| Autenticación | `Authorization: Bearer ryvo_live_...` |
| Plan | Starter o superior, igual que la [API](/es/authentication) |

El servidor no reimplementa la API: cada herramienta corre el mismo endpoint de la [API pública](/es/api-reference) dentro de nuestros servidores, con tu key y tu IP. Mismos datos, mismos scopes, mismos errores, mismos límites de peticiones, mismo tope de créditos.

## Antes de empezar

Necesitas una **API key**. No hay una credencial aparte para el MCP: es la misma key `ryvo_live_...` que creas en **Configuración > API keys** ([app.ryvo.so/developers](https://app.ryvo.so/developers)). Cómo crearla está en [Autenticación](/es/authentication).

Crea **una key sólo para el MCP** y elige sus scopes con cuidado:

* El asistente sólo ve las herramientas que sus scopes permiten. Una key de sólo lectura ni siquiera ve `create_call`. La lista completa está en [Herramientas](/es/mcp/tools).
* En **Configuración avanzada**, ponle un **Límite de créditos**. Es la protección real contra un agente que gaste más de lo que querías: lee [Seguridad y gasto](/es/mcp/security).
* Si el asistente va a leer transcripciones sin que tú lo supervises, dale una key de sólo lectura. [Aquí explicamos por qué](/es/mcp/security#las-transcripciones-son-contenido-no-confiable).

Después guarda la key en una variable de entorno en lugar de pegarla en un archivo de configuración:

```bash theme={null}
export RYVO_API_KEY="ryvo_live_..."
```

## Conecta tu cliente

<Tabs>
  <Tab title="Claude Code">
    Para un proyecto, agrega un archivo `.mcp.json` en su raíz. Claude Code expande `${RYVO_API_KEY}` desde tu entorno al arrancar, así que el archivo no guarda ningún secreto y puedes commitearlo:

    ```json .mcp.json theme={null}
    {
      "mcpServers": {
        "ryvo": {
          "type": "http",
          "url": "https://mcp.ryvo.so",
          "headers": {
            "Authorization": "Bearer ${RYVO_API_KEY}"
          }
        }
      }
    }
    ```

    O agrégalo desde la terminal, sólo para ti:

    ```bash theme={null}
    claude mcp add --transport http ryvo https://mcp.ryvo.so \
      --header "Authorization: Bearer $RYVO_API_KEY"
    ```

    Aquí es tu shell quien expande la variable, así que la key misma queda guardada en tu configuración de Claude Code. Agrega `--scope user` para tener Ryvo en todos tus proyectos.
  </Tab>

  <Tab title="Cursor">
    Edita `~/.cursor/mcp.json` (todos tus proyectos) o `.cursor/mcp.json` (un proyecto). Cursor lee `${env:RYVO_API_KEY}` de tu entorno:

    ```json mcp.json theme={null}
    {
      "mcpServers": {
        "ryvo": {
          "url": "https://mcp.ryvo.so",
          "headers": {
            "Authorization": "Bearer ${env:RYVO_API_KEY}"
          }
        }
      }
    }
    ```
  </Tab>

  <Tab title="VS Code">
    Agrega `.vscode/mcp.json` a tu workspace. Con una entrada en `inputs`, VS Code te pide la key la primera vez que arranca el servidor, oculta lo que escribes y la guarda de forma segura:

    ```json .vscode/mcp.json theme={null}
    {
      "inputs": [
        {
          "type": "promptString",
          "id": "ryvo-api-key",
          "description": "API key de Ryvo",
          "password": true
        }
      ],
      "servers": {
        "ryvo": {
          "type": "http",
          "url": "https://mcp.ryvo.so",
          "headers": {
            "Authorization": "Bearer ${input:ryvo-api-key}"
          }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Windsurf">
    Windsurf ahora se llama **Devin Desktop**, y su agente por omisión (Devin Local) lee los servidores MCP de `~/.config/devin/mcp_config.json` (en Windows, `%APPDATA%\devin\mcp_config.json`). Para un solo proyecto, usa `.devin/mcp_config.json`, o `.devin/mcp_config.local.json` para dejarlo fuera de git. Lee `${env:RYVO_API_KEY}` de tu entorno:

    ```json mcp_config.json theme={null}
    {
      "mcpServers": {
        "ryvo": {
          "url": "https://mcp.ryvo.so",
          "transport": "http",
          "headers": {
            "Authorization": "Bearer ${env:RYVO_API_KEY}"
          }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Otros clientes">
    Funciona cualquier cliente MCP que hable Streamable HTTP y te deje poner un header en la petición. Dale:

    * URL: `https://mcp.ryvo.so`
    * Header: `Authorization: Bearer ryvo_live_...`
  </Tab>
</Tabs>

<Info>
  Próximamente: la CLI de Ryvo (`@ryvo-so/cli`) escribirá esta configuración por ti con `ryvo mcp install`.
</Info>

## Clientes que todavía no funcionan

La versión 1 se autentica **sólo con header**. Todavía no hay inicio de sesión con OAuth, así que no pueden conectarse los clientes que sólo agregan servidores remotos con un conector OAuth: eso incluye los **conectores de claude.ai** y **ChatGPT**. OAuth está planeado para una fase posterior.

Por lo mismo, una key que falta o no sirve recibe un `401` normal con el error JSON de la API, sin la cabecera `WWW-Authenticate` que apunta a metadatos de OAuth: tu cliente te enseña el error en vez de abrir una página de inicio de sesión que no existe.

## Comprueba la conexión

1. Reinicia tu cliente o recarga sus servidores MCP (en Claude Code, `/mcp` muestra el estado de cada uno).
2. Pídele al asistente que «llame a `get_account`». Te responde con tu cuenta, tu plan y los scopes que trae la key. Para tu saldo de créditos, `get_billing_summary` (pide `billing:read`).
3. Si el servidor no conecta, prueba la key sola con `curl https://api.ryvo.so/v1/me -H "Authorization: Bearer $RYVO_API_KEY"`. Un `401` quiere decir que la key está mal o fue revocada, o que el header no está escrito como `Bearer ` más la key.

Si falta una herramienta que esperabas, a la key le falta su scope: compárala con la tabla de [Herramientas](/es/mcp/tools).
