Skip to content

Tools

The server exposes 13 tools. Each one maps onto one API endpoint, takes the same fields as that endpoint’s body or query, and returns the same JSON. The workspace is fixed by the key (or the X-MissLess-Workspace header), so no tool takes a workspace argument.

Tool Inputs Behind it
whoami none Returns the partner, the workspace (id, external_id, name, timezone) and the key’s label. Use it first to confirm which customer the assistant is acting for
list_accounts none GET /v1/workspaces/:id/accounts
get_account_stats account (id) GET /v1/accounts/:id/stats
create_connect_link networks?, redirect_url?, expires_in? POST /v1/workspaces/:id/connect-links. Returns the url to hand to the user
upload_media_from_url url, alt? POST /v1/media (JSON form)
create_post caption?, media? (media ids), targets (account ids or { account, caption }), schedule_at?, external_ref?, options?, status? (draft), wait? POST /v1/posts, with ?wait=true when wait is true
list_posts status?, from?, to?, external_ref?, page?, limit? GET /v1/posts
get_post id GET /v1/posts/:id
publish_post id, wait? POST /v1/posts/:id/publish
delete_post id DELETE /v1/posts/:id
list_conversations account?, kind?, status?, unread?, page?, limit? GET /v1/conversations
get_conversation id GET /v1/conversations/:id, conversation plus its last 50 messages
reply_conversation id, text, quick_replies? POST /v1/conversations/:id/messages. A DM reply on a dm conversation, a public reply on a comment conversation

Field meanings, defaults and validation are identical to the REST endpoints: Posts, Media, Conversations, Replying.

create_connect_link, upload_media_from_url, create_post, publish_post, delete_post and reply_conversation change things. create_post publishes immediately unless schedule_at or status: "draft" is set. There is no approval step on the server; see the MCP overview.

Not exposed over MCP: private replies to comments, patching posts, marking conversations read, closing conversations, deleting media, managing keys, managing webhooks. Use the REST API for those.

Create and schedule a post:

{
"name": "create_post",
"arguments": {
"caption": "Fresh cuts, Friday walk-ins welcome",
"media": ["med9x2c4v6b8n1m"],
"targets": ["acig4h2k5m7p9r1", "acfb8n2c4v6b1m3"],
"schedule_at": "2026-09-01T09:00:00Z",
"options": { "instagram": { "first_comment": "#salon #friday" } }
}
}

Find unanswered DMs:

{ "name": "list_conversations", "arguments": { "kind": "dm", "status": "open", "unread": true } }

Reply:

{ "name": "reply_conversation", "arguments": { "id": "cnv2b4d6f8h1j3l", "text": "Yes, Friday 15:00 or 16:30 is free. Which one?" } }

Every tool returns one text content block containing JSON. For lists it is the { data, page, limit, total } envelope; for single objects it is the object. On an API error the tool call fails with isError: true and a text block { "error": { "code": "...", "message": "..." } }, so the assistant can read the code and act on it.