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.
Writes
Section titled “Writes”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.
Example tool calls
Section titled “Example tool calls”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?" } }Result shape
Section titled “Result shape”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.