Skip to main content
Glama
457,829 tools. Updated 2026-08-14 18:31

"How to publish messages on X (formerly Twitter)" matching MCP tools:

  • Read messages from a Roomcomm room. Core read operation for every tick of your polling loop. Pass the `id` of the last message you saw as `since` to receive only new messages. Omit `since` on the very first tick to get the full (or most recent) history. Returns {messages: [{id, agent_id, text, timestamp}], has_more}. Track the largest `id` as your new `last_id`. Args: uuid: Room UUID or full room URL. since: Return only messages with id > since. limit: Maximum messages to return (default 100, max 500). Example: read_messages("a1b2…", since=42) on each tick.
    Connector
  • Edit an existing video on the connected channel: title, description, tags, and/or privacy (unlisted | public | private). THIS IS HOW YOU FLIP AN UNLISTED UPLOAD PUBLIC — post_to_youtube defaults to UNLISTED, and without this there was no way to publish it afterwards. Making a video PUBLIC puts it on the channel where anyone can find it, so show the user exactly what will change and get an explicit yes before calling with privacy:"public". Fields you omit are left untouched. Needs a connected YouTube channel.
    Connector
  • Search a single network for posts matching a query, returned as the unified Post[] schema and tagged with its platform. Keyless on TikTok, YouTube, and Pinterest. Instagram, Twitter/X, Reddit, and Facebook need operator-side credentials (returns credentials_required until set). Snapchat and Threads do not support keyless search (returns not_supported); LinkedIn is quarantined. To fan one query across every network at once, use search_all.
    Connector
  • Validate the latest **persisted** pending virtual dimension draft, then promote it to published and kick off a BigQuery refresh. `virtualDimensionId` in inputs equals `id` from list/get/search. Requires a pending draft row — call update_virtual_dimension_draft for an existing virtualDimensionId (or create_virtual_dimension_draft for a brand-new VDIM) before publish. Preview alone does not create a draft. Rejects invalid drafts with draftValidation errors (no publish). On success returns `virtualDimensionId`, immutable `bqName`, `name`, `computeStatus`, and published rules — does not wait for the refresh job. After publish, query using returned `bqName` for groupBy/filterCel in query — bqName is immutable (set at create from the initial name) and does not change when name is renamed. `computeStatus` is `REFRESHING` when the refresh job was queued (async — poll via get or list_virtual_dimensions until `COMPLETED` before querying), or `TO_REFRESH` when the draft was promoted but queuing the refresh job failed — do not query yet; retry publish or re-check `computeStatus` until `COMPLETED`. Deletes the pending draft version. Clerk MCP only — not available on the service route. EXAMPLE: "Publish the Environment VDIM draft" → { virtualDimensionId: "<virtualDimensionId from create/list>" }
    Connector
  • Post-publish stage — read the owner's buyer/inquiry messages (GET /messages). Read-only. Requires ``access_token``. Two modes: - Omit ``thread`` → lists the ~20 most recent conversations, newest first, one row per thread (the latest message in each). Useful fields per row: ``address``, ``prop_id``, ``prop_status``, ``msg`` (latest text), ``subject``, ``requested_by`` / ``email`` (the other party), ``thread``, ``read_msg`` ("0" = unread), ``attachments``, and ``message_type`` (``sender`` if the owner wrote the latest message, else ``receiver``). - Pass ``thread`` → returns that one conversation in full, oldest-first. Use the ``thread`` value from a list row to drill in. The list is not paginated here on purpose (the upstream ``page`` param is overloaded — it sets both page size and page number — so it is not exposed). Soft-deleted messages are dropped after paging, so a page may hold fewer than 20 rows; that is not an error. The payload is a bare array under ``data``. A 401 means the token is no longer valid (logged out, or very old) — re-authenticate with `beycome_signin_start` then `beycome_signin_verify`. To answer a message, use `beycome_reply_message`.
    Connector
  • Submit manual content to a pipeline for transformation. Use when user says "add this to my changelog", "create a newsletter from this", "transform this content", or provides content to be processed. Content will be transformed using the pipeline's persona and ICPs. Social pipelines publish to the pipeline's declared destination (x/linkedin/instagram/facebook/threads — set via update_pipeline; undeclared defaults to x) after human approval; instagram items REQUIRE media_artifact_ids. [write-tier — first use may require a manager's approval; a from-now-on approval makes future calls seamless, a just-once approval re-asks next time.]
    Connector

Matching MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Real-time X (Twitter) data platform with 2 MCP tools covering 120+ REST API endpoints. Search tweets, look up users, get timelines, extract followers/likes/retweets in bulk, monitor accounts, run giveaway draws, and perform write actions (tweet, like, retweet, follow, DM). OAuth 2.1 authentication with PKCE.
    2
    2
    694
    178
    MIT

Matching MCP Connectors

  • X (formerly Twitter) posts, profiles, and search for AI agents. Free key, self-minted, no signup.

  • Twitter (X) trends over time, with growth for any keyword. Free key at trendsmcp.ai

  • List X (Twitter) accounts connected to the authenticated Vee3 account for write capabilities. Returns user_id, user_name, display name, avatar URL, and whether each account is the default. Use user_id or user_name on future write calls, or omit both to use the default account. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before write capabilities work. Agents cannot complete OAuth; ask the user to connect, then call this tool again. Cost = 0 tokens.
    Connector
  • The Twitter for agents — broadcast a message to a public topic namespace that any agent monitoring that topic can read. Returns estimated reach (agents previously active on the topic) and pioneer status if you're first. Broadcasts count toward x711_hive_trending — high-volume topics rise to the top. Requires API key. Returns: { broadcast_id, topic, namespace, reach_before, reach_label, how_others_read }. Cost: $0.02.
    Connector
  • [Read] Reddit/Discord/Telegram/YouTube-style UGC: non-empty query uses vector API; coin without query uses OpenSearch. Both empty invalid. X/Twitter narrative -> search_x; headlines -> search_news. Not macro economic statistics; not structured event list -> get_latest_events. Read-only public research data. No account access, no order placement or fund transfers. Not investment advice.
    Connector
  • [Read] Search the open web and return a synthesized answer with cited external pages. Built-in headline lookup, news-item search, or briefing-style news list -> search_news. X/Twitter-only discussion or tweet evidence -> search_x. Read-only public research data. No account access, no order placement or fund transfers. Not investment advice.
    Connector
  • Read messages from a Roomcomm room. Core read operation for every tick of your polling loop. Pass the `id` of the last message you saw as `since` to receive only new messages. Omit `since` on the very first tick to get the full (or most recent) history. Returns {messages: [{id, agent_id, text, timestamp}], has_more}. Track the largest `id` as your new `last_id`. Args: uuid: Room UUID or full room URL. since: Return only messages with id > since. limit: Maximum messages to return (default 100, max 500). Example: read_messages("a1b2…", since=42) on each tick.
    Connector
  • Read an X/Twitter Community: profile info, member and moderator rosters, the community's tweets, or keyword search inside the community. Fixed price for info; billed per item for rosters, tweets, and search. Guidance: kind=info (fixed price) or members|moderators|tweets|search (per-item — resultsLimit MANDATORY). id = community ID. search additionally requires q.
    Connector
  • Check whether the user's tweets can be pulled: the X (Twitter) API connection (connected / disconnected), whether the browser extension has synced recently, and a rolled-up can_pull + how (x_api or extension). Use this before a sync, or when the user asks why bookmarks aren't updating. Note: the extension is browser-only and can't be driven by an agent.
    Connector
  • Publish to the user’s connected X (Twitter) account — a single post, a post with an image or video render attached, a reply to an existing post, or a whole THREAD (pass `thread` as an array and each part is posted as a reply to the one before). This PUBLISHES immediately and PUBLICLY — ALWAYS show the user the exact text and get an explicit yes BEFORE calling. Can also run a POLL (2-4 options) instead of media, and restrict who may reply. Each post must be 280 characters or fewer; longer text is REFUSED, never truncated — split it into a thread instead. Write altText whenever you attach a render. COSTS CREDITS: X charges per API request, so every post in a thread is billed, and a post containing a LINK costs roughly 13× one without — mention the cost before publishing a long thread. THIS TOOL POSTS ORGANICALLY — it does not create an ad campaign. X ads are built with create_x_ads_campaign → create_x_ads_line_item → create_x_ads_promoted_tweet, and a promoted post needs a post id, so publish here first and promote that post. Needs X connected (Settings ▸ Connectors ▸ X).
    Connector
  • Publish a built Orivox website live. Omit domain_guid to publish to a FREE Orivox subdomain (the domain itself needs no paid plan). Pass a domain_guid returned by list_domains to publish to an OWNED custom domain (that needs an active plan with a free domain slot). The site must already be built (create_project + create_new_site) before publishing -- publishing an empty project is refused with byoa_publish_no_files. Publishing can take up to a minute while the production CSS build runs, so allow for a slow response.
    Connector
  • Create a campaign on X (Twitter). ALWAYS CREATED PAUSED with no override — it spends NOTHING until set_x_ads_status(confirm:true). A CAMPAIGN ALONE CANNOT SERVE ON X: it needs a line item and a promoted post underneath it, and the read-back says so rather than letting you call it a finished ad. Requires a funding instrument (a payment method on the X ad account) — omit fundingInstrumentId to be shown the usable ones, and if there are none this refuses with that reason instead of failing at X. Budgets are in the ad account’s own currency. Everything is READ BACK from X before you are told it exists; print the returned note verbatim.
    Connector
  • Attach/replace a note (max 500 chars) on an incident. Notes publish with the incident on public status pages, their JSON and the Atom feed. Empty string clears.
    Connector
  • Real-time X/Twitter sentiment narrative. Pass ticker=NVDA for a focused fintwit read on a name, or query=... for a free-form social-media question. Returns the narrative answer with quantified bullish/bearish ratio and any source URLs social-search grounded against. Use when you want the *vibe* on a name right now (retail sentiment, breaking rumours, unusual social activity), not the news article list.
    Connector
  • Check username availability across the major social platforms concurrently. Returns JSON with per-platform results (status available/taken/error with a 0-1 confidence score) and an available/taken summary. Narrower than namesniper_check when domains are not needed; if a wanted handle is taken, offer namesniper_watch. Free and rate-limited without an API key (Instagram, TikTok, and X/Twitter return best-effort HTTP confidence); a paid key unlocks verified accuracy on those three.
    Connector
  • Publish a single output to its platform. Defaults to dry_run=true: returns the would-publish payload plus any verifier blocks without actually filing. Set dry_run=false and provide an idempotency_key to commit. The commit is the only irreversible action in the workflow; the agent should present the dry-run preview to the human and only commit on explicit go-ahead. For any piece with a rendered image, reel, or card, show the human the actual pixels (the preview_url / image_url) first: never let publish be the first time a human sees the final visual. Verifier-blocked outputs refuse to publish even with dry_run=false; clear the block on the row first. When the target social isn't linked, returns status='not_connected' plus a `connect_url` instead of publishing; send the user to connect once, then retry. Scheduling: pass `scheduled_for` (an ISO-8601 datetime in the future) to file the post for later instead of publishing now; it dispatches automatically through the same publish path. Pass `cancel_scheduled=true` to clear a pending schedule for this platform. Prefer an exact cell string (e.g. 'x:thread', 'x:single_tweet') over a bare family name. A bare family that matches more than one draft on the session returns status='ambiguous_platform' with the candidate cells rather than guessing. Every publish and dry-run response echoes `resolved_cell` so you can confirm which artifact shipped.
    Connector