Jinn Agents · docs

Four doors. One gateway.

The gateway lives at https://app.jinn.works/api/mcp and speaks standard MCP over HTTP: JSON-RPC 2.0, bearer-authed, three methods (initialize, tools/list, tools/call). Mint a token from your account panel (shown exactly once), or take the free 60-minute demo token from the product page, no login.

Skills

MIT-licensed marketing skills, installed into your agent's skills directory and run locally. Featured today: Launch Positioning · Campaign Brief · Brand Guardrails Review · Brand Voice Content · Ad Copy Variants · Email Sequence · Brand Messaging Audit · Competitor Positioning Map · Product Launch Playbook · Know Your Brand DNA. The catalog grows as skills ship.

npx skills add jinn/brand-voice-content

Each skill names its deliverable (a positioning brief, a launch playbook, a red-line review) and sharpens when the gateway is connected: grounded skills read your record instead of guessing.

Agents

25 marketing personas across Marketing, Brand, Content, Design: 7 marketing · 6 brand · 6 content · 6 design. A persona is a working brief for your agent, not a separate install: connect over MCP, name the persona, and point it at the record.

"As the Jinn Copywriter: read the brand with get_brand_dna_public, then write the launch line."

The full roster, by name: Brand Strategist · Go-To-Market Strategist · Positioning Consultant · Lifecycle Marketing Lead · Campaign Strategist · Audience Insights Analyst · Launch Manager · Brand Guardian · Brand Voice Steward · Naming Strategist · Brand Architect · Rebrand Consultant · Brand Storyteller · Content Strategist · Copywriter · Editor · Social Media Manager · Email Copywriter · SEO Content Strategist · Art Director · Brand Designer · Design Systems Lead · Packaging Designer · Web Designer · Motion Designer.

MCP

Claude Code, one command. Keep the token in your environment as JINN_MCP_TOKEN, never in the command itself.

claude mcp add --transport http jinn https://app.jinn.works/api/mcp --header "Authorization: Bearer $JINN_MCP_TOKEN"

Claude Desktop or any generic client: the raw config block. Swap the placeholder for your minted token where the file lives on your machine.

{ "mcpServers": { "jinn": { "url": "https://app.jinn.works/api/mcp", "headers": { "Authorization": "Bearer YOUR_JINN_MCP_TOKEN" } } } }

Cursor: one-click install. The deeplink carries a placeholder; paste your real token into Cursor after it installs.

Add to Cursor

API

No client at all: POST JSON-RPC 2.0 to the endpoint with Authorization: Bearer YOUR_JINN_MCP_TOKEN. The three supported methods, as wire bodies:

{ "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "protocolVersion": "2025-03-26", "capabilities": {} } }{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "get_brand_dna_public", "arguments": { "slug": "paleo-pro" } } }
Tool reference

The 16 tools.

Registry names, verbatim. Your token's own tools/list returns exactly the set its audience, scopes, and tier grant: a public-audience token (demo, self-serve) lists the 5 public tools; internal-audience tokens (owner-bound and operator-issued) list all 16. A tool above your audience does not read as forbidden; it reads as an unknown method, deliberately.

Brand DNA & access

The verified record an agent writes from, plus the tools that read the wire itself.

  • pingpublicThe smoke tool. Verifies gateway wiring end to end.
  • get_token_contextpublicWhat this token can reach: brands, scopes, tier, expiry.
  • get_brand_dnainternalThe canonical typed record: identity, positioning, voice, pillars.
  • get_brand_dna_publicpublicA bounded public projection. Competitive intel is never included.
  • get_verified_facts_statusinternalThe review-queue state: active, proposed, gaps.
  • get_marketing_truthinternalThe always-current product and strategy truth feed.

Design system

The same design contracts the Jinn products render from, read-only.

  • get_brand_design_mdpublicThe agent-readable DESIGN.md for an opted-in brand.
  • get_brand_design_tokenspublicDesign tokens as DTCG JSON: color, type, spacing, motion.
  • get_brand_kitinternalThe render-ready kit: colors, fonts, logo, name, spacing.

Agencies work

Discover, activate, and read the deliverables an owned engagement produces.

  • list_brandsinternalThe brands this token can act on, each { slug, name }.
  • list_engagementsinternalYour engagements and their per-deliverable status.
  • activate_agency_packinternal · writeThe one write tool. Queues work or hands back a human-action URL.
  • get_engagement_statusinternalPoll an engagement until each deliverable is ready.
  • get_deliverableinternalRead one rendered deliverable when it is ready.

Voice

Rewrite copy in a brand voice through the real Ghost voice-transform service.

  • list_voice_profilesinternalThe voice profiles your allowlisted brands are mapped to.
  • voice_transforminternalRewrite copy in a brand voice, with a verification report.
The model underneath

Tokens, entitlement, limits, errors.

Token lifecycle

  • Mint from /account/tokens. The secret (jmcp_...) is shown exactly once and stored only as a hash.
  • Rotate with a 24-hour overlap by default (48h maximum): the old secret keeps working while you swap in the new one. A revoked token cannot be rotated back to life.
  • Revoke immediately from the same panel.
  • Demo tokens: 60 minutes, read-only, the showcase brands only, 3 concurrently active per IP (fail-closed) and 5 mints an hour.

Entitlement is live, not baked in

A token carries no frozen tier. Its effective access resolves from the live subscription on every request, fail-closed on a read error, so trial-to-paid, upgrades, and lapses all take effect on the next call. Nothing to re-mint.

Rate limits

120 requests a minute per token. Over it, a 429-shaped JSON-RPC error with a Retry-After you can respect programmatically.

Error shapes

  • TIER_REQUIRED (-32004) · A tier-gated tool called below its tier. A DISCLOSED upgrade path: data carries { required_tier, upgrade_url }.
  • not_found · Any brand, engagement, or voice you cannot reach returns the SAME generic not-found. Existence is never disclosed.
  • METHOD_NOT_FOUND (-32601) · A higher-audience tool reads as an unknown method to a lower-audience token, so its existence stays hidden.
  • RATE_LIMITED (-32003) · Over 120 requests in a minute on one token. The response carries a Retry-After.

Every tool failure also carries a machine-readable data.kind plus a retryable flag, so an agent decides retry-vs-fix-vs-stop without regexing prose.

Terms and the full reference

The API terms govern gateway use. The developer reference with per-tool request and response shapes lives in the developer docs.