x-use
An MCP server that lets AI clients research X, work through inboxes, and publish only after draft approval — using your own browser session.
- Source repo
- ihuzaifashoukat/x-use
- Stars
- ★ 180
- Last updated
- 2d ago
- License
- MIT
- Primary language
- Python
- FA score
- 55/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code · Claude.aiOpenAI API (Partial support)
- Cost
- Free, no paid service needed
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A social media operator who wants the AI client to research a prospect's profile and recent posts, then stage a contextual reply for human approval.
- Not a fit if
- Teams that need the official X API or complete data exports
- Users wanting fully automatic sending without draft approval
- Environments that cannot run local Chromium with an X login session
- Source review
- 55/100 · Major gaps
What does this agent do, and when should you use it?
x-use is an open-source Python MCP server and CLI that connects local AI clients such as Claude, Codex, Cursor and Windsurf to X (Twitter). Instead of the official X API, it drives an async Patchright Chromium context against your already-authenticated session, so no API key is required. Version 3.2.0 ships 82 tools, seven prompts, four resource patterns and seven bundled skills spanning profile and post research, inbox and notification reads, bookmarks and post edits/deletions, reviewed publishing, outreach, lead and campaign management, plus account health and proxy diagnostics. Everything runs locally: configuration, cookies, drafts, queues and action journals live under X_USE_HOME, with separate browser contexts per account and optional proxy routes. Publishing is draft-first — messages, follows and thread starts each require individual approval unless you deliberately change the policy.
After x-use init imports your own X session cookies from a local JSON export, x-use mcp or x-use-mcp starts a stdio MCP server your client can call. The research flow is get_account_health → get_profile_context → prepare_reply → reply_to_tweet → get_draft: check readiness, read the visible profile and bounded thread context, stage a reply draft, then read back its ID and exact text; only approve_draft publishes. Inbox work uses get_inbox, search_conversations, get_conversation and get_notifications, with manage_conversation for supported request, mute/unmute and deletion actions. Publishing and account controls include get_bookmarks, edit_tweet, delete_tweet, unfollow_profile, post_tweet, prepare_thread, queue_post, process_queue, resolve_action_outcome and test_proxy. Outreach and campaigns run through prepare_outreach, send_message, follow_profile, upsert_lead, create_campaign, prepare_campaign_messages and opt_out_lead, maintaining local leads, suppression and bounded batches. All browser reads are limited to what X actually renders.
- A social media operator who wants the AI client to research a prospect's profile and recent posts, then stage a contextual reply for human approval.
- A multi-account manager triaging inboxes, unread messages, requests and notifications across accounts from one client session.
- A creator drafting a single post or a multi-post thread and inspecting the exact text before approving publication.
- A growth or sales team keeping leads, opt-outs and campaign drafts on local disk with per-account limits and delivery tracking.
- A developer wiring X research and reviewed publishing into Claude Code, Codex, Cursor or Windsurf as one step of a larger MCP workflow.
- An operator diagnosing a stale session or broken proxy before starting browser work via
get_account_health,get_session_statusandtest_proxy.
How do you install or deploy this agent?
Requires Python 3.11+ and Chromium; CI covers Python 3.11–3.14 on Windows, macOS and Linux. Install the package and the browser:
python -m pip install --upgrade x-use-mcp
python -m patchright install chromiumPick a private data directory and initialize (macOS / Linux):
export X_USE_HOME="$HOME/.local/share/x-use"
x-use init
x-use doctorOn Windows PowerShell:
$env:X_USE_HOME = "$env:LOCALAPPDATA\x-use"
x-use init
x-use doctorThe wizard configures your account and imports your own X session cookies from a local JSON export. To install from source instead:
git clone https://github.com/ihuzaifashoukat/x-use.git
cd x-use
python scripts/setup_uv.py --devuvx clients can run uvx x-use-mcp or pin a release with uvx x-use-mcp==3.2.0.
How do you use this agent?
In a client that accepts an mcpServers object, such as Claude Desktop, replace both paths with your own absolute paths:
{
"mcpServers": {
"x-use": {
"command": "/absolute/path/to/x-use",
"args": ["mcp"],
"env": {
"X_USE_HOME": "/absolute/path/to/x-use-data"
}
}
}
}On Windows use the installed x-use.exe path and forward slashes in JSON. Claude Code, Codex, Cursor and Windsurf each have their own registration locations, covered in SKILL.md; reload the client afterwards. For a first workflow, ask the client to call list_accounts, then run a reviewed flow such as: check account health, research the specified profile, prepare one reply draft and show its ID and exact text, and wait for approval before publishing — the chain is get_account_health → get_profile_context → prepare_reply → reply_to_tweet → get_draft, with approve_draft only when authorized.
What are this agent's strengths and limitations?
- No official X API credentials needed — it reuses your authenticated browser session, sidestepping API applications and quotas.
- Draft mode is on by default; messages, follows and thread starts each require individual approval, reducing accidental sends.
- Multi-account support with separate cookies, browser contexts, policy settings and optional proxy routes per account.
- Broad tool surface: 82 tools, seven prompts, four resource patterns and seven bundled skills in 3.2.0 across research, inbox, publishing, outreach, campaigns and diagnostics.
- Local-first: configuration, drafts, queue and action journals all live under X_USE_HOME, which aids audit and recovery.
- MIT licensed, published to PyPI, with a Claude Code plugin and a
npx skills addinstall path.
- Reads are bounded by visible X content; followers, inboxes and threads are not complete exports, and missing evidence stays unknown.
- Opening conversations or notifications mutates X's native read state, an irreversible side effect.
- Encrypted inboxes may require the account owner's PIN again after a browser-context restart.
- X layout changes, expired sessions, account challenges and platform limits can interrupt work; local controls do not guarantee protection from restrictions.
- The legacy Selenium batch engine (
x-use run/run_cycle) runs separately from MCP draft review, and community posting is not verified in the async runtime. - Depends on a local Chromium install and your own X login cookies, making it unsuitable for headless or cookie-free environments.
How does this agent compare with similar options?
The README notes the project was renamed from twitter-automation-ai at the v2 relaunch, and frames its browser-session approach as an alternative to methods requiring official X API credentials. No specific competing products are named in the source.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| x-use This agent | 55 · Major gaps | MCP serverFree | ★ 180 | 2d ago | Python | Codex · Claude Code · Claude.ai |
| Jev Browser | 75 · Some gaps | MCP serverFree + model costs | ★ 128 | 4d ago | JavaScript | Claude Code |
| Obscura Headless Browser | 75 · Good | CLIFree | ★ 30k | today | Rust | Claude.ai |
| Flyto2 Core | 64 · Some gaps | CLIFreemium | ★ 483 | 1d ago | Python | Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Trust: least_privilege scores 2 — config docs cap browser sessions (1-16), tool timeouts, daily action caps, and media downloads are restricted to public HTTPS hosts with redirects disabled and no account cookies; deducted because dependencies include selenium, undetected-chromedriver and selenium-stealth (anti-detection/automation surface) widening the privilege footprint. user_confirmation scores 2 — draft_mode defaults on, messages and follows always require individual approval, approve_draft is explicit; deducted because direct publishing mode, opt-in auto_drain and the legacy Selenium batch runner are separate execution paths that can bypass draft review. data_flow_transparency scores 2 — docs describe X_USE_HOME storage, LLM key precedence, env overrides and that keys are never logged; deducted because AI-client and optional model-provider data handling is only described as depending on the chosen client/provider. sensitive_data_handling scores 2 — cookie import, inbox PIN via env var consumed once, proxy credentials masked in tool responses, atomic backups; deducted because cookies are imported from a plaintext local JSON export with no encryption-at-rest discussion. dependency_security scores 2 — CI runs pip-audit against the locked dependency set, uv.lock check and pip check; deducted because several runtime deps (selenium, webdriver-manager, fake-headers, openai, requests) are unpinned and scanning only covers published advisories. external_effects scores 1 — tools post, reply, DM, follow, delete, unfollow and manage conversations, i.e. real external side effects; despite drafts and budgets, direct publishing, queue, legacy batch and community engagement paths can produce irreversible external actions, and uncertain outcomes must be manually inspected by action ID. rollback scores 1 — persistent drafts, queue retries and resolve_action_outcome exist, but published posts, sent messages and follows have no automatic rollback, only manual deletion/reversal. source_attribution scores 1 — README states MIT, author Huzaifa Shoukat, independent community project, former name twitter-automation-ai, but publisher identity is unverified by the FollowAgents registry (unknown, not suspicious); attribution rests on self-description.
Reliability: self_consistency scores 2 — pyproject reads version dynamically from src/xuse/__init__.py so package, wheel and serverInfo cannot disagree, and README/config docs broadly agree on draft_mode, daily caps and tool counts; deducted because README claims 82 tools in 3.2.0 while CONFIG_REFERENCE is still framed around 3.1.0, a version-narrative mismatch. dependency_availability scores 1 — dependencies are declared but several are unpinned, and setup additionally requires Patchright Chromium plus system libraries, a heavy environment dependency; CI covers multiple platforms but static files cannot prove installability. failure_messages scores 2 — code and tests show structured errors (BrowserActionError, BrowserBlocked with reasons like login_required, challenge, account_locked, profile_mismatch) and config docs describe structured cold-start/tool timeouts; deducted because no complete user-facing error message catalogue is shown.
Adaptability: audience_and_scenarios scores 2 — README targets research, inbox management, reviewed publishing and outreach, with client examples for Claude/Codex/Cursor/Windsurf and a first workflow; deducted because it is single-platform (X) with limited scenario breadth. capability_boundaries scores 2 — docs explicitly list limits: browser reads bounded by visible content, opening conversations changes read state, encrypted inboxes need a PIN, analytics only reports the Premium gate, community posting unverified in the async runtime; boundaries are well stated. trigger_precision scores 1 — 82 tools across multiple execution paths (draft, direct publish, queue, auto_drain, legacy batch) mean triggering depends on configured policy; docs point to the config reference but provide no clear trigger decision matrix. environment_fit scores 2 — requires Python 3.11+ and Chromium, CI covers Windows/macOS/Linux and 3.11-3.14, stdio config and uvx usage are given; deducted because desktop clients need absolute paths and X_USE_HOME env vars, raising setup friction.
Convention: information_architecture scores 2 — README has clear sections, capability table, FAQ and doc index links, with docs split by topic (config, controls, runtime, workflows); deducted because several key docs are only linked and not present in the evidence. install_notes scores 2 — pip install, Patchright Chromium install, X_USE_HOME setup, MCP client JSON config, source install and uvx usage are all provided. naming_stability scores 1 — the project was renamed from twitter-automation-ai to x-use, package name x-use-mcp coexists with x-use/x-use-mcp executables, and 3.0.0 vs 3.2.0 client commands differ, creating migration burden. examples_and_faq scores 2 — README has a first workflow example, a multi-question FAQ, workflow doc links and presets; deducted because examples are mostly descriptive rather than complete copy-paste scripts. known_limitations scores 2 — README and config docs explicitly list browser read bounds, read-state changes, PIN, analytics limits, platform limits and unverified legacy engine. license scores 2 — LICENSE is full MIT text, pyproject declares license=MIT, README and badge agree. versioning_changelog scores 1 — README references a CHANGELOG and version progression (3.0.0→3.1.0→3.2.0), but CHANGELOG content is not in the evidence and config docs lag in version, deducted. maintenance_responsibility scores 1 — README names maintainer Huzaifa Shoukat with contribution channels and SECURITY.md gives a reporting email, but publisher identity is unverified by the registry and SECURITY.md explicitly disclaims LTS or response-time guarantees.
Effectiveness: output_usability scores 2 — tools return structured results (e.g. analytics snapshot with status, metrics, coverage, observed_at), drafts expose exact text and ID, media attaches as MCP content blocks; deducted because some outputs depend on client capabilities (vision, image support). marginal_value scores 2 — no X API key, multi-account, reviewed publishing and local outreach management offer clear incremental value for specific users; deducted because similar browser-automation MCP projects exist and reliance on anti-detection libraries carries platform risk. cost_benefit scores 1 — requires Chromium install, cookie import and data-directory setup, and understanding multiple execution paths and safety budgets, a high learning/ops cost; platform layout changes, expired sessions and account challenges can interrupt work, making payoff uncertain.
Verifiability: claim_traceability scores 1 — most README capability claims map to config docs and test files (e.g. analytics paywall tests, chat reuse tests), but quantitative claims like 82 tools, seven prompts and four resource patterns are not itemized in the evidence, and key docs (CHANGELOG, MCP_GUIDE, TOOL_VALIDATION) are not present. cross_source_corroboration scores 1 — README, CONFIG_REFERENCE, pyproject, CI and tests partially corroborate each other on draft mode, dependencies and CI matrix; deducted because version numbers (3.1.0 vs 3.2.0) and tool counts are inconsistent and no independent third-party corroboration exists. fact_inference_separation scores 2 — docs reasonably separate observed evidence from inference (analytics tests explicitly accept only observed evidence and never fabricate metrics; TOOL_VALIDATION separates local protocol checks, synthetic browser fixtures and authorized live-account checks), so little deduction.
- This MCP server operates real X accounts through a browser session and can post, DM, follow and delete, producing irreversible external side effects; confirm policy before enabling direct publishing, queue auto_drain or the legacy Selenium batch runner.
- Dependencies include selenium, undetected-chromedriver and selenium-stealth (anti-detection/automation libraries) that may violate X terms and risk account restrictions; local safety caps do not guarantee protection from platform penalties.
- Cookies are imported from a plaintext local JSON export and the inbox PIN is passed via environment variable; protect the X_USE_HOME directory and export files from disclosure.
- Several runtime dependencies are unpinned, so supply-chain risk must be assessed independently; CI pip-audit only covers published advisories.
- Publisher identity is unverified by the FollowAgents registry (unknown); the project offers no LTS or response-time guarantee, so production use requires independent maintenance-risk assessment.
- Version narrative is inconsistent (README 3.2.0 vs config docs 3.1.0); verify actual tools and config keys before upgrading.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v3.2.0 x-use 3.2.0
Release notes excerpt
X-Use 3.2.0 is a maintenance release. It moves the MCP server to the MCP Python SDK v2 line and refreshes dependencies. The 82 tools, their schemas, annotations and result envelopes are unchanged. What changed - MCP Python SDK v2: the server now runs on mcp>=2.3,<3; v1 is no longer supported. Existing clients still negotiate handshake protocol versions 2024-11-05 through 2025-11-25 over stdio, and serverInfo reports the x-use package version. - Dependencies: openai 3.27, twine 7 for release checks, a setuptools 84 build floor and Python 3.14 in the Docker image. …View on GitHub ↗ -
v3.1.0 x-use 3.1.0
Release notes excerpt
X-Use 3.1.0 adds 12 MCP tools, bringing the total to 82, with reviewed publishing and inbox controls, stronger account isolation, and operational account-health scoring. What changed - Publishing and inbox controls: bookmarks, unlike/undo repost, unfollow, own-post edit/delete, conversation capabilities and supported request/mute/deletion drafts. - Account health: a transparent 0–100 readiness score with evidence gaps and recovery suggestions. Local-only checks can score at most 90; this is not a prediction of X enforcement. …View on GitHub ↗ -
v3.0.0 x-use 3.0.0 - reviewed outreach, inbox and threads
Release notes excerpt
x-use 3.0.0 adds reviewed X outreach, structured inbox and notification workflows, and resumable threads to the MCP server. - 70 MCP tools, seven prompts, four resources and seven bundled agent skills, including the new inbox skill. - Claude Code plugin and GitHub marketplace installation. - Async Patchright sessions with isolated accounts, stable proxy routes, bounded action budgets and durable recovery for uncertain writes. - Structured profile, thread, media, message and notification reads, plus reviewed leads, campaigns and multi-post workflows. …View on GitHub ↗