protogrid

Search / io.github.lvpiggyqq/xcatcher

Xcatcher — Recent X Posts

not classified

Fetch recent public X/Twitter posts by named handle for monitoring, comparison, OSINT, and research.

v3.1.0 · active · repository · website · descriptor JSON · versions

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality88good
Trust72of 100
Uptime, 30 days94%
Latency p50527 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "xcatcher": {
      "type": "http",
      "url": "https://xcatcher.top/mcp/",
      "headers": {
        "Authorization": "Bearer ${XCATCHER_TOKEN}",
        "Accept": "application/json"
      }
    }
  }
}
claude mcp add --transport http xcatcher https://xcatcher.top/mcp/ --header "Authorization: Bearer ${XCATCHER_TOKEN}" --header "Accept: application/json"
[mcp_servers.xcatcher]
url = "https://xcatcher.top/mcp/"
bearer_token_env_var = "XCATCHER_TOKEN"
http_headers = { "Accept" = "application/json" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xcatcher": {
      "type": "remote",
      "url": "https://xcatcher.top/mcp/",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:XCATCHER_TOKEN}",
        "Accept": "application/json"
      }
    }
  }
}
{
  "mcpServers": {
    "xcatcher": {
      "type": "http",
      "url": "https://xcatcher.top/mcp/",
      "headers": {
        "Authorization": "Bearer ${XCATCHER_TOKEN}",
        "Accept": "application/json"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=xcatcher&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8veGNhdGNoZXIudG9wL21jcC8iLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtYQ0FUQ0hFUl9UT0tFTn0iLCJBY2NlcHQiOiJhcHBsaWNhdGlvbi9qc29uIn19"
}
{
  "servers": {
    "xcatcher": {
      "type": "http",
      "url": "https://xcatcher.top/mcp/",
      "headers": {
        "Authorization": "Bearer ${XCATCHER_TOKEN}",
        "Accept": "application/json"
      }
    }
  }
}
{
  "mcpServers": {
    "xcatcher": {
      "httpUrl": "https://xcatcher.top/mcp/",
      "headers": {
        "Authorization": "Bearer ${XCATCHER_TOKEN}",
        "Accept": "application/json"
      }
    }
  }
}
extensions:
  "xcatcher":
    enabled: true
    name: "xcatcher"
    type: streamable_http
    uri: "https://xcatcher.top/mcp/"
    headers:
      "Authorization": "Bearer ${XCATCHER_TOKEN}"
      "Accept": "application/json"
    timeout: 300

Placeholders to fill from your own secret store: ${XCATCHER_TOKEN}. The registry never accepts secret values.

Quality 88 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations17 of 17 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 3,418 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

17 tools, about 3,418 tokens to load them all · tool set 55f498faba22 · checked 2026-10-20 12:13 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 72 / 100

provenance90
liveness28
freshness85
hygiene100

+repository +namespace-matches-repo +website -unreachable(1 failures) ~updated-71d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://xcatcher.top/mcp/ streamable-httpnoneno (1 failures)94%527 ms2025-11-252026-10-20

Tools (17)

cancel_taskdestructiveCancel a queued task by task_id. Side effects: changes task state. Xcatcher refunds cost_points when a queued task is successfully cancelled.
create_crawl_taskdestructiveCreate 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 payload so agents can request spending approval, top up, then retry safely. Modes: - normal: Fast latest-post snapshot at scale (fresh-feed monitoring). Optimized for high-throughput batch retrieval. - deep: Deeper per-user collection/enrichment (typically slower; higher resource usage). Use when you need more than a quick latest-post snapshot. Performance note: Normal mode is optimized for a small latest-post snapshot per handle. Actual completeness and latency depend on X availability, upstream limits, and network conditions. Batching: For very large sets, split users into batches. Suggested upper bound per task: 500 users (configurable via MAX_USERS_PER_TASK). Reliability: - Use idempotency_key to make retries safe (avoid duplicate charges). - After creation, poll get_task_status every 5–10s until has_result=true. - Then call get_result_download_url (download still requires the same Bearer token).
get_account_balanceread-onlyReturn 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_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 handle list together. This does not move funds. Return payment_required_b64 unchanged to an x402-compatible wallet/client; the live amount, asset, network, destination, and quoteId are authoritative.
get_direct_result_previewread-onlyReturn 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.
get_direct_task_statusread-onlyRead 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.
get_result_download_urlread-onlyGet 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.
get_result_previewread-onlyReturn 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; use get_result_download_url when the complete XLSX is required. Read-only.
get_sample_resultread-onlyReturn 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_inforead-onlyRead 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_statusread-onlyGet 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 filesystem paths are never exposed.
get_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.
list_crawl_tasksread-onlyList 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.
preflight_crawlread-onlyNormalize 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.
submit_direct_crawl_paymentdestructiveSubmit 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.
wait_for_taskread-onlyPoll 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.
x402_topupdestructiveTop 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 (no key rotation). On success returns credited_points and balance_after (shape depends on upstream).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.lvpiggyqq/xcatcher",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "product": "Xcatcher",
      "category": [
        "social-intelligence",
        "osint",
        "market-research",
        "automation"
      ],
      "keywords": [
        "X",
        "Twitter",
        "recent-posts",
        "batch-monitoring",
        "x402-v2",
        "USDC",
        "Base",
        "accountless"
      ],
      "capabilities": {
        "input": "1-500 named X account handles per task",
        "modes": {
          "deep": "Deeper per-handle pull; 10 points per handle",
          "normal": "Small latest-post snapshot; 1 point per handle"
        },
        "access": "Accountless x402 v2 per crawl, or scoped API-key account",
        "output": "Paginated native JSON or authenticated XLSX",
        "freeOnboarding": "Anonymous no-side-effect preflight and synthetic sample result",
        "directX402Pricing": {
          "billingBasis": "normalized requested handles",
          "minimumTaskUsd": "0.01",
          "pricingVersion": "2026-08-11.progressive-v1",
          "deepUsdPerHandle": "0.10",
          "normalProgressiveTiers": [
            "1-5: $0.01",
            "6-25: $0.0075",
            "26-100: $0.006",
            "101-500: $0.005"
          ],
          "livePreflightAnd402AreAuthoritative": true,
          "internalActorFailoverHasNoExtraCharge": true
        }
      },
      "documentation": {
        "docs": "https://xcatcher.top/docs/",
        "llms": "https://xcatcher.top/llms.txt",
        "skill": "https://xcatcher.top/skills/xcatcher/SKILL.md",
        "sample": "https://xcatcher.top/api/v1/demo",
        "openapi": "https://xcatcher.top/openapi.yaml",
        "preflight": "https://xcatcher.top/api/v1/preflight",
        "discoveryMetadata": "https://xcatcher.top/discovery-metadata.json",
        "cdpBazaarValidationResource": "https://xcatcher.top/api/v1/x402/crawl?users=openai&mode=normal"
      }
    }
  },
  "title": "Xcatcher — Recent X Posts",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://xcatcher.top/mcp/",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional Xcatcher API key for account tools. Discovery and direct x402 tools work without it.",
          "placeholder": "Bearer xc_live_..."
        },
        {
          "name": "Accept",
          "default": "application/json",
          "description": "Request JSON responses from the stateless Remote MCP server."
        }
      ]
    }
  ],
  "version": "3.1.0",
  "repository": {
    "url": "https://github.com/lvpiggyqq/xcatcher-mcp-manifest",
    "source": "github"
  },
  "websiteUrl": "https://xcatcher.top/",
  "description": "Fetch recent public X/Twitter posts by named handle for monitoring, comparison, OSINT, and research."
}