x-use
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENAI_API_KEY | No | Optional. Only needed for server-side text generation (auto replies, composite draft tools, background automation). Interactive MCP use is keyless because the calling agent writes the text. | |
| OPENAI_BASE_URL | No | Optional. OpenAI-compatible endpoint, for example https://openrouter.ai/api/v1 or http://localhost:11434/v1 for Ollama. Defaults to api.openai.com. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | List configured accounts with secrets stripped (no cookies, no passwords, proxy credentials masked). Read-only, never starts a browser. |
| get_metricsA | Read recorded metrics for an account (counters + recent events). Read-only, never starts a browser. |
| search_tweetsA | Search recent X posts for a query string. Read-only (draft mode
does not apply). Reuses the account's warm browser session. |
| search_profileA | Read recent posts from ONE X profile. |
| get_tweetA | 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
|
| approve_draftA | 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. |
| post_tweetA | Post a tweet from an account. |
| generate_and_postA | Generate a post about |
| reply_to_tweetA | Reply to a tweet. Pass explicit |
| prepare_replyA | 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=...). |
| run_cycleA | Run the legacy batch automation cycle in the background and return
a run handle immediately (progress goes to the logs, this never
silent-blocks). |
| engageA | Engage with tweets found via keyword search. |
| queue_postA | Schedule a post for paced execution. Pass |
| queue_engagementA | Queue a like, retweet, or reply for paced execution. |
| list_queueA | List queued actions with their full payloads (exactly what will fire), plus per-status counts. Read-only, never starts a browser. |
| cancel_queued_actionA | Cancel a pending or failed queued action. Done, processing, and already-cancelled items cannot transition. |
| process_queueA | 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
|
| get_accountA | Show one account's masked config (no cookies, no password, proxy credentials masked) plus cookie-file status. Read-only, never starts a browser. |
| add_accountA | Add an account to config/accounts.json (validated, backed up,
atomic). |
| update_accountA | Partially update an account. Only provided fields change (None =
leave unchanged); pass an empty string to clear |
| set_account_activeA | Enable or pause an account without deleting it. Pausing closes its warm browser session. |
| remove_accountA | 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. |
| list_draftsA | List drafts, newest first. |
| get_draftA | Show one draft by id. Read-only. |
| reject_draftA | Reject a pending draft so it can never be approved. Local status change only, nothing touches X. |
| get_run_statusA | Poll run_cycle handles. With |
| get_account_healthA | Read-only health snapshot for one account: config presence, cookie-file validity, metrics counters, warm-session state, queue depth, pending drafts. 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. |
| research_and_stageA | 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. |
| draft_post_variationsA | Generate |
| list_proxiesA | 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. |
| add_proxyA | 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:") or a direct URL. |
| remove_proxyA | Remove a proxy URL from a pool. Requires confirm=true. The response lists accounts still assigned pool:. Emptying a referenced pool is allowed but reported (those accounts fall back to no proxy). |
| test_proxyA | Probe a proxy with a throwaway browser: resolves the effective proxy
(explicit proxy_url wins; otherwise the account's direct URL or
pool: assignment), opens an IP-echo page, and reports the egress
IP + latency. The probe browser is throwaway and cookieless, never
account cookies or the warm session pool, but startup performs an
anonymous x.com/home load before the IP-echo fetch, so latency_ms
includes browser boot. With a round_robin pool, probing via |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| research_niche | Research what is worth engaging with on X for one account. Read-only: searches keywords and watched profiles, reads candidates including their images, and reports a scored shortlist. Stages nothing. |
| draft_replies | Write and stage X replies or posts for one account in its persona. Produces drafts or queued items for review and publishes nothing. |
| review_and_publish | Review everything staged for one X account and publish only what the user approves by id. This is the workflow that makes things public. |
| daily_check | Daily digest for one X account: health, metrics, pending drafts, and queue state in one read-only pass, then act only on the user's direction. |
| setup_account | Set up x-use from nothing: verify the install, add an X account from a cookie export, and configure its niche, keywords, and persona. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| x-use accounts | Every configured X account with secrets stripped: id, active state, target keywords, and whether a persona is set. Never starts a browser. |
| x-use pending drafts | Every draft awaiting approval, across all accounts, with the exact text that would publish. Nothing here has reached X. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ihuzaifashoukat/x-use'
If you have feedback or need assistance with the MCP directory API, please join our Discord server