Skip to content
Agentmart
Submit a tool

X-Use - X (Twitter) MCP Server

Research X (Twitter), read inboxes and review publishing through MCP.

Connector by ihuzaifashoukat · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 178
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/ihuzaifashoukat-x-use

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Research X (Twitter), read inboxes and review publishing through MCP. No X API key required.

Use cases: social-media, sales-prospecting

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
37 read · 30 write · 5 delete · 10 not yet classified
Secrets
1 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 82

Read from the source code; the running server may list different tools.

Read 37 · Look things up without changing anything.

  • get_account
  • get_account_analytics
  • get_account_health
  • get_account_safety
  • get_bookmarks
  • get_campaign
  • get_campaign_summary
  • get_conversation
  • get_conversation_controls
  • get_draft
  • get_home_feed
  • get_inbox
Show 25 more tools
  • get_lead
  • get_metrics
  • get_notifications
  • get_profile
  • get_profile_connections
  • get_profile_context
  • get_profile_posts
  • get_run_status
  • get_runtime_info
  • get_session_status
  • get_thread
  • get_thread_run
  • get_tweet
  • list_accounts
  • list_campaigns
  • list_drafts
  • list_leads
  • list_proxies
  • list_queue
  • prepare_outreach
  • preview_campaign_message
  • research_and_stage
  • search_conversations
  • search_profile
  • search_tweets

Write 30 · Create, change, send or run things.

  • add_account
  • add_campaign_leads
  • add_proxy
  • approve_draft
  • bookmark_tweet
  • cancel_queued_action
  • cancel_thread
  • close_session
  • create_campaign
  • draft_post_variations
  • edit_tweet
  • follow_profile
Show 18 more tools
  • generate_and_post
  • post_tweet
  • prepare_campaign_messages
  • prepare_reply
  • queue_post
  • reject_draft
  • reply_to_tweet
  • resolve_action_outcome
  • run_cycle
  • send_message
  • set_account_active
  • set_campaign_status
  • unfollow_profile
  • unlike_tweet
  • unlock_inbox
  • update_account
  • update_lead_status
  • upsert_lead

Delete 5 · Delete, drop, revoke or wipe things.

  • delete_tweet
  • manage_conversation
  • remove_account
  • remove_bookmark
  • remove_proxy

Not yet classified 10 · We could not tell from the name and description.

  • continue_thread
  • engage
  • opt_out_lead
  • pause_account_actions
  • prepare_thread
  • process_queue
  • queue_engagement
  • resume_account_actions
  • test_proxy
  • undo_retweet

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • OPENAI_API_KEY

Other settings (environment variables or headers).

  • OPENAI_BASE_URL
  • X_USE_HOME

Files it touches

  • Any path the agent passes to its tools

Tools (82)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_account

    Add an account to config/accounts.json (validated, backed up, atomic). `cookie_file` is a path ON THIS MACHINE to an exported x.com cookies JSON; it is validated and copied beside the selected accounts configuration as <account_id>_cookies.json. Cookie values never pass through the tool call. `persona` is freeform markdown describing the account's voice/engagement style (max 4000 chars).

  • add_campaign_leads

    Add 1-100 local leads from this account to a campaign. Repeated ids are ignored. The whole batch fails if any id belongs to another account. Adding a lead does not make an opted-out or closed lead eligible.

  • add_proxy

    Add a proxy URL to a named pool (created if new) in settings.json. Validated, deduped, backed up, atomic. Credentials are masked in the response. Assign it to accounts via update_account(proxy="pool:<name>") or a direct URL.

  • approve_draft

    Execute a pending draft created by a write tool. Runs the exact same execution path as direct mode (pacing, dedup, metrics). A draft can be approved exactly once; unknown or consumed ids return an error.

  • bookmark_tweet

    Prepare a bookmark draft for one exact post. Always requires approve_draft.

  • cancel_queued_action

    Cancel a pending or failed queued action. Done, processing, and already-cancelled items cannot transition.

  • cancel_thread

    Cancel remaining thread segments locally. Retains confirmed URLs and uncertain evidence; never deletes posts or clears safety uncertainty. An active send must finish before cancellation can be accepted.

  • close_session

    Close one account's browser context; retain the operator's cookie file.

  • continue_thread

    Resume an approved run only at a known unsubmitted segment after spacing/budget/preflight recovery. Uncertain segments are never resent.

  • create_campaign

    Create a local draft campaign. Personalize using {handle}, {name}, {display_name}, or {company}; include a recipient name/handle placeholder. {name} falls back to @handle. Notes cannot be templated. Nothing sends.

  • delete_tweet

    Prepare permanent deletion of your own exact post. Supply its current text (empty for media-only). Always requires approve_draft; cannot be undone.

  • draft_post_variations

    Generate `count` distinct takes on a topic with the server-side LLM (persona-aware) and stage each as a post DRAFT. Nothing is posted, approve one and reject the rest. Requires the 'llm' block in settings.

  • edit_tweet

    Prepare a text edit of your own post. Supply its current exact text and replacement; configure self_handles. X must expose Edit post; eligibility/time limits apply. Always requires approval. Media replacement is unsupported.

  • engage

    Engage with tweets found via keyword search. `actions` is a subset of ["like", "retweet"] (default ["like"]); every candidate passes the analyzer relevance gate; `max_actions` is hard-capped by the account's per-run config caps. In draft mode (default) each planned action becomes an individually approvable draft and nothing executes.

  • follow_profile

    Prepare a follow draft for one X profile; approve_draft performs the action.

