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

# Cursor

> Agrega Sailer como servidor MCP remoto en Customize, o con cuatro líneas de mcp.json.

Diez minutos. Cursor habla Streamable HTTP, que es lo que Sailer sirve. Empieza
por la UI; `mcp.json` es lo mismo en un archivo.

La primera conexión no puede escribir. Es deliberado.

<Steps>
  <Step title="Qué necesitas">
    Cursor, y una cuenta de Sailer cuyo email pertenece a un workspace. No
    necesitas un token de API, y no necesitas un Client ID.
  </Step>

  <Step title="Agrega el servidor CRM">
    **UI**

    1. Abre **Customize** en la barra lateral.
    2. Abre **MCP**.
    3. Agrega un servidor nuevo.
    4. Pega `https://mcp.chatsailer.com/mcp/crm`.
    5. Guarda. Cursor trata un `url` como Streamable HTTP.

    **No** llenes un OAuth Client ID / Secret estático. Sailer no te emite
    uno, y Cursor va a correr el flujo de browser sin él.

    **`mcp.json`**

    Solo el proyecto (commitea esto si todo el equipo debería tenerlo):
    `.cursor/mcp.json`. Cada proyecto: `~/.cursor/mcp.json`.

    ```json theme={null}
    {
      "mcpServers": {
        "sailer-crm": {
          "url": "https://mcp.chatsailer.com/mcp/crm"
        }
      }
    }
    ```

    Ese es todo el archivo. Sin `headers`, sin bloque `auth`, sin `command`.
  </Step>

  <Step title="Autentica">
    Cursor te pide autenticar. Tu browser se abre.

    Tres pantallas, en este orden:

    1. **Auth0 sign-in** — tu email y password de Sailer. ¿Ya estás con sesión
       iniciada? Este paso se salta.
    2. **"Cursor wants to connect"** — un workspace es texto confirmado; varios
       es un dropdown. La lista de permisos coincide con el workspace que
       eliges.
    3. Haz clic en **Approve**. Cierra la pestaña.

    En Customize, **sailer-crm** debería mostrarse como connected con las
    tools listadas. Un punto verde no es la prueba — el siguiente paso sí.
  </Step>

  <Step title="Compruébalo">
    Abre un chat **Agent** nuevo (no un Ask plano que no puede llamar tools) y
    escribe:

    > Which Sailer workspace am I connected to?

    Cursor va a llamar `whoami` y nombrar el workspace, la organización padre,
    quién autorizó la conexión y los scopes que otorgaste.
  </Step>

  <Step title="Haz algo real">
    > How many contacts are in this workspace?

    > Describe the CRM schema — what custom fields does this workspace have?

    > Find contacts created in the last 7 days.

    > Find deals in Negotiation.

    [Herramientas de CRM](/es/mcp/crm) es el catálogo. Los writes necesitan
    una reconexión — [Autenticación](/es/mcp/auth).
  </Step>
</Steps>

## Agrega Studio también

La misma UI, o una segunda entrada en `mcp.json`:

```json theme={null}
{
  "mcpServers": {
    "sailer-crm": {
      "url": "https://mcp.chatsailer.com/mcp/crm"
    },
    "sailer-studio": {
      "url": "https://mcp.chatsailer.com/mcp/studio"
    }
  }
}
```

Autentica Studio por separado. Un grant de CRM no va a funcionar ahí.

[Herramientas de Studio](/es/mcp/studio).

## Este cliente

**Demasiadas tools en el picker.** Apaga Studio en Customize cuando estés
haciendo trabajo de CRM, y al revés. Existen dos servidores para que puedas
hacer eso.

**Connection failed.** Panel de Output (`Cmd+Shift+U` / `Ctrl+Shift+U`) →
**MCP Logs**. Casi siempre un typo en la URL. Confirma que el servidor esté
arriba:

```bash theme={null}
curl -s -o /dev/null -w '%{http_code}\n' https://mcp.chatsailer.com/healthz
```

`200` significa que Sailer está bien y el problema es la config.

**Cloud Agents / CI.** OAuth en un browser no va a correr ahí. Usa un token
de workspace vía interpolación — nunca un `sk_` literal en un archivo
commiteado:

```json theme={null}
{
  "mcpServers": {
    "sailer-crm": {
      "url": "https://mcp.chatsailer.com/mcp/crm",
      "headers": {
        "Authorization": "Bearer ${env:SAILER_API_TOKEN}"
      }
    }
  }
}
```

`whoami` va a reportar `credential: api_token` y `reads_company_wide: true`.
Ver [Autenticación](/es/mcp/auth).

**Cambiar de workspace, o otorgar writes.** Quita el servidor en Customize (o
borra la entrada de `mcp.json`), agrégalo de nuevo, elige en el consent.

Las fallas compartidas (URL incorrecta, email desconocido, scope faltante)
están en [Solución de problemas](/es/mcp/troubleshooting).
