Xcatcher-X (Twitter) Scraping Remote Mcp
Enables x402 pay-as-you-go top-ups using USDC on Solana blockchain for purchasing crawling credits through on-chain payment verification.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Xcatcher-X (Twitter) Scraping Remote Mcpcrawl latest posts from @elonmusk and @vitalikbuterin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
name: x402-x-tweet-fetcher description: Top up Xcatcher points via x402 on Solana (USDC), obtain an API key, create X crawl tasks, poll status, and download XLSX results. homepage: https://xcatcher.top/docs/ user-invocable: true metadata: {"openclaw":{"emoji":"π¦","homepage":"https://xcatcher.top/docs/","requires":{"bins":["curl","jq","base64"],"env":["XCATCHER_API_KEY"]},"primaryEnv":"XCATCHER_API_KEY"}}
Xcatcher (x402 + Tasks)
Use this skill to:
buy points via x402 on Solana (USDC),
obtain an API key,
create crawl tasks,
poll task status,
download XLSX results.
Base URL: https://xcatcher.top
REST base: https://xcatcher.top/api/v1
Optional health: https://xcatcher.top/mcp/health
Related MCP server: Scrapezy
Requirements
curl, jq, base64
Set
XCATCHER_API_KEYfor authenticated calls (you will obtain it in step 4 if you don't have one).
Points pricing (task cost)
mode=normal: 1 point / user
mode=deep: 10 points / user
estimated_cost = users_count Γ (mode == normal ? 1 : 10)
support chain: base / sol
Do not hardcode any USDCβpoints rate. Always trust the quote response.
0) Optional health check
BASE="https://xcatcher.top" curl -sS "$BASE/mcp/health" echo
1) Get an x402 quote (points β Solana USDC payment instructions)
Notes:
Quotes expire quickly (often ~60s). Pay immediately after receiving the quote.
BASE="https://xcatcher.top" POINTS=1
curl -sS "$BASE/api/v1/x402/quote?points=$POINTS" | tee quote.json echo
QUOTE_ID=$(jq -r '.quote_id' quote.json) USDC_MINT=$(jq -r '.accepts.solana.asset' quote.json) PAY_TO=$(jq -r '.accepts.solana.payTo' quote.json) AMOUNT_ATOMIC=$(jq -r '.accepts.solana.maxAmountRequired' quote.json)
echo "QUOTE_ID=$QUOTE_ID" echo "USDC_MINT=$USDC_MINT" echo "PAY_TO=$PAY_TO" echo "AMOUNT_ATOMIC=$AMOUNT_ATOMIC" echo "USDC_AMOUNT=$(python3 - <<'PY' import json q=json.load(open("quote.json")) amt=int(q["accepts"]["solana"]["maxAmountRequired"]) print(amt/1_000_000) PY )" echo
QUOTE_ID must save
2) Pay USDC on Solana mainnet
Send USDC (SPL) to PAY_TO for at least AMOUNT_ATOMIC (USDC has 6 decimals).
Record the Solana transaction signature, then set it below.
SOL_SIG="YOUR_SOLANA_TX_SIGNATURE"
3) Build PAYMENT-SIGNATURE header (base64 of UTF-8 JSON)
Rules:
Base64 encode once (no double encoding).
Do not wrap the header value in extra quotes.
PAYMENT_SIGNATURE_B64=$(jq -nc --arg sig "$SOL_SIG"
'{"x402Version":1,"scheme":"exact","network":"solana:mainnet","payload":{"signature":$sig}}'
| base64 | tr -d '\n')
echo "PAYMENT_SIGNATURE_B64=$PAYMENT_SIGNATURE_B64" echo
4) Buy points (quote_id + PAYMENT-SIGNATURE β api_key)
BASE="https://xcatcher.top"
curl -sS -X POST "$BASE/api/v1/x402/buy_points"
-H "Content-Type: application/json"
-H "PAYMENT-SIGNATURE: $PAYMENT_SIGNATURE_B64"
-d "$(jq -nc --arg q "$QUOTE_ID" '{quote_id:$q}')"
| tee buy.json
echo
API_KEY=$(jq -r '.api_key' buy.json) echo "API_KEY=$API_KEY" export XCATCHER_API_KEY="$API_KEY" echo "XCATCHER_API_KEY exported." echo
5) Verify balance (must-do)
BASE="https://xcatcher.top"
curl -sS "$BASE/api/v1/me"
-H "Authorization: Bearer $XCATCHER_API_KEY"
| jq .
echo
If you get 402 here or later:
Most common causes: quote expired or payment proof invalid.
Fix: redo steps 1 β 4 with a NEW quote and NEW payment.
6) Create crawl task
Rules:
users are X usernames without '@'
always provide idempotency_key
if retrying the same logical request, reuse the same idempotency_key
BASE="https://xcatcher.top" MODE="normal" IDEM="test-idem-001" USERS_JSON='["user1","user2"]'
echo "ESTIMATED_COST_POINTS=$(python3 - <<'PY' import json, os users=json.loads(os.environ.get("USERS_JSON","[]")) mode=os.environ.get("MODE","normal") per=1 if mode=="normal" else 10 print(len(users)*per) PY )" echo
curl -sS -X POST "$BASE/api/v1/tasks"
-H "Authorization: Bearer $XCATCHER_API_KEY"
-H "Content-Type: application/json"
-d "$(jq -nc --arg mode "$MODE" --arg idem "$IDEM" --argjson users "$USERS_JSON"
'{mode:$mode, users:$users, idempotency_key:$idem}')"
| tee task.json | jq .
echo
TASK_ID=$(jq -r '.task_id' task.json) echo "TASK_ID=$TASK_ID" echo
7) Poll task status until ready
Stop when download_url or result_path is present.
BASE="https://xcatcher.top" while true; do J=$(curl -sS "$BASE/api/v1/tasks/$TASK_ID" -H "Authorization: Bearer $XCATCHER_API_KEY") echo "$J" | jq '{task_id,status,status_code,updated_time,error_message,result_path,download_url}' HAS=$(echo "$J" | jq -r '(.download_url // .result_path // "") | length') if [ "$HAS" -gt 0 ]; then echo "DONE" break fi sleep 5 done echo
8) Download result (XLSX)
Download requires the same Bearer token; results are not public.
BASE="https://xcatcher.top"
curl -sS -L -o "task_${TASK_ID}.xlsx"
-H "Authorization: Bearer $XCATCHER_API_KEY"
"$BASE/api/v1/tasks/$TASK_ID/download"
echo "Saved: task_${TASK_ID}.xlsx" echo
Failure handling
401: Bearer token missing/invalid β obtain API key via buy_points or set XCATCHER_API_KEY correctly.
402: quote/proof invalid or expired β redo quote + pay + buy_points (steps 1β4).
429: rate limited β backoff; respect Retry-After if present.
Task stuck / upstream issues β report clearly; poll with increasing interval if needed.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityFmaintenanceThis Serper MCP Server supports search and webpage scraping, and all the most recent parameters introduced by the Serper API, like location.Last updated26,347159MIT
- AlicenseCqualityCmaintenanceMCP Server enabling integration with Scrapezy to retrieve structured data from websites.Last updated1813MIT
- AlicenseAqualityBmaintenanceA production-ready Model Context Protocol server that enables language models to leverage AI-powered web scraping capabilities, offering tools for transforming webpages to markdown, extracting structured data, and executing AI-powered web searches.Last updated889MIT
- AlicenseAqualityCmaintenanceAn MCP server that helps AI assistants access text content from websites that implement bot detection, bridging the gap between what you can see in your browser and what the AI can access.Last updated2104Apache 2.0
Related MCP Connectors
Agent-commerce MCP server for x402/USDC payments and affiliate splits on Base.
Agent x402 Paywall MCP β Coinbase HTTP 402 protocol + on-chain settlement. Agents pay per-call
Pay-per-call web scraping for AI agents via x402 on Base USDC. Six tools, no signup.
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/lvpiggyqq/xcatcher-mcp-manifest'
If you have feedback or need assistance with the MCP directory API, please join our Discord server