Agent

Tool reference

Every tool the MCP server exposes, what it takes, and what it returns.

Tools are listed only when your token carries the scope they need. An agent that cannot see a tool will not call it.

Every tool calls the same REST route the API uses. There is no second implementation, so a limit enforced over REST is enforced over MCP.

Scopes

NameTypeDescription
accounts:readreadList connected channels.
posts:readreadRead publishing history, replies and insights.
posts:writewritePublish, delete, reply, hide and upload.
offline_accessoauthKeep the agent connected after the browser closes.

accounts:read reads connected channels. posts:read reads publishing history. posts:write publishes, deletes, replies and uploads. offline_access keeps the connection alive after you close the browser.

Tools

NameTypeDescription
list_accountsaccounts:readConnected channels with their ids. Call it before publishing.
select_channelsaccounts:readPick which channels to post to, and show the result to the person before publishing.
list_platformsaccounts:readEvery channel and its limits.
list_postsposts:readRecent publishes made through uplika.
list_channel_postsposts:readWhat is on the channel right now, including posts written in the app. Each item carries a permalink.
publishposts:writecontent, accountIds, optional mediaIds, and options for per-channel settings. YouTube needs options.youtube.title and exactly one video.
open_postposts:readOne post's text, reply thread and metrics in a single call. The right tool when someone hands you a link.
get_postposts:readOne publish and the status of each target.
retry_postposts:writeRetry only the targets that failed.
delete_postposts:writeDelete the post from the channel.
list_repliesposts:readThe reply thread under a post.
replyposts:writeid, content, optional replyTo for a nested reply.
hide_replyposts:writereplyId, postId, optional hide (default true).
get_insightsposts:readViews, likes, replies, reposts, quotes, shares.
get_quotaposts:readHow much of the 24 hour allowance is used. Live usage from the platform, not the static limits.
media_upload_linkposts:writeAsk the person to upload from their own device. Returns a short-lived link to hand them.
media_upload_statusposts:readHas the person uploaded yet? Returns waiting, ready or expired plus the media ids.
media_from_urlposts:writeAttach a file that is already on the public web. One step, no upload. Share links from Drive and Dropbox return HTML, not the file.
media_presignposts:writeGet a media id and a one-time upload URL.
media_completeposts:writeConfirm the upload before publishing.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "publish",
    "arguments": {
      "content": "Shipped nested replies today.",
      "accountIds": ["acc_01H..."],
      "mediaIds": ["med_01H..."]
    }
  }
}

Common questions

Why can my agent not see a tool?

Because the token does not carry that tool's scope. Tools are listed per scope, so a read-only connection never shows publish at all rather than failing when it is called.

Which tool should the agent call first?

list_accounts. publish takes account ids, not handles, so an agent that skips it either guesses or asks you a question it could have answered itself.

Do the tools behave differently from the REST API?

No. Every tool calls the same route REST does. There is no second implementation, so a limit enforced over REST is enforced over MCP.