Enables x402 pay-as-you-go top-ups using USDC on Solana blockchain for purchasing crawling credits through on-chain payment verification.
Xcatcher MCP (Remote)
Remote MCP / x402 / USDC / Base / Solana / OpenAPI / Google ADK / Gemini
Xcatcher is an agent-first Remote MCP server (Streamable HTTP) for high-throughput crawling of fresh/latest posts across large sets of X (Twitter) usernames.
It supports x402 pay-as-you-go top-ups using USDC on Base and Solana, and ships an OpenAPI spec for direct import by agent builders.
Copy-paste quickstart (3 commands)
Directory listings (discovery)
Glama: https://glama.ai/mcp/servers/@lvpiggyqq/xcatcher-remote-mcp
Smithery: https://smithery.ai/search?q=xcatcher
Endpoints
Base URL:
https://xcatcher.topRemote MCP (Streamable HTTP):
https://xcatcher.top/mcp/REST API base:
https://xcatcher.top/api/v1Docs:
https://xcatcher.top/docs/Health (public):
https://xcatcher.top/mcp/health
Authentication
All MCP and REST calls require:
Authorization: Bearer xc_live_...
Acquire an API key via REST:
POST /api/v1/auth/register(creates account + returnsapi_key)POST /api/v1/auth/login(returnsapi_key, may revoke older keys)
Important:
Result files are not public direct links. Always download via authenticated endpoints using the same Bearer token.
OpenAPI import
Raw spec (copy into an agent builder / API tool):
Recommended usage:
Import the OpenAPI spec to quickly wire REST calls (points, quote/topup, downloads).
Use Remote MCP for tool-style orchestration (create → poll → download), especially with agent frameworks.
Output format
Default export: XLSX
If CSV is needed, convert the downloaded XLSX to CSV client-side.
Modes: normal vs deep
Default recommendation: normal (faster, lower latency for “latest posts” monitoring).
normal (recommended)
Purpose: fast “latest posts” snapshot at scale
Best for: monitoring, alerting, pipelines that repeatedly fetch new posts
deep (optional)
Purpose: deeper per-user collection / enrichment
Best for: deeper historical/contextual pulls where latency is less critical
Notes:
Exact cost and remaining balance are returned by the server when you create a task (e.g.,
cost_points,balance_after).
Remote MCP tools (agent-friendly core)
Xcatcher exposes a small, agent-friendly core:
create_crawl_task(side effect: consumes points)x402_topup(side effect: credits points after on-chain payment proof)get_task_status(poll until done)get_result_download_url(returns authenticated download URL)cancel_task(cancel a queued task; policy may refund)
Agents should rely on the tool schema (tools/list) for exact input fields, constraints, and server-side validation rules.
Remote MCP JSON-RPC (cURL)
MCP is JSON-RPC over HTTP. You must include Accept: application/json.
Quickstart (Google ADK → Remote MCP)
See: ./google-adk/README.md
One-liner:
Quickstart (REST API)
Workflow: create task → poll → download.
Poll + download:
x402 Top-up (Base / Solana)
When you create a task with insufficient points, you may get HTTP 402 with a PAYMENT-REQUIRED header (base64 JSON) and a body containing a quote (quote_id, payTo, maxAmountRequired, etc.).
Practical workflow:
Request a quote (or trigger 402 to receive one)
Pay USDC to the returned
payToPaste the resulting
txHash/signatureintoPAYMENT-SIGNATURE, then top up
Minimum payment note:
Minimum top-up is 0.5 USDC (paying less may fail verification).
PAYMENT-SIGNATURE format
Topup proof is sent as HTTP header: PAYMENT-SIGNATURE
Value = base64(UTF-8 JSON):
Base proof uses
txHashSolana proof uses
signature
Base example:
Solana example:
Base: quote → pay USDC → topup → /me
Solana: quote → SPL transfer → topup → /me
After topup:
Retry
create_crawl_task/POST /api/v1/tasksusing the same that triggered 402.
REST Endpoints Summary
POST /api/v1/auth/register— create account + issueapi_keyPOST /api/v1/auth/login— login + issueapi_key(may revoke older keys)GET /api/v1/me— check current user + points for Bearer keyPOST /api/v1/tasks— create a task (consumes points; returns 402 if low)GET /api/v1/tasks/<id>— read task statusGET /api/v1/tasks/<id>/download— download result file (requires Bearer)POST /api/v1/tasks/<id>/cancel— cancel queued task (policy may refund)GET /api/v1/x402/quote?points=<n>— get x402 quote by pointsPOST /api/v1/x402/topup— top up current Bearer key usingPAYMENT-SIGNATURE
Error handling (agent branching)
401 AUTH_MISSING / AUTH_INVALID: missing/invalid Bearer token402 PAYMENT_REQUIRED: pay + topup then retry (sameidempotency_key)409 RESULT_NOT_READY: keep polling429 RATE_LIMITED: back off, honorRetry-After599 UPSTREAM_UNREACHABLE: internal dependency unreachable5xx: transient errors; retry with exponential backoff
Support
Issues / requests: open an issue in this repository.