MCP

Hosted Model Context Protocol server. Give your agent one tool interface for every connected platform instead of seven separate APIs.

HostedStreamable HTTPBearer auth11 toolsPhase 5 agent contract4 clients supported

At a glance

QuestionAnswer
Who is it forAgents and LLM workflows that need to post, analyze, and manage social accounts
How it runsHosted by UniPost — no server to deploy
AuthBearer API key in the Authorization header
TransportStreamable HTTP — falls back to SSE for legacy clients
Setup time~2 minutes per client

MCP vs SDK vs raw API

The first question worth answering: should your integration even use MCP?

Use caseBest interfaceWhy
LLM-driven operator or agent workflowMCPNative tool surface for accounts, posts, and analytics
Typed application integrationSDKBetter ergonomics and language-native patterns
Low-level debugging or custom clientRaw APIDirect control over raw requests and responses
Large local video upload before publishMedia API + MCPUpload to UniPost storage first, then publish with media_ids

Transport and endpoint

PropertyValue
Endpointhttps://mcp.unipost.dev/mcp
TransportStreamable HTTP
AuthBearer YOUR_API_KEY
Legacy fallbackhttps://mcp.unipost.dev/sse

Available tools

ToolWhat it does
unipost_list_accountsList connected social media accounts
unipost_upload_mediaUpload media into UniPost's media library and return a media_id
unipost_get_mediaCheck whether a media upload is hydrated and ready to publish
unipost_create_postCreate and publish a post to one or more accounts
unipost_create_youtube_video_postUpload + publish in one YouTube-oriented video workflow
unipost_get_postGet the status and details of a post
unipost_get_analyticsRead engagement metrics for a post
unipost_list_postsList recent posts filtered by status
unipost_agent_capabilitiesRead the shared UniPost agent intent catalog and safety model
unipost_agent_contextGround an agent in workspace, profile, account, and setup readiness context
unipost_agent_planConvert an agent intent into structured safe actions

The MCP surface is strongest for account lookup, text publishing, analytics, and media that is already reachable by URL or already uploaded into UniPost. Large local video files are not the ideal path today.

Agent contract

Phase 5 mirrors CLI agent intent names and safety levels into the MCP server. Agents can discover capabilities through MCP, generate a plan, and still use the CLI for local validation, drafts, and explicit publish approval when a terminal workflow is the better fit.

Tool or commandContract
unipost_agent_capabilitiesReturns intent names, canonical actions, safety levels, required inputs, and catalog_version.
unipost_agent_contextReturns authenticated workspace context through the same API key used by hosted MCP.
unipost_agent_planReturns structured actions for supported intents without executing raw terminal commands.
unipost agent mcp-test --jsonCLI-side auth and readiness check before adding UniPost to an MCP client.
unipost agent install --client codex|claude-codeGenerates first-party client instruction package setup guidance.
unipost agent execute --plan plan.jsonOptional beta for structured read-only, validate, and draft-write plans; live publish plans are rejected.

“Generate text, then publish immediately” is not the safest pattern. Prefer generate → validate → preview → publish.

1
List accounts
Ground the agent in real destination accounts.
2
Draft candidate copy
Let the model propose platform-aware captions.
3
Validate
Catch caption, media, and support issues before publish.
4
Preview
Send a human-readable link when review is required.
5
Publish
Commit once the draft is approved.

YouTube video workflow

For YouTube, the most reliable flow today is: upload the video into UniPost’s media library first, then create the post with a media_id. That matches the dashboard flow and avoids pushing a large local file through the MCP request path.

StepWhat to doWhy
1Create a media upload in UniPostReserve a media row and get a presigned upload URL
2Upload the local video directly to storageKeep large file transfer out of the MCP request path
3Confirm the media row is uploadedMake sure UniPost can resolve the object before publish
4Call unipost_create_post with media_idsPublish to YouTube using the same workflow as the dashboard

UniPost exposes unipost_create_youtube_video_post as a higher-level wrapper, but for very large local files the most reliable path is still a hosted video_url or a reusable media_id.

Client configuration

Each client expects this config in a different place. You can copy the matching snippet here or generate it with unipost agent mcp-config --client cursor|claude-code, then restart the client.

ClientConfig locationNotes
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)Merge the unipost entry into the existing mcpServers block
Cursor.cursor/mcp.json (project) or ~/.cursor/mcp.json (global)Project config is easiest when you want the same MCPs checked into a repo
Windsurf~/.codeium/windsurf/mcp_config.jsonOr open MCP settings and edit the raw config there
Claude CodeNo file needed — run the claude mcp add commandFor a checked-in config, use .mcp.json at the project root with claude mcp add --scope project

Test the server directly

If you want to confirm auth and transport outside an MCP client, run the CLI auth test first. The cURL initialize call is useful for lower-level transport debugging.

Limitations

LimitationReason
Large local video uploads are awkwardMCP request path is not built for big binary transfer — use the Media API first, then publish with media_ids
Hosted only, no self-host todayThe MCP surface runs on UniPost infrastructure — agents authenticate with their API key
Tool inventory is curatedUniPost intentionally exposes a small, stable tool set — new tools ship under the same naming convention
Rate limits follow your UniPost planThe same per-key limits as the REST API apply

Next steps