@marketmasher/mcp-server
v0.10.0
Published
Model Context Protocol server for MarketMasher. Lets Claude, ChatGPT, and other MCP-capable agents drive MarketMasher campaigns on behalf of the user.
Maintainers
Readme
@marketmasher/mcp-server
Model Context Protocol server for MarketMasher. Lets Claude, ChatGPT, and other MCP-capable agents drive MarketMasher campaigns on behalf of the user.
What you can do with it
Once installed, an agent can handle requests like:
Create a MarketMasher campaign from this sales page: https://example.com/offer. Run the swarm to build the brief, then generate LinkedIn and Twitter content. Approve everything and turn on autopilot three times a week.
Under the hood the agent calls tools like mm_create_campaign,
mm_run_swarm, mm_generate_content, mm_approve_all, mm_set_autopilot.
Safety model
- Every tool call goes through the MarketMasher REST API using your personal API key. All server-side safeguards apply: scopes, per-key rate limits, audit logging, credit accounting.
- API keys cannot delete anything. An agent can create, edit, publish, and schedule, but it cannot remove campaigns, posts, brand voices, or anything else. Destructive actions must be done in the UI.
- You can narrow an agent's access by issuing a key with fewer scopes
(e.g.
readonly, orread,writewithoutpost). - You can cap the agent's throughput with per-key rate limits. Your subscription plan sets a hard ceiling.
Install
1. Generate an API key
Go to Settings -> API Access in MarketMasher and click Generate New Key.
Pick the scopes you want the agent to have. Copy the key (you only see it
once). Format: mm_live_<64 hex chars>.
2. One-line install (recommended)
Requires Node.js 18+. In a terminal:
npx -y @marketmasher/mcp-server install --key mm_live_YOUR_KEYThis auto-detects Claude Desktop, Claude Code, Cursor, and Windsurf on your machine and writes the right config file for each. Existing MCP servers are preserved. Restart your AI client to load the tools.
2b. Manual install (Claude Desktop)
Add to claude_desktop_config.json:
{
"mcpServers": {
"marketmasher": {
"command": "npx",
"args": ["-y", "@marketmasher/mcp-server"],
"env": {
"MM_API_KEY": "mm_live_your_key_here",
"MM_BASE_URL": "https://app.marketmasher.com"
}
}
}
}On macOS this file lives at
~/Library/Application Support/Claude/claude_desktop_config.json.
On Windows: %APPDATA%\Claude\claude_desktop_config.json.
Restart Claude Desktop. You should see marketmasher in the tool list.
3. Wire up in other MCP clients
Any MCP-compliant client works. Point it at mm-mcp (or node
/path/to/mcp-server/bin/mm-mcp.js for development), set the same two env
vars, and it will speak stdio MCP.
Environment
| Var | Required | Default | Purpose |
| - | - | - | - |
| MM_API_KEY | yes | — | Personal API key, starts with mm_live_ |
| MM_BASE_URL | no | https://app.marketmasher.com | Override for staging / self-hosting |
Tools
Grouped by purpose. See src/index.js for exact parameters.
Read
mm_me— profile, credits, planmm_stats— dashboard statsmm_leaderboard— monthly top usersmm_list_campaigns— all campaignsmm_get_campaign— single campaignmm_list_packs— content packs for a campaignmm_list_queue— scheduled posts queuemm_list_accounts— connected social accountsmm_list_webhooks— user webhooksmm_list_brand_voices— saved brand voices
Campaign lifecycle
mm_create_campaign— new campaignmm_update_campaign— edit (auto-refreshes brief on URL change)mm_refresh_brief— force brief re-fetchmm_run_swarm— run the agent swarm brief passmm_generate_content— full content pack (costs credits)mm_regenerate_platform— single platform regenmm_approve_platform— toggle approval for one platformmm_approve_all— bulk-approve everything with content
Publishing
mm_post_now— publish immediatelymm_schedule_post— schedule for latermm_retry_post— retry a failed postmm_set_autopilot— configure autopilot
Running locally for development
cd mcp-server
npm install
MM_API_KEY=mm_live_... MM_BASE_URL=https://test.marketmasher.com node bin/mm-mcp.jsThe server communicates over stdio, so an interactive shell will just look idle. Use an MCP client (Claude Desktop, or the MCP inspector) to exercise it.
Not included (yet)
- Destructive operations — intentional, see Safety Model above.
- Adding / disconnecting social accounts — needs OAuth in a browser.
- Adding / revoking API keys — must be done in the UI.
- File uploads (images, support attachments) — agent can trigger AI image
generation via
mm_generate_contentbut not upload arbitrary files.
These are all reachable via the REST API for users who want to build their own integrations; they're held back from the MCP server because an agent driving them is either awkward (OAuth) or risky (key management).