Show 67 more tools
  • generate_and_post

    Generate a post about `topic` with the configured LLM and post it. In draft mode (default) the generated text is stored in the draft's payload/preview so a human reviews the actual content before anything is posted.

  • get_account

    Show one account's masked config (no cookies, no password, proxy credentials masked) plus cookie-file status. Read-only, never starts a browser.

  • get_account_analytics

    Read the signed-in owner's X analytics availability. Requires X Premium when the observed paywall says so; unsupported layouts return no metrics. Distinct from local action metrics and public post counts.

  • get_account_health

    Read-only health snapshot for one account: config presence, cookie-file validity, metrics counters, warm-session state, queue depth, pending drafts, and a transparent local readiness score out of 100. Unknown evidence earns no points; this does not predict X enforcement or establish live authentication. Never starts a browser. A config that fails validation is REPORTED (config.valid=false with the error), not raised, surfacing that is the point of a health check.

  • get_account_safety

    Read local limits, pause reason, and writes needing outcome reconciliation.

  • get_bookmarks

    Read bounded posts in the default bookmarks feed. Partial results; bookmark folders are not traversed.

  • get_campaign

    Read this account's campaign and a membership page. limit 1-100; members_next_offset identifies the next page of local outcomes.

  • get_campaign_summary

    Read local membership/delivery counts and opt-out suppression count. These are recorded outcomes; this tool never checks X or sends work.

  • get_conversation

    Read bounded visible conversation context and observed request/reply state. Cursor stays within the visible window; opening may clear X unread state. Does not accept requests.

  • get_conversation_controls

    Inspect visible request and conversation-menu controls. Opening may mark read; unsupported layouts return an error, never guessed capabilities.

  • get_draft

    Show one draft by id. Read-only.

  • get_home_feed

    Read posts currently visible in the home feed; no engagement actions.

  • get_inbox

    Read visible inbox/requests/other summaries with all/unread/read filtering. Native Unread selection is verified when available; never opens or accepts a conversation.

  • get_lead

    Read one local lead belonging to this account, including its notes.

  • get_metrics

    Read recorded metrics for an account (counters + recent events). Read-only, never starts a browser.

  • get_notifications

    Read bounded visible X notifications from a verified All or Mentions tab. Reports observed actors, related posts, type evidence and unread state; absent evidence remains unknown. Visiting this view may mark X notifications read. Results cover only the visible supported UI.

  • get_profile

    Read public profile details using visible X page elements.

  • get_profile_connections

    Read visible public followers/following. This is not a private address book or complete contact export.

  • get_profile_context

    Preferred outreach read: exact profile details and bounded authored posts together. No draft or send.

  • get_profile_posts

    Read one author's posts, posts-and-replies, or media tab. feed: posts|replies|media. Results are bounded and partial.

  • get_run_status

    Poll run_cycle handles. With `run_id` omitted, lists every run started since this server booted. Read-only.

  • get_runtime_info

    Inspect server/package versions, tool count and configured execution mode, backend workflow support and effective unlock allowance without starting a browser. Contains no credentials, paths, account identities or raw environment values. Configuration does not prove live X authentication; use get_account_health and a bounded read for that.

  • get_session_status

    Inspect local session lifecycle (cold/starting/ready/busy/closing/ disconnected/closed) without reading cookies or starting a browser. Ready means locally usable transport, not verified live X authentication. Legacy backends may report unknown for a warm session.

  • get_thread

    Read bounded visible conversation context around one exact X post. Includes ordered posts and media metadata; parent links remain unknown unless the page proves them. Results are partial, not a full archive. include_images attaches at most five photos/video posters with source mappings for YOUR model to analyze; no server LLM or video transcription. Read this before composing contextual replies or reply threads.

  • get_thread_run

    Read durable local segment states, exact published URLs and next index.

  • get_tweet

    Read-only fetch of one tweet: text, author, public counts, typed media (photos + video posters) and the account's persona. With include_images=true (default) photos also attach as image content so a vision-capable client sees them; the envelope always carries URLs + alt text as the fallback. Nothing is posted; draft mode N/A.

  • list_accounts

    List configured accounts with secrets stripped (no cookies, no passwords, proxy credentials masked). Read-only, never starts a browser.

  • list_campaigns

    List this account's local campaigns (without membership details). Status: draft, ready, paused, completed. limit 1-100, with offset.

  • list_drafts

    List drafts, newest first. `status` filters to one of pending/approved/partial/executed/failed/rejected/uncertain; `account` filters by account id; `limit` caps the response (max 100). Read-only.

  • list_leads

    List this account's local leads, optionally filtering by status or exact tag. limit 1-100; offset supports pagination. No browser starts.

  • list_proxies

    List proxy pools (size, masked members, rotation cursor), the global pool strategy, each account's assignment, and the global fallback proxy. Read-only, never starts a browser.

  • list_queue

    List queued actions with their full payloads (exactly what will fire), plus per-status counts. limit 1-100; offset pages through local history. Read-only, never starts a browser.

  • manage_conversation

    Draft one inbox action: accept a request, mute/unmute notifications, or delete a conversation from your inbox. Delete cannot be undone locally and does not promise deletion for recipients. Always requires approval; only verified visible controls are supported.

  • opt_out_lead

    Permanently suppress outreach to this account's lead handle. This blocks prepared campaign deliveries as well as future drafts.

  • pause_account_actions

    Pause browser actions durably until the operator explicitly resumes them.

  • post_tweet

    Post a tweet from an account. `media` = local file paths; `community` = target community id. In draft mode (default) returns a draft for review and posts nothing; approve_draft(draft_id) executes it.

  • prepare_campaign_messages

    Prepare at most 20 personalized private-message drafts for eligible new/qualified leads on an active account. Skip opt-outs and prior pending/delivered members. Preparation marks the campaign ready; review every exact payload and approve each draft individually. No bulk sends, browser, scraping, or LLM call occurs, even when draft_mode is off.

  • prepare_outreach

    Fetch profile details and up to 10 authored posts, then prepare ONE local DM draft with your exact supplied text. Use get_profile_context to research and write a personalized message first. Context is a bounded visible subset; it is not a complete post history. No server LLM or message send occurs. Review the returned recipient, context and draft, then approve_draft individually; draft_mode does not bypass review. Opt-outs and account activation are rechecked after the browser read.

  • prepare_reply

    Read-only reply context: the tweet's text AND media (photos attach as image content so your model can see them), plus the account's keywords and persona. YOUR model writes the reply itself, no server-side LLM, nothing posted. Then pass your text to reply_to_tweet(text=...) or queue_engagement(action="reply", text=...).

  • prepare_thread

    Stage 1-20 exact text/media posts for review; always creates a draft. Optional reply_to starts a reply thread. Every later post replies to the immediately preceding confirmed new post. No LLM is called.

  • preview_campaign_message

    Preview one campaign member's exact personalized message and local eligibility without creating drafts, reserving a lead, or sending. Includes pause, opt-out and prior-reservation reasons. Eligibility is a snapshot; preparation and approval recheck it. No browser or LLM.

  • process_queue

    Drain queued actions with jittered pacing and daily caps. THIS CALL IS THE APPROVAL GATE for queued work: items execute through the same pacing/dedup/metrics path as every other write action. With `account` omitted, every account with due items drains (each bounded by max_actions and its own daily caps).

  • queue_engagement

    Queue a like, retweet, or reply for paced execution. `action` is one of like/retweet/reply. reply requires `text` ("auto" scrapes the tweet and generates the reply NOW, so the stored payload is final). Nothing executes until process_queue is called.

  • queue_post

    Schedule a post for paced execution. Pass `text` verbatim, or a `topic` to generate the text NOW with the configured LLM (the stored payload is final, list_queue shows exactly what will be posted). `not_before` is an optional ISO 8601 timestamp. Nothing executes until process_queue is called (or auto_drain, if enabled).

  • reject_draft

    Reject a pending draft so it can never be approved. Local status change only, nothing touches X.

  • remove_account

    Remove an account from config/accounts.json. Requires confirm=true. Closes the account's warm session. The backup written during the mutation (config/backups/) is the recovery path; the cookie file is left on disk.

  • remove_bookmark

    Prepare removal of one bookmark. Always requires approve_draft.

  • remove_proxy

    Remove a proxy URL from a pool. Requires confirm=true. The response lists accounts still assigned pool:<name>. Emptying a referenced pool is allowed but reported (those accounts fail closed until reassigned).

  • reply_to_tweet

    Reply to a tweet. Pass explicit `text`, or "auto" to generate the reply with the LLM from the tweet's actual content (a read-only fetch is performed so the draft shows the real reply text). In draft mode (default) nothing is posted until approve_draft(draft_id). media accepts local attachments on the async browser backend. For conversation-wide context, read get_thread before supplying explicit reply text.

  • research_and_stage

    Search each keyword, keep relevant tweets (keyless heuristic), write a reply per tweet with the server-side LLM (persona-aware), and stage one reply DRAFT per tweet. Nothing is posted, review with list_drafts and approve selectively. Requires the 'llm' block in settings.

  • resolve_action_outcome

    After inspecting X, record succeeded or not_sent for an uncertain action. Repairs associated draft/queue history; queued not_sent work is cancelled and never resent automatically. Incorrect not_sent can cause duplicates.

  • resume_account_actions

    After resolving a challenge, probe the signed-in home page and clear the local pause. Does not reset budgets.

  • run_cycle

    Run the legacy batch automation cycle in the background and return a run handle immediately (progress goes to the logs, this never silent-blocks). `account` limits the run to one account; `pipelines` is a comma-separated subset of: competitor_reposts, keyword_replies, keyword_retweets, likes, content_curation, community_engagement (mapped onto the account's ActionConfig enable flags for this run only, config files are never mutated; same names as the CLI's `x-use run --pipeline`). Draft mode does not apply to batch cycles.

  • search_conversations

    Search the visible inbox locally; results are partial, not full message-history search.

  • search_profile

    Read recent posts from ONE X profile. `profile` takes a handle ("@nasa" or "nasa"), a profile URL, or a tweet URL (which resolves to its author). Read-only (draft mode does not apply, nothing is posted), but it reuses the account's browser session. `account` defaults to the first active configured account. Use this to watch specific people and competitors, and to re-read one of your own published posts for its public counts; use search_tweets for topic and keyword discovery. Profile timelines include pinned posts and reposts, so check `user_handle` before treating a result as the profile owner…

  • search_tweets

    Search recent X posts for a query string. Read-only (draft mode does not apply). Reuses the account's warm browser session. `account` defaults to the first active configured account. `include_images=true` additionally attaches the first photo of up to 5 tweets as image content (bounded); the per-tweet `media` URLs + alt text are always present.

  • send_message

    Prepare a reviewed DM draft for one handle or conversation. Always requires approve_draft, even when draft_mode is off.

  • set_account_active

    Enable or pause an account without deleting it. Pausing closes its warm browser session.

  • set_campaign_status

    Set local campaign status: draft, ready, paused, completed. Pausing immediately blocks preparation and approval of existing drafts. Resume a paused campaign with ready. completed is terminal.

  • test_proxy

    Probe the effective proxy in an isolated, cookieless browser using the configured backend; visits only an IP-echo endpoint, never X. Explicit proxy_url wins; account assignments inherit the global proxy. Returns validated egress IP, startup/request latency and masked route. Async HTTP(S) authentication is supported; legacy Selenium rejects authenticated proxies. Legacy round_robin probes advance its cursor.

  • undo_retweet

    Prepare removal of your repost of one exact post. Always requires approve_draft.

  • unfollow_profile

    Prepare unfollowing one exact X profile. Always requires approve_draft.

  • unlike_tweet

    Prepare removal of your like from one exact post. Always requires approve_draft.

  • unlock_inbox

    Unlock the owner's encrypted inbox once using a server environment variable. PIN never appears in tool arguments, drafts, logs or stored state. Inspect get_account_safety for remaining attempts and reset time; never loop on a rejected PIN or challenge.

  • update_account

    Partially update an account. Only provided fields change (None = leave unchanged); pass an empty string to clear `proxy`. `persona` sets the freeform persona text; pass an empty string to clear it. `cookie_file` re-imports cookies like add_account. The account's warm browser session is closed, so the next action cold-starts on the new config.

  • update_lead_status

    Change a lead's local status. Only new/qualified leads can receive campaign drafts. opted_out permanently suppresses further outreach.

  • upsert_lead

    Add/update one local lead by X handle (unique per account). Omitted fields retain their values; notes stay local and never enter messages. Status: new, qualified, contacted, replied, closed, opted_out. Opt-out suppression is permanent and cannot be removed by upserting.

Compare and alternatives

    Featured in

    Signals

    Stars
    178
    Forks
    33
    Open issues
    0
    Contributors
    3
    Weekly downloads
    100
    Last commit
    Oct 19, 2026 (9 days ago)
    Last release
    Oct 13, 2026 (15 days ago)
    Last package publish
    Oct 13, 2026 (15 days ago)

    From GitHub (fetched Oct 24, 2026) and the package registry.

    Details

    Registry name
    io.github.ihuzaifashoukat/x-use
    Version
    3.2.0
    Auth
    API key
    Packages
    pypi x-use-mcp
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    X-Use - X (Twitter) MCP Server. Agent Mart. https://agentmart.dev/connectors/ihuzaifashoukat-x-use (last updated 2026-10-24)