# Contextra MCP server card

Crawl this file for MCP / connector setup. Full REST map: [LLM_README.md](https://contextra.tech/LLM_README.md).

## Identity

| Field | Value |
| --- | --- |
| Display name | Contextra Personality Intelligence |
| Model name | `contextra` |
| Registry | `io.github.AreOhEssEss/contextra` |
| Protocol | MCP 1.0 + Streamable HTTP (SSE also advertised) |
| Homepage | https://contextra.tech/agents |
| Logo | https://contextra.tech/contextra-logo.png |

## Transports

```
https://mcp.contextra.tech/mcp          Streamable HTTP (preferred)
https://mcp.contextra.tech/sse          SSE
https://mcp.contextra.tech/health       Health
https://mcp.contextra.tech/proxy        API proxy
https://contextra-mcp-prod-w5j5edqhjq-uc.a.run.app/mcp   Fallback if DNS fails
```

Health payload (fallback, verified): `{ "ok": true, "service": "contextra-mcp-server", "apiProxy": "/proxy", "apiProxyTarget": "https://api.contextra.tech" }`

## Auth

Bearer JWT. Mint via REST:

```http
POST https://api.contextra.tech/public/v1/auth/token
Content-Type: application/json

{"email":"<dashboard-email>","password":"<dashboard-password>"}
```

Send `Authorization: Bearer <idToken>` to MCP and REST. No OAuth2 on the Public API.

New agents: MCP tool `register_account` (needs a Contextra registration key). Do **not** call REST `POST /public/v1/agents/register` — it 404s.

## Tools (when to call)

| Tool | Call when |
| --- | --- |
| `register_account` | First-time agent bootstrap with a Contextra registration key |
| `get_account_status` | Check plan, credits, whether setup is complete |
| `setup_company` | Seller company context is missing |
| `create_product` | Need an offer/URL for grounded pitches |
| `create_profile` | New named person (Target) for DISC generation |
| `get_profile` | Need DISC + communication schema for a known profile id |
| `list_profiles` | Discover existing Targets before creating duplicates |
| `get_communication_strategy` | User asked “how do I talk to X?” |
| `create_pitch` | User asked for outreach copy grounded in DISC |
| `get_credits` | Quota / remaining profile generations |

Returns structured JSON suitable for context injection (DISC type, communication, watch-fors, recommendations) — not unstructured chat.

## Client config

```json
{
  "mcpServers": {
    "contextra": {
      "url": "https://mcp.contextra.tech/mcp"
    }
  }
}
```

Well-known: https://contextra.tech/.well-known/mcp.json
