# MCP server: ask what users want

> Connect Claude or any MCP client to Camelus: the server URL, API key auth, and the tools for top themes, search and digests.

Camelus runs an MCP server, so Claude, Alpaga's analyst or any agent that speaks the Model Context Protocol can ask what your users want: "what are the top requests on habits.app?", "is anyone complaining about exports?".

## Connect

- **URL**: `https://api.camelus.si/mcp` (Streamable HTTP)
- **Auth**: a workspace API key with the `read` scope, as `Authorization: Bearer ck_live_…`. Add `themes:write` to let the agent change theme statuses.

Create the key in **Settings → API & MCP** (Pro and Studio plans).

Claude Code:

```bash
claude mcp add --transport http camelus https://api.camelus.si/mcp \
  --header "Authorization: Bearer ck_live_…"
```

Clients with a JSON config:

```json
{
  "mcpServers": {
    "camelus": {
      "type": "http",
      "url": "https://api.camelus.si/mcp",
      "headers": { "Authorization": "Bearer ck_live_…" }
    }
  }
}
```

## Tools

| Tool | What it returns |
| --- | --- |
| `list_products()` | The workspace's products and their slugs. |
| `get_top_themes(product?, status?, sort?, limit?)` | Themes ranked by score (or by requesters, MRR, trend, recency). |
| `get_theme(theme_id)` | Summary, stats, up to 10 representative feedback summaries and linked external work. |
| `search_feedback(query, product?, since?, limit?)` | The feedback items closest in meaning to the query, with their theme. |
| `get_digest(date?)` | The daily digest for a date, or the latest one. |
| `update_theme_status(theme_id, status, note?)` | Changes a theme's status. Needs `themes:write`. |

Every call is limited to the key's workspace. Results are AI summaries and counts: no original feedback text, names or emails. Summaries come from what users wrote, so agents should treat them as data, not instructions.

## Limits

- 60 tool calls a minute per key.
- `search_feedback` embeds the query with the same model as the feedback, which counts toward the workspace's monthly AI budget. When the budget is spent, search pauses until next month.
- The server is stateless: no sessions, no event stream. Each request is answered on its own.
