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
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.
About
Use cases: social-media, sales-prospecting
Reviews
Write a reviewNo 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_accountget_account_analyticsget_account_healthget_account_safetyget_bookmarksget_campaignget_campaign_summaryget_conversationget_conversation_controlsget_draftget_home_feedget_inbox
Show 25 more tools
get_leadget_metricsget_notificationsget_profileget_profile_connectionsget_profile_contextget_profile_postsget_run_statusget_runtime_infoget_session_statusget_threadget_thread_runget_tweetlist_accountslist_campaignslist_draftslist_leadslist_proxieslist_queueprepare_outreachpreview_campaign_messageresearch_and_stagesearch_conversationssearch_profilesearch_tweets
Write 30 · Create, change, send or run things.
add_accountadd_campaign_leadsadd_proxyapprove_draftbookmark_tweetcancel_queued_actioncancel_threadclose_sessioncreate_campaigndraft_post_variationsedit_tweetfollow_profile
Show 18 more tools
generate_and_postpost_tweetprepare_campaign_messagesprepare_replyqueue_postreject_draftreply_to_tweetresolve_action_outcomerun_cyclesend_messageset_account_activeset_campaign_statusunfollow_profileunlike_tweetunlock_inboxupdate_accountupdate_lead_statusupsert_lead
Delete 5 · Delete, drop, revoke or wipe things.
delete_tweetmanage_conversationremove_accountremove_bookmarkremove_proxy
Not yet classified 10 · We could not tell from the name and description.
continue_threadengageopt_out_leadpause_account_actionsprepare_threadprocess_queuequeue_engagementresume_account_actionstest_proxyundo_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_URLX_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_accountAdd 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_leadsAdd 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_proxyAdd 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_draftExecute 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_tweetPrepare a bookmark draft for one exact post. Always requires approve_draft.
cancel_queued_actionCancel a pending or failed queued action. Done, processing, and already-cancelled items cannot transition.
cancel_threadCancel 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_sessionClose one account's browser context; retain the operator's cookie file.
continue_threadResume an approved run only at a known unsubmitted segment after spacing/budget/preflight recovery. Uncertain segments are never resent.
create_campaignCreate 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_tweetPrepare permanent deletion of your own exact post. Supply its current text (empty for media-only). Always requires approve_draft; cannot be undone.
draft_post_variationsGenerate `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_tweetPrepare 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.
engageEngage 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_profilePrepare a follow draft for one X profile; approve_draft performs the action.
Show 67 more tools
generate_and_postGenerate 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_accountShow one account's masked config (no cookies, no password, proxy credentials masked) plus cookie-file status. Read-only, never starts a browser.
get_account_analyticsRead 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_healthRead-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_safetyRead local limits, pause reason, and writes needing outcome reconciliation.
get_bookmarksRead bounded posts in the default bookmarks feed. Partial results; bookmark folders are not traversed.
get_campaignRead this account's campaign and a membership page. limit 1-100; members_next_offset identifies the next page of local outcomes.
get_campaign_summaryRead local membership/delivery counts and opt-out suppression count. These are recorded outcomes; this tool never checks X or sends work.
get_conversationRead 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_controlsInspect visible request and conversation-menu controls. Opening may mark read; unsupported layouts return an error, never guessed capabilities.
get_draftShow one draft by id. Read-only.
get_home_feedRead posts currently visible in the home feed; no engagement actions.
get_inboxRead visible inbox/requests/other summaries with all/unread/read filtering. Native Unread selection is verified when available; never opens or accepts a conversation.
get_leadRead one local lead belonging to this account, including its notes.
get_metricsRead recorded metrics for an account (counters + recent events). Read-only, never starts a browser.
get_notificationsRead 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_profileRead public profile details using visible X page elements.
get_profile_connectionsRead visible public followers/following. This is not a private address book or complete contact export.
get_profile_contextPreferred outreach read: exact profile details and bounded authored posts together. No draft or send.
get_profile_postsRead one author's posts, posts-and-replies, or media tab. feed: posts|replies|media. Results are bounded and partial.
get_run_statusPoll run_cycle handles. With `run_id` omitted, lists every run started since this server booted. Read-only.
get_runtime_infoInspect 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_statusInspect 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_threadRead 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_runRead durable local segment states, exact published URLs and next index.
get_tweetRead-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_accountsList configured accounts with secrets stripped (no cookies, no passwords, proxy credentials masked). Read-only, never starts a browser.
list_campaignsList this account's local campaigns (without membership details). Status: draft, ready, paused, completed. limit 1-100, with offset.
list_draftsList 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_leadsList this account's local leads, optionally filtering by status or exact tag. limit 1-100; offset supports pagination. No browser starts.
list_proxiesList 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_queueList 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_conversationDraft 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_leadPermanently suppress outreach to this account's lead handle. This blocks prepared campaign deliveries as well as future drafts.
pause_account_actionsPause browser actions durably until the operator explicitly resumes them.
post_tweetPost 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_messagesPrepare 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_outreachFetch 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_replyRead-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_threadStage 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_messagePreview 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_queueDrain 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_engagementQueue 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_postSchedule 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_draftReject a pending draft so it can never be approved. Local status change only, nothing touches X.
remove_accountRemove 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_bookmarkPrepare removal of one bookmark. Always requires approve_draft.
remove_proxyRemove 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_tweetReply 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_stageSearch 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_outcomeAfter 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_actionsAfter resolving a challenge, probe the signed-in home page and clear the local pause. Does not reset budgets.
run_cycleRun 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_conversationsSearch the visible inbox locally; results are partial, not full message-history search.
search_profileRead 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_tweetsSearch 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_messagePrepare a reviewed DM draft for one handle or conversation. Always requires approve_draft, even when draft_mode is off.
set_account_activeEnable or pause an account without deleting it. Pausing closes its warm browser session.
set_campaign_statusSet 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_proxyProbe 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_retweetPrepare removal of your repost of one exact post. Always requires approve_draft.
unfollow_profilePrepare unfollowing one exact X profile. Always requires approve_draft.
unlike_tweetPrepare removal of your like from one exact post. Always requires approve_draft.
unlock_inboxUnlock 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_accountPartially 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_statusChange a lead's local status. Only new/qualified leads can receive campaign drafts. opted_out permanently suppresses further outreach.
upsert_leadAdd/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
- Repository
- github.com/ihuzaifashoukat/x-use
- 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)