MCP server
Automate10x exposes a Model Context Protocol server so Claude, Cursor, and any MCP-aware agent can research, draft, publish, and schedule — using the same API the app uses. It speaks the Streamable-HTTP transport.
Endpoint & auth
The MCP endpoint is:
https://automate10x.com/mcpAuthenticate with your Automate10x API key, either as an Authorization: Bearer sk_… header or a ?key=sk_… query param. Get / rotate a key in Settings → API.
Connect a client
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"automate10x": {
"url": "https://automate10x.com/mcp",
"env": {
"AUTOMATE10X_API_KEY": "<your-key>"
}
}
}
}Claude Code:
claude mcp add automate10x https://automate10x.com/mcp \
--env AUTOMATE10X_API_KEY=<your-key>Cursor / other clients — point at the endpoint above and pass the key (header or ?key=).
Tools
14 tools cover the full publishing lifecycle. The async ones (research, publish) auto-poll, so the agent gets a settled result back instead of an id to chase.
verify_connectionConfirm the key works; returns your identity, plan, and remaining credits.get_capabilitiesPer-platform character limits, media rules, and REQUIRED option fields, plus your connected accounts with their channel/board/page ids. Call this before publishing to self-configure.list_accountsList the connected social accounts this key can publish to, with their ids.research_sourceResolve a URL / YouTube / TikTok / PDF / RSS / Perplexity source and return the resolved markdown. Auto-polls until ready, so you get the content back directly.ingest_sourceCreate a source without waiting (returns the id + a poll URL). Prefer research_source.generate_postLLM-generate platform-native post variants from a prompt (+ optional sources and brand voice).create_mediaGet a presigned upload URL for a local image/video. PUT the bytes, then reference the publicUrl in a publish.publishPublish one idea to MANY destinations in a single call (targets[] + per-platform options). dryRun validates without posting. Auto-polls the job to a settled result so you get live permalinks / per-target errors back.get_jobPoll a publish job by jobId for its rollup status (queued | running | completed | partially_failed | failed).list_scheduledList scheduled posts (filters: status, platform, jobId).list_publishedList successfully-published posts with permalinks.create_webhookSubscribe a URL to signed events. Returns the signing secret ONCE.list_webhooksList your webhook subscriptions (no secret).schedule_postLegacy single-account schedule. Prefer publish for one-or-many destinations.Resources
Read-only context an agent can pull without a tool call (e.g. to ground drafting in your brand voice):
accounts://listYour connected accounts with their channel/board ids.capabilities://platformsEach platform's limits, media rules, and required option fields.posts://scheduledPosts queued for future publication.brand://{brandId}/voiceA brand's themes, products, audience, and language — for on-brand drafting.Prompts
Parameterized workflows an agent can invoke by name:
publish_from_urlResearch a URL and publish a tailored post to one or more platforms. Args: url (required), platforms (optional).weekly_campaignDraft and schedule a week of on-brand posts. Args: brandId (optional), theme (optional).A typical flow
1. get_capabilities → platform limits + your accountIds
2. publish { text, targets:[…], → returns a job; auto-polls to settled
schedule:{mode:"now"} }
3. (settled) read each target's → live permalink or per-target error
url / errorPrefer dryRun: true on the first publish to validate every target (text length, required options) before posting for real.
← Back to all docs · REST details in the API reference.