Tools reference
Every tool the SquidX MCP server can expose, grouped by the permission that unlocks it.
Tool names are plain verbs such as list_posts. Your client shows each tool under the server name already (mcp__squidx__list_posts in Claude Code), so the names carry no product prefix. Arguments mirror the REST parameters of the same name; the Posts reference explains each one. A tool answers with one compact JSON text block (also sent as structuredContent). List tools answer one summary per row; the matching get_ tool answers the full record. A failure sets isError with the same { error, message } shape as the API.
- read
- Changes nothing.
- write
- Changes SquidX data. Nothing reaches X.
- confirm
- Reaches X or deletes, and needs confirm: true.
Workspace
Requiresworkspace:read| Tool | Arguments | Does |
|---|---|---|
get_workspaceread | none | Name, plan, timezone, weekly posting slots, X Communities, writing preferences, automation defaults and the connected X account. Call it first. |
Workspace: write
Requiresworkspace:write| Tool | Arguments | Does |
|---|---|---|
update_posting_slotswrite | slots[] | Replace the weekly posting slots. The key creator must be an owner or an admin. |
Posts: read
Requiresposts:read| Tool | Arguments | Does |
|---|---|---|
list_postsread | status[], limit, offset | Posts made in SquidX (drafts, queue, published), one summary each, filtered by status. |
get_postread | id | One SquidX post by id, in full. |
list_open_slotsread | count | The next free weekly posting slots. The first one is where queueNext lands. |
Posts: write
Requiresposts:write| Tool | Arguments | Does |
|---|---|---|
upload_mediawrite | url, data, mimeType | Store an image from a public URL or base64. Returns the id for a segment's media. |
create_postwrite | segments[], status, scheduledAt, queueNext, exactTime, communityId, shareWithFollowers, autoReply, autoRetweet | Create a draft, or queue a post with scheduledAt or queueNext. |
update_postwrite | id, segments[], communityId, shareWithFollowers, autoReply, autoRetweet | Edit the content of a draft, queued or failed post. Only the fields passed change. |
schedule_postwrite | id, scheduledAt, queueNext, exactTime | Put a draft or failed post in the queue, or move a queued post to a new time. |
unschedule_postwrite | id | Take a queued post out of the queue. It becomes a draft again. |
delete_postconfirm | id, confirm | Delete a post that is not on X, with its attachments. |
Posts: publish
Requiresposts:publish| Tool | Arguments | Does |
|---|---|---|
publish_postconfirm | id, confirm | Send a draft, queued or failed post to X immediately. |
Analytics
Requiresanalytics:read| Tool | Arguments | Does |
|---|---|---|
get_analyticsread | range, from, to, series | Followers, posts, impressions and engagements over a period, with deltas and the posting streak. |
list_x_postsread | range, from, to, sort, limit, offset | Every post on the X account, also posts made outside SquidX, with metrics, best first. |
get_best_hoursread | range, from, to | The weekday and two-hour slots that earn the most impressions, in the workspace timezone. |
Leads
Requiresleads:read| Tool | Arguments | Does |
|---|---|---|
list_lead_listsread | none | The lead lists of the workspace. |
list_leadsread | listId, status, minRelevance, limit, offset | Qualified leads with score, reason and their newest signals. |
list_agentsread | none | The lead agents (automatic lead search), the list each one feeds, and their signal and lead counts. |
get_agentread | id | One agent with its signals and how many posts each one matched in 14 days. |
preview_signal_volumeread | type, label, handle, isSelf | Posts a keyword or an account matched on X over 7 days. Costs no quota. |
list_inboxread | agentId, signalId, status, includeFiltered, since, limit, offset | Posts the agents found on X, with the lead each one created. Read only. |
list_campaignsread | none | The DM campaigns with their send counts. Read only. |
Leads: write
Requiresleads:write| Tool | Arguments | Does |
|---|---|---|
update_lead_statuswrite | id, status | Mark a lead as new, contacted or archived. |
update_inbox_statuswrite | id, status | Archive an Inbox post, or move it back. |
Agents: write
Requiresagents:write| Tool | Arguments | Does |
|---|---|---|
create_agentwrite | icp, name, listId, newListName, signals | Create a lead agent for a list (or a new list), with optional first signals. |
update_agentwrite | id, name, icp, listId, isActive | Change the name, icp or list, or pause the agent. |
delete_agentconfirm | id, confirm | Delete an agent and its signals. Its leads stay. |
add_signalswrite | agentId, signals | Add keywords, accounts or own_orbit. Duplicates are skipped. |
update_signalwrite | id, negativeTerms, aliases, isActive | Change the negative terms or aliases of a signal, or turn it off. |
remove_signalwrite | id | Remove a signal from its agent. |
suggest_keywordsread | agentId, seed | Keyword ideas from a seed and the agent's icp, with real X volume. |
Mentions
Requiresmentions:read| Tool | Arguments | Does |
|---|---|---|
list_mentionsread | kind, status, unanswered, minFollowers, verifiedOnly, limit, offset | Replies, quotes and mentions of the connected account, with the post each one answers. |
Mentions: write
Requiresmentions:write| Tool | Arguments | Does |
|---|---|---|
reply_to_mentionconfirm | id, text, confirm | Reply on X to a mention, 280 characters, text only. |
update_mention_statuswrite | id, status | Archive a mention, or put it back in the inbox. |
Prompts
A prompt is a ready-made request your client can offer as a command, for example /mcp__squidx__plan_week in Claude Code.
| Prompt | Arguments | Does |
|---|---|---|
plan_week | topic | Drafts one post per open slot in your style, waits for your approval, then queues the approved drafts. Needs workspace:read, posts:read, posts:write and analytics:read. |
answer_mentions | minFollowers | Drafts a reply to each unanswered mention with its context, and sends only the ones you approve. Needs mentions:read and mentions:write. |
tune_agent | agentId | Reviews a lead agent's signals, suggests better keywords with their volume, and applies only the changes you approve. Needs leads:read and agents:write. |
Tool names changed on 2026-10-26
The tools lost their
squidx_ prefix: squidx_list_top_posts is now list_x_posts, squidx_list_lists is list_lead_lists, squidx_get_next_slot is list_open_slots, and the others keep their name without the prefix. If you allowed tools by name (for example in Claude Code permissions), update those names. A key made before that date keeps its permissions: make a new key, or reconnect the client, to get the new write tools.Agent tools added on 2026-10-27
A key with
agents:write can create, edit and delete lead agents and their signals. Through the API and MCP a workspace has at most 10 agents, and an agent at most 25 signals. Older keys do not have this permission: make a new key, or reconnect the client.Inbox posts are read only
list_inbox returns the posts your agents found, with the lead each one created. There is no tool that replies to them: X does not allow automated replies to posts found by search. The agent drafts the reply and gives you replyUrl, and you post it on X. Replies to your mentions are different: those people talked to you first, so reply_to_mention stays.Start with get_workspace
It returns the timezone, the posting slots and whether the X account can publish. An agent that reads it first schedules in the right timezone and never proposes a slot that does not exist.
