
Xcatcher — Recent X Posts
A Solana-powered X/Twitter crawler that lets Claude buy API credits with USDC, submit batch crawl jobs, and download spreadsheet results. You get a quote, send USDC on Solana mainnet, prove payment via an x402 signature header, and receive an API key. From there you create tasks by username (normal or deep mode, different point costs), poll until ready, and pull down XLSX files with the scraped data. The whole flow is REST-based over streamable HTTP. Useful when you need programmatic access to X profile data at scale and want to pay with stablecoins instead of managing traditional API subscriptions. Requires curl, jq, and a Solana wallet with USDC.
- tools
- 17
- auth
- Secret needed
- transport
- HTTP
- last updated
- Aug 10, 2026
Install
From registry metadata$ npx add-mcp https://xcatcher.top/mcp/ --name xcatcher --header 'Authorization: Bearer ${API_TOKEN}' --header 'Accept: application/json'Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http xcatcher https://xcatcher.top/mcp/ --header 'Authorization: YOUR_AUTHORIZATION' --header 'Accept: application/json'Run in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 17 toolsVerified live against the running server on Nov 6, 2026.
get_service_infoRead Xcatcher's live capabilities, prices, limits, endpoints, and recommended agent workflow. Call this first when planning a crawl or when cached documentation may be stale. No points are consumed.
Read Xcatcher's live capabilities, prices, limits, endpoints, and recommended agent workflow. Call this first when planning a crawl or when cached documentation may be stale. No points are consumed.
No parameters. Call it with no arguments.
preflight_crawlNormalize and deduplicate X handles, validate the mode, and preview the current modeled points/USDC cost. This free read-only check requires no account, creates no quote or task, and moves no funds. Use it before requesting a live x402 payment challenge.2 params
Normalize and deduplicate X handles, validate the mode, and preview the current modeled points/USDC cost. This free read-only check requires no account, creates no quote or task, and moves no funds. Use it before requesting a live x402 payment challenge.
modestringnormal · deepdefault: normalusers*arrayget_sample_resultReturn a stable synthetic example of Xcatcher's paginated result and coverage metadata. No live X data is fetched, no account is needed, no task or quote is created, and no funds move.
Return a stable synthetic example of Xcatcher's paginated result and coverage metadata. No live X data is fetched, no account is needed, no task or quote is created, and no funds move.
No parameters. Call it with no arguments.
get_account_balanceReturn the account attached to the current Bearer API key and its points balance. Use before creating a task to estimate whether an x402 top-up will be needed. Read-only.
Return the account attached to the current Bearer API key and its points balance. Use before creating a task to estimate whether an x402 top-up will be needed. Read-only.
No parameters. Call it with no arguments.
list_crawl_tasksList recent tasks owned by the current Bearer API key, newest first. Use next_before_id for cursor pagination. Read-only and does not consume points.2 params
List recent tasks owned by the current Bearer API key, newest first. Use next_before_id for cursor pagination. Read-only and does not consume points.
before_idvaluelimitintegerget_x402_quoteCreate a short-lived USDC quote for a requested number of Xcatcher points. Returns the exact live amount and supported Base/Solana payment requirements; it does not move funds. Ask the user before signing or sending any payment.1 params
Create a short-lived USDC quote for a requested number of Xcatcher points. Returns the exact live amount and supported Base/Solana payment requirements; it does not move funds. Ask the user before signing or sending any payment.
points*integerget_direct_crawl_paymentCreate a request-bound x402 v2 payment requirement for an accountless crawl. Use this only for the accountless x402 path after preflight_crawl; API-key accounts use create_crawl_task instead. Normal requests use progressive batch pricing, so quote the complete deduplicated han...2 params
Create a request-bound x402 v2 payment requirement for an accountless crawl. Use this only for the accountless x402 path after preflight_crawl; API-key accounts use create_crawl_task instead. Normal requests use progressive batch pricing, so quote the complete deduplicated han...
modestringnormal · deepdefault: normalusers*arraysubmit_direct_crawl_paymentSubmit an x402 v2 PAYMENT-SIGNATURE for the exact users/mode used by get_direct_crawl_payment. This may settle USDC and create a crawl task. Call only after explicit spending approval. On success, securely save task_token: it grants task-scoped result access for seven days.3 params
Submit an x402 v2 PAYMENT-SIGNATURE for the exact users/mode used by get_direct_crawl_payment. This may settle USDC and create a crawl task. Call only after explicit spending approval. On success, securely save task_token: it grants task-scoped result access for seven days.
modestringnormal · deepdefault: normalpayment_signature_b64*stringusers*arrayget_direct_task_statusRead an accountless paid crawl using its task_id and task-scoped token. Use this instead of get_task_status for an accountless x402 task. Poll every 5-10 seconds until task.has_result is true or it reaches failed/cancelled.2 params
Read an accountless paid crawl using its task_id and task-scoped token. Use this instead of get_task_status for an accountless x402 task. Poll every 5-10 seconds until task.has_result is true or it reaches failed/cancelled.
task_id*integertask_token*stringget_direct_result_previewReturn structured JSON rows for a completed accountless paid crawl. Use this instead of get_result_preview for an accountless x402 task; API-key accounts use get_result_preview. Use offset for pagination; the task token is required and should be treated as a secret.4 params
Return structured JSON rows for a completed accountless paid crawl. Use this instead of get_result_preview for an accountless x402 task; API-key accounts use get_result_preview. Use offset for pagination; the task token is required and should be treated as a secret.
limitintegeroffsetintegertask_id*integertask_token*stringcreate_crawl_taskCreate a crawl task for one or more X (Twitter) usernames. Side effects: creates a new task AND consumes points. If points are insufficient, upstream returns HTTP 402 with PAYMENT-REQUIRED (quote). This tool surfaces it as error.code=PAYMENT_REQUIRED with payment_required payl...3 params
Create a crawl task for one or more X (Twitter) usernames. Side effects: creates a new task AND consumes points. If points are insufficient, upstream returns HTTP 402 with PAYMENT-REQUIRED (quote). This tool surfaces it as error.code=PAYMENT_REQUIRED with payment_required payl...
idempotency_keyvaluemodestringnormal · deepdefault: normalusers*arrayx402_topupTop up points for the CURRENT Bearer key using x402 proof. Inputs: - quote_id: returned by PAYMENT-REQUIRED (or /api/v1/x402/quote) - payment_signature_b64: base64(JSON) that will be passed as HTTP header PAYMENT-SIGNATURE Side effects: credits points to the same Bearer key (n...2 params
Top up points for the CURRENT Bearer key using x402 proof. Inputs: - quote_id: returned by PAYMENT-REQUIRED (or /api/v1/x402/quote) - payment_signature_b64: base64(JSON) that will be passed as HTTP header PAYMENT-SIGNATURE Side effects: credits points to the same Bearer key (n...
payment_signature_b64*stringquote_id*stringget_task_statusGet API-key account task status by task_id (read-only); accountless x402 tasks use get_direct_task_status instead. Recommended polling interval: every 5–10 seconds until has_result=true. Returns safe structured state, result metadata, and authenticated result URLs; server file...1 params
Get API-key account task status by task_id (read-only); accountless x402 tasks use get_direct_task_status instead. Recommended polling interval: every 5–10 seconds until has_result=true. Returns safe structured state, result metadata, and authenticated result URLs; server file...
task_id*integerwait_for_taskPoll a crawl task server-side until it has a result, reaches a terminal failure/cancelled state, or the bounded timeout expires. Read-only and cheaper for agent context than repeated manual polling.3 params
Poll a crawl task server-side until it has a result, reaches a terminal failure/cancelled state, or the bounded timeout expires. Read-only and cheaper for agent context than repeated manual polling.
poll_interval_secondsintegertask_id*integertimeout_secondsintegerget_result_previewReturn up to 100 result rows from an API-key account task as native structured JSON for direct agent analysis; accountless x402 tasks use get_direct_result_preview instead. Use offset/next_offset for pagination; this does not download or parse XLSX. Use after has_result=true;...3 params
Return up to 100 result rows from an API-key account task as native structured JSON for direct agent analysis; accountless x402 tasks use get_direct_result_preview instead. Use offset/next_offset for pagination; this does not download or parse XLSX. Use after has_result=true;...
limitintegeroffsetintegertask_id*integerget_result_download_urlGet an absolute download URL for a task result (read-only). If the task is not finished, returns ok=false with code=RESULT_NOT_READY (HTTP 409). Downloading the URL requires the same Authorization: Bearer token.1 params
Get an absolute download URL for a task result (read-only). If the task is not finished, returns ok=false with code=RESULT_NOT_READY (HTTP 409). Downloading the URL requires the same Authorization: Bearer token.
task_id*integercancel_taskCancel a queued task by task_id. Side effects: changes task state. Xcatcher refunds cost_points when a queued task is successfully cancelled.1 params
Cancel a queued task by task_id. Side effects: changes task state. Xcatcher refunds cost_points when a queued task is successfully cancelled.
task_id*integerSponsors
Readme
Xcatcher — X (Twitter) MCP Server and Agent Skill
Xcatcher gives AI agents recent public X (formerly Twitter) posts for one or many named account handles. It combines a public Remote MCP server, an installable Agent Skill, structured JSON results, a REST API, and accountless x402 v2 USDC pay-per-crawl on Base.
Start here
For an AI agent, provide the canonical Skill URL:
https://xcatcher.top/skills/xcatcher/SKILL.md
The standalone SKILL.md contains the complete Remote MCP workflow. For a persistent installation in Codex, Claude Code, Cursor, Cline, and other Agent Skills compatible hosts, use the dedicated minimal Skill repository:
npx skills add lvpiggyqq/xcatcher-skill --skill xcatcher
GitHub CLI users can inspect and install the same package with:
gh skill preview lvpiggyqq/xcatcher-skill xcatcher
gh skill install lvpiggyqq/xcatcher-skill xcatcher
See the installation guide or the dedicated xcatcher-skill repository. A versioned ZIP remains available for hosts that install bundles directly:
Details
- Repository
- github.com/lvpiggyqq/xcatcher-mcp-manifest
- Website
- xcatcher.top
- Categories
- Search & Web Crawling, Media & Entertainment
- Transport
- HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Tools verified
- Nov 6, 2026