Connect via MCP (Client Setup)
Your Brain isn't trapped inside MarketingSecrets.ai. It's exposed as an MCP server (Model Context Protocol) so every AI tool you use can read and write the same memory.
Once connected, Claude Desktop, Cursor, or a ChatGPT Custom GPT can search your Brain, add new facts, and stay perfectly in sync with your Chief of Staff.
Why this matters. Claude Desktop and Cursor are powerful, but they forget everything. Plug the Brain in once and they instantly have your business context — offers, audience, pricing, current projects, recent wins — in every conversation.
Step 1 — Generate an API key
- Open Chief of Staff → Manage → Memories and scroll to Connect an AI you already use
- Open the Advanced tab and click Generate new key
- Copy it — it's shown only once
- Name it after the tool you're connecting (e.g., "Claude Desktop")
Every key is scoped to your workspace. Revoke anytime.
Step 2 — Connect Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"marketingsecrets-brain": {
"type": "http",
"url": "https://www.marketingsecrets.ai/api/mcp",
"headers": {
"x-api-key": "ms_YOUR_KEY"
}
}
}
}
Restart Claude Desktop. You'll see the Brain tools appear under the tools menu.
Step 3 — Connect Cursor
In Cursor, go to Settings → MCP → Add Server:
- Name:
marketingsecrets-brain - URL:
https://www.marketingsecrets.ai/api/mcp - Header:
x-api-key: ms_YOUR_KEY
Cursor loads the tool list on the next window reload.
Step 4 — Connect ChatGPT (Custom GPT)
- In ChatGPT, create a Custom GPT.
- Add to System Instructions: "Before answering, call the marketingsecrets_brain tool with the user's question to get their business context."
- Add a new Action: method
POST, URLhttps://www.marketingsecrets.ai/api/mcp, headerx-api-key: ms_YOUR_KEY. - Save. The Custom GPT now queries your Brain before every response.
Available tools
Any MCP client gets access to these tools:
| Tool | What it does |
|---|---|
memory_search | Keyword search across your Brain — returns the newest facts containing your query |
memory_save | Save a new fact to the Brain (with an optional category) |
memory_get_recent | List the most recent facts |
memory_get_profile | Fetch your structured profile (business, audience, goals) |
Every tool only sees the workspace that minted the key.
Search matches words, in any order. memory_search splits your query into words and finds the facts containing all of them, so stock watchlist finds "current stock watchlist (Q3)". If no fact has every word it retries with any word, then with translated and synonym keywords — so a question in one language still finds a fact you saved in another. Short, distinctive queries still work best; if a search comes back empty, try a single keyword or call memory_get_recent and browse.
Your Attractive Characters, stories and hooks
Your Brain remembers facts. Your Attractive Character material — the characters themselves, their voice style sheets, their story inventory and the hooks pulled out of those stories — is separate, and these tools let a client browse all of it. They are read-only and paginated.
| Tool | What it does |
|---|---|
list_attractive_characters | Your Attractive Characters. Start here — the ids it returns are what the other tools filter on |
get_attractive_character | One full character sheet: backstory, origin story, core flaw, pillars, voice style |
list_voices | The voice style sheets attached to your characters, with a preview of each |
get_voice | One voice style sheet in full |
list_stories | A page of your story inventory, newest first |
search_stories | Stories matching a keyword — across titles, summaries, bodies, false beliefs and themes |
get_story | One story in full, with its body and its candidate hooks |
list_hooks | Every hook line on your stories, one per row, each naming the story it came from |
search_hooks | The same, filtered to hooks containing a keyword |
list_customer_avatars | Your customer avatars, each as a full sheet |
get_customer_avatar | One customer avatar sheet |
These page. A workspace can hold thousands of stories, so a list tool returns at most 50 rows (25 by default) plus a page object carrying the true total and a next_offset to copy into your next call. Ask your client "how many stories do I have?" and it should quote page.total, not the length of the page it got.
Everything here is scoped to the workspace that minted your key, and none of these tools can change anything.
Your apps' content
You also get tools for the MarketingSecrets apps you have, so a client can pull the work itself — not just what the Brain remembers about it. The read tools are named <app>_list_<thing> and <app>_get_<thing>, for example:
| Tool | What it does |
|---|---|
one_to_many_list_presentation | Your VSL and webinar scripts (pass kind: "vsl" for VSLs only) |
one_to_many_list_email_sequence | Your email sequences |
one_to_many_list_social_post | Your social posts, with the images already rendered for them |
one_to_many_list_ad_creative | Your ad creatives |
influencer_secrets_list_campaign | Your influencer campaigns, with stage breakdown and reply rate |
influencer_secrets_list_outreach_message | Your outreach — pass status: "replies" for replies you haven't reviewed |
The exact list depends on which apps are enabled for you, so call tools/list rather than hard-coding it. Ask your client to "list my VSLs" or "show me the campaigns I'm running" and it will pick the right one.
Creating things from your client
One-to-Many also exposes write tools — one_to_many_create_sequence, one_to_many_create_social_project, one_to_many_create_social_idea, one_to_many_create_framework_project, one_to_many_create_ad_persona, one_to_many_update_email, and one_to_many_run_skill — so a client can start the work, not only read it. Each takes a single input object, and each is declared to your client as a non-read-only tool, so a well-behaved one asks you before it calls it.
Two things worth knowing:
- Writes need credits. A workspace sitting at a zero balance is refused with an insufficient-credits message instead of quietly doing nothing.
one_to_many_run_skillqueues a real generation and is billed like any other run. - Influencer Secrets stays read-only. You can list campaigns and read replies from your client, but sending outreach still happens in the app.
Troubleshooting
- Tools don't appear in Claude Desktop? Fully quit and relaunch — a reload isn't enough.
- Getting "invalid x-api-key"? Check there's no whitespace around the key and that it still starts with
ms_. - Key leaked or lost? Revoke it from the Advanced tab of the connect dialog (Chief of Staff → Manage → Memories → Connect an AI you already use) and generate a new one. Keys are stored server-side as SHA-256 hashes, so a lost key can't be recovered — only replaced.
Next
- Brain API Reference — raw HTTP for custom integrations
- MCP usage examples — real prompts and tool calls
- Developer Guide — build sub-apps that write to the Brain