Xcatcher — Recent X Posts is a remote MCP server that gives an AI agent 17 tools, among them cancel_task, create_crawl_task, get_account_balance. It answers at https://xcatcher.top/mcp/ over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 22 October 2026, succeeded.
Fetch recent public X/Twitter posts by named handle for monitoring, comparison, OSINT, and research.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
cancel_task | Cancel a queued task by task_id. Side effects: changes task state. Xcatcher refunds cost_points when a queued task is successfully cancelled. Inputs: task_id |
create_crawl_task | 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=PAYMEN Inputs: users, mode, idempotency_key |
get_account_balance | 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. |
get_direct_crawl_payment | 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, s Inputs: users, mode |
get_direct_result_preview | 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 shou Inputs: task_id, task_token, limit, offset |
get_direct_task_status | 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. Inputs: task_id, task_token |
get_result_download_url | 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. Inputs: task_id |
get_result_preview | 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 pa Inputs: task_id, limit, offset |
get_sample_result | 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. |
get_service_info | 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. |
get_task_status | 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 a Inputs: task_id |
get_x402_quote | 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. Inputs: points |
list_crawl_tasks | 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. Inputs: limit, before_id |
preflight_crawl | 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 paym Inputs: users, mode |
submit_direct_crawl_payment | 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-sc Inputs: users, payment_signature_b64, mode |
wait_for_task | 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. Inputs: task_id, timeout_seconds, poll_interval_seconds |
x402_topup | 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: cre Inputs: quote_id, payment_signature_b64 |
Every block below points at https://xcatcher.top/mcp/. Pick your client and copy.
claude mcp add --transport http xcatcher-recent-x-posts https://xcatcher.top/mcp/
{
"mcpServers": {
"xcatcher-recent-x-posts": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://xcatcher.top/mcp/"]
}
}
}{
"mcpServers": {
"xcatcher-recent-x-posts": {
"url": "https://xcatcher.top/mcp/"
}
}
}{
"servers": {
"xcatcher-recent-x-posts": {
"type": "http",
"url": "https://xcatcher.top/mcp/"
}
}
}{
"context_servers": {
"xcatcher-recent-x-posts": {
"url": "https://xcatcher.top/mcp/"
}
}
}{
"mcpServers": {
"xcatcher-recent-x-posts": {
"serverUrl": "https://xcatcher.top/mcp/"
}
}
}{
"mcpServers": {
"xcatcher-recent-x-posts": {
"url": "https://xcatcher.top/mcp/"
}
}
}name: Xcatcher — Recent X Posts
version: 0.0.1
schema: v1
mcpServers:
- name: Xcatcher — Recent X Posts
type: streamable-http
url: https://xcatcher.top/mcp/{
"mcpServers": {
"xcatcher-recent-x-posts": {
"httpUrl": "https://xcatcher.top/mcp/"
}
}
}{
"mcpServers": {
"xcatcher-recent-x-posts": {
"type": "http",
"url": "https://xcatcher.top/mcp/"
}
}
}{
"mcpServers": {
"xcatcher-recent-x-posts": {
"url": "https://xcatcher.top/mcp/"
}
}
}goose://extension?url=https%3A%2F%2Fxcatcher.top%2Fmcp%2F&type=streamable_http&id=xcatcher-recent-x-posts&name=Xcatcher%20%E2%80%94%20Recent%20X%20Posts
It answered our last check on 22 October 2026 in 755 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
17, as returned by the server's own tools/list on 15 September 2026: cancel_task, create_crawl_task, get_account_balance, get_direct_crawl_payment, get_direct_result_preview, get_direct_task_status, get_result_download_url, get_result_preview, and 9 more.
It answered our last check on 22 October 2026 in 755 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://xcatcher.top/mcp/. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.lvpiggyqq. Endpoint host: xcatcher.top. ARD identifier: urn:air:io.github.lvpiggyqq:mcp:xcatcher.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.