[Docs](/es/docs) /MCP

# Anomalia MCP

Anomalia expone un servidor Model Context Protocol para que los agentes de coding (Cursor, Claude y otros) gestionen marcas, posts, planes, studio, SEO/GEO y blog — con el mismo login OAuth que la CLI.

```
Your agent
   │  stdio (local)     →  bun run mcp  /  anomalia-mcp
   │  HTTPS (remote)    →  https://mcp.anomalia.so/mcp  + Bearer
   ▼
Anomalia API  (/api/v1/*)
```

**Sin tokens de API estáticos.** La autenticación es siempre OAuth (login en el navegador o Bearer de tu sesión).

## Inicio rápido

Elige un transporte: stdio local es lo más simple en tu máquina; HTTP remoto para hosts en la nube.

## Opción A — Stdio local

Ideal para Cursor y otros agentes locales.

1.  Instala Bun y clona el repo anomalia-cli (o instala el binario CLI para tener anomalia-mcp en el PATH).
2.  Autentícate una vez:
    
    ```
    anomalia login
    # or, after MCP is connected, call the login tool
    ```
    
3.  Añade a la config MCP de Cursor (ruta absoluta obligatoria con Bun):
    
    ```
    {
      "mcpServers": {
        "anomalia": {
          "command": "bun",
          "args": ["run", "/ABS/PATH/to/anomalia-cli/mcp/stdio.ts"]
        }
      }
    }
    ```
    
    Si el binario está en el PATH tras la instalación:
    
    ```
    {
      "mcpServers": {
        "anomalia": { "command": "anomalia-mcp" }
      }
    }
    ```
    
4.  Reinicia Cursor / recarga MCP. Llama list\_brands y trabaja con el slug de la marca.

Archivo de sesión (compartido con la CLI): `~/.config/anomalia/session.json`.

## Opción B — HTTP remoto

1.  Confirma que el servidor está activo:
    
    ```
    curl -sS https://mcp.anomalia.so/health
    ```
    
    Espera un payload JSON de health con ok: true y mcp: "/mcp".
    
2.  Config MCP de Cursor:
    
    ```
    {
      "mcpServers": {
        "anomalia": {
          "url": "https://mcp.anomalia.so/mcp"
        }
      }
    }
    ```
    
3.  Los clientes compatibles con OAuth MCP (opencode, Claude Code, Cursor, el Inspector…) se autentican solos: en la primera conexión abren `anomalia.so`, tú autorizas y el token queda en el cliente. El **401** inicial es el comienzo de ese handshake, no un fallo.

Opción personalizada — si tu cliente no soporta OAuth, pasa el token a mano: `Authorization: Bearer <access_token>`, con el access token de Supabase que `anomalia login` guarda en `~/.config/anomalia/session.json`. Las API keys estáticas (`anomalia_…`) no las acepta el servidor remoto.

## Opción C — HTTP local

```
bun install
bun run mcp:http
# → http://localhost:8787/mcp
#    http://localhost:8787/health
```

Auth: Bearer o el archivo de sesión local.

## Reglas de auth

| Contexto | Cómo te autenticas |
| --- | --- |
| Stdio local / HTTP local | Tool login en el navegador o anomalia login → archivo de sesión |
| HTTP remoto | OAuth 2.1 + PKCE, or `Authorization: Bearer <access_token>` |
| API key estática | **No compatible** |

Metadata del recurso protegido: `GET /.well-known/oauth-protected-resource`.

## Qué llamar primero

1.  `list_brands` — descubrir slugs de marca
2.  `get_dashboard` — resumen de la marca
3.  `list_posts` con status pending\_user — cola de aprobación
4.  Prefiere tools específicas (approve\_posts, edit\_post, …) frente a chat para acciones precisas

Los ids de posts y artículos aceptan prefijos cortos inequívocos de los resultados de list (misma regla que la CLI).

## Áreas de tools

| Área | Ejemplos |
| --- | --- |
| Auth | `login`, `logout`, `whoami`, `list_brands` |
| Posts | `list_posts`, `get_post`, `edit_post`, `approve_posts`, `regenerate_slide`, `make_video` |
| Planes | `get_plan`, `propose_plan`, `plan_week`, `produce_week` |
| Studio | `get_studio`, `add_note`, `research_competitors` |
| Web | `get_seo`, `get_geo`, `generate_article`, `chat` |

## Solución de problemas

| Síntoma | Causa probable | Solución |
| --- | --- | --- |
| 401 en /mcp | Bearer ausente o inválido en remoto | Haz login en local y pasa el access token, o usa stdio |
| Tools ausentes | MCP no conectado en el host | Revisa el panel MCP de Cursor y reinicia el host |
| Auth funciona en CLI pero no en MCP | Máquina distinta / sin archivo de sesión | Ejecuta login en el entorno del proceso MCP |

* * *

## Siguiente

-   [Agent skill](/es/docs/agents) — instala la skill Anomalia para que los agentes sepan cuándo y cómo usar MCP o la CLI
-   [CLI](/es/docs/cli) — comandos de terminal cuando MCP no está disponible
-   [Referencia API](/es/docs/api) — endpoints REST que llaman MCP y CLI
-   [anomalia-cli](https://github.com/andreabuttarelli/anomalia-cli) — código fuente, mapa de tools y notas de desarrollo

[

← Anterior

CLI

](/es/docs/cli)[

Siguiente →

Agent skill

](/es/docs/agents)

---
Source: https://www.anomalia.so/es/docs/mcp
