Documentation
Guides for chamelAIn

Connect Cursor via MCP

Authorize once, then activate personas with #<tag> in Cursor.

Connect Cursor to chamelAIn's hosted MCP server.

Important (Phase 2): Persona list/read via MCP requires authentication. Authorize once (or create an MCP Access Key) to receive a ready configuration with your credential pre-wired. Unauthenticated requests do not return persona data.

Recommended: One-click authorize flow (credential pre-included)

  1. Go to your chamelAIn dashboard.
  2. In the MCP CONNECT panel, click "Authorize for Cursor (MCP) — recommended".
  3. If needed, log in.
  4. Review the capabilities and click Allow access on the consent screen.
  5. On the success screen, use Download ready MCP configuration (preferred) or Copy configuration. The resulting block/file has the access credential pre-included for your organization.
  6. Place the `chamelain` entry from the provided configuration into your `~/.cursor/mcp.json` (merge with any existing servers you have). Restart Cursor.

No manual token values or header construction are ever required. The authorize flow handles it completely.

This matches the login + allow pattern used by tools like Linear.

Fallback: Named MCP Access Keys

In Settings → Security (or Integrations), you can create named, revocable long-lived MCP Access Keys.

Creating a key immediately offers the same Download ready MCP configuration and Copy configuration options. Use the produced artifact exactly as in the primary flow — the credential is already wired in.

Configuration you will receive

The authorize or key-creation flow gives you a complete, ready `mcpServers` entry (the credential is supplied by the system; you do not edit or substitute anything). The block is self-contained:

json
{
  "mcpServers": {
    "chamelain": {
      "url": "https://your-mcp-host.example.com/mcp"
      // credential for authenticated access is pre-wired by the flow (no manual changes)
    }
  }
}

Use the MCP URL shown in your chamelAIn dashboard (or `NEXT_PUBLIC_MCP_URL`).

After placing the entry, restart Cursor. The configuration must include the `headers` block from the authorize or key-creation flow — there is no unauthenticated persona MCP configuration.

Verification

Ask Cursor:

"List the available chamelAIn personas"

You should see your activated personas plus marketplace listings (per your org access). If the list is empty, confirm you completed authorize/key creation and that Phase 2 persona features are enabled for your account.

Activating a persona with `#<tag>`

After MCP is connected, you can load a persona in chat with the `#<tag>` shorthand (hash immediately followed by the persona tag). Examples: `#clarity-architect`, `#threat-modeler`, `#writer`.

When you write `#<tag>`, Cursor's agent should call chamelAIn's `get_persona` tool with that tag (without the `#`) and apply the returned instructions as its working persona for the task.

You can also reference personas explicitly:

  • `chamelain:<tag>` — full MCP reference (shown on dashboard persona cards)
  • `<tag>@vN` — pin a specific version (e.g. `writer@v2`)

If the tag is unknown, ask Cursor to list personas first, then retry with a matching tag.

Personal memories (session context)

chamelAIn composes memories in three layers (lowest to highest precedence):

  1. Publisher base — memories authored with the persona.
  2. Stored personal overlay — your saved overlay from chamelAIn (merged server-side when enabled).
  3. Session overrides — ephemeral context the agent attaches via `memoryOverrides` on `get_persona` (not persisted).

The `config.memories` field in a `get_persona` response is the composed result of those layers. Session overrides are useful when you want the persona to remember project-specific facts or preferences for the current work without changing the published persona.

Example prompt:

`#clarity-architect` Help me write acceptance criteria for PER-79. Remember this repo uses branch `dev` for integration.

The agent can pass `memoryOverrides` on `get_persona` so those preferences apply for the session only.

Data handling

When you authorize MCP or create an access key, chamelAIn transmits persona instructions, configuration, and related metadata to your MCP client. Your client may forward that content to the AI provider you configure under your account and terms. chamelAIn does not control third-party retention, logging, or use of that content.

See AI and data for the full data-flow explanation, publishing visibility, and links to our Privacy Policy.

Notes

  • End users always connect to the hosted MCP endpoint — there is no local fallback in the product UI.
  • The hosted server exposes the same tools (`list_personas`, `get_persona`, etc.) backed by your Supabase project.
  • Cursor requires MCP Streamable HTTP at `POST/GET/DELETE /mcp` with session headers after `initialize`. If you see `Unsupported method`, `Bad Request: No valid session ID`, or SSE `404`, redeploy the latest `mcp-server` package to Render.
  • For local engineering: `cd mcp-server && npm run dev`, then use `"url": "http://localhost:8765/mcp"` in `~/.cursor/mcp.json`.

See the living architecture document (`docs/phase-2-building-publishing-maturity.md`, "Authenticated MCP Architecture" section) for the design, consent model, and why the user never pastes raw credentials or constructs headers.