Remote MCP · x402 v2 · Structured JSON

让 Agent 稳定拿到 X 近期帖子

输入一个或一批 X account handles,异步获取近期公开帖子。钱包 Agent 无需注册即可用 Base USDC 按次付费;已有 API Key 的 Agent 可以继续使用积分任务。

正在检查 MCP 健康与工具发现…
Quickstart

60 秒接入

只配置 Remote MCP 地址即可发现工具并使用无账户 x402;如果已有 xc_live_...,再添加 Authorization header 以启用账户工具。

Endpoint

https://xcatcher.top/mcp/

Transport

Streamable HTTP · JSON response

Auth

可选:Bearer xc_live_...

通用 MCP 配置模板

不同 Agent Host 的配置字段可能略有区别;保留 URL 与 header 值即可。

{
  "mcpServers": {
    "xcatcher": {
      "type": "http",
      "url": "https://xcatcher.top/mcp/",
      "headers": {"Accept": "application/json"}
    }
  }
}

先验证匿名发现

curl -sS https://xcatcher.top/mcp/health

curl -sS -X POST https://xcatcher.top/mcp/ \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
给 Agent 最省事的方式:运行 npx skills add lvpiggyqq/xcatcher-skill --skill xcatcher。完整的 安装说明同时覆盖 Codex、Claude Code、Cursor、Cline 与 GitHub Copilot;也可以先阅读 SKILL.md
Access

选择访问方式

优先选择最少前置条件的路径。钱包 Agent 可直接按任务支付;长期监控和批量复用则适合 API Key 账户。

A

程序化试用

POST /api/v1/auth/register 创建账号和 key,目前返回 10 个试用积分。注册会产生外部账号,Agent 应先取得许可。

curl -sS -X POST https://xcatcher.top/api/v1/auth/register \
  -H 'Content-Type: application/json' \
  -d '{"username":"YOUR_USERNAME","password":"A_STRONG_PASSWORD"}'
B

钱包按次付费(推荐)

无需注册或充值余额:调用 get_direct_crawl_payment,用户批准后让钱包生成标准 x402 v2 签名,再创建任务。结果由独立 xtask_... token 保护。

C

已有账号登录

POST /api/v1/auth/login 签发新的、独立可撤销 key,不再自动撤销其他 key。可用 /api/v1/keys 创建有 scope 和 expiry 的 Agent 专用 key。

密钥规则:不要把 xc_live_...xtask_... 写进提示词、仓库或公开日志;放在 Agent Host 的 secret store。任务 token 仅授权一个已付费任务,七天后过期。
Recommended flow

两条清晰的 Agent 路径

00

免费预检,再决定是否付费

先调用 get_service_info,再调用 preflight_crawl。它会规范化并去重 handle、校验模式、返回当前模型成本;不需要鉴权,不创建 quote 或 task,也不移动资金。想先看结果结构可调用 get_sample_result,它只返回明确标注的合成数据。

curl -sS -X POST https://xcatcher.top/api/v1/preflight \
  -H 'Content-Type: application/json' \
  -d '{"users":["@OpenAI","https://x.com/naval"],"mode":"normal"}'

curl -sS https://xcatcher.top/api/v1/demo

路径 A:钱包,无账户

A1

取得请求绑定的 challenge

调用 get_direct_crawl_payment。此步骤不移动资金,返回的 live 402 条款绑定 handles 与 mode。

A2

批准、签名、提交

展示精确金额、USDC 合约、Base 网络与 payTo。批准后由钱包生成 PAYMENT-SIGNATURE,再调用 submit_direct_crawl_payment。相同签名重试不会重复建任务。

A3

保存 token 并读取

安全保存 task_id 和任务级 task_token;token 可在 7 天有效期内反复用于该任务的状态、结果和下载请求。

路径 B:API Key 与积分

B1

余额、创建、等待

调用 get_account_balance,然后以稳定 idempotency_key 调用 create_crawl_task,再用 wait_for_task 等待同一个 task。

B2

读取原生 JSON

get_result_preview 直接读取服务端 JSON,不再下载解析 XLSX。使用 offset/next_offset 分页;只有需要完整文件时才下载。

数据语义:结果是近期公开帖子快照,不是完整历史归档。空结果可能来自无近期帖子、账号受保护/不存在或上游采集缺口。
MCP tools

17 个自描述工具

所有工具均可匿名发现;无账户 x402 工具可直接调用,账户工具在缺少 Bearer key 时返回稳定的 AUTH_REQUIRED,而不是连接失败。当前 Schema 以 tools/list 为准。

工具作用性质
get_service_info能力、实时价格、范围、端点和推荐流程read
preflight_crawl免费规范化输入并预览模型成本;无 quote/task/paymentfree read
get_sample_result查看合成结果和 coverage schema;不抓取 Xfree read
get_direct_crawl_payment无账户创建 x402 v2 challenge,不移动资金quote
submit_direct_crawl_payment结算已授权签名并创建/恢复任务payment
get_direct_task_status用 task token 读取已付费任务read
get_direct_result_preview用 task token 分页读取原生 JSONread
get_account_balance当前 key 对应账户与 pointsread
list_crawl_tasks游标分页列出最近任务,便于恢复上下文read
get_x402_quote创建短期 quote;不会移动资金quote
create_crawl_task创建任务并扣 points;支持幂等charge
x402_topup验证支付 proof 并给当前 key 入账credit
get_task_status单次读取任务状态read
wait_for_task服务端有界轮询,最多等待 120 秒read
get_result_preview最多 100 行原生 JSON;支持 offset 分页read
get_result_download_url完整 XLSX 的带鉴权下载地址read
cancel_task取消 queued 任务并退还任务 pointsstate change
x402 v2 direct

标准 HTTP 402,按任务支付

POST /api/v1/x402/crawl 无签名时返回标准 PAYMENT-REQUIRED;x402 v2 客户端选择 Base exact requirement,生成 EIP-3009 授权,再以 PAYMENT-SIGNATURE 重试原请求。

Protocol

x402Version: 2
HTTP headers + Base64 JSON

Network

eip155:8453
Base mainnet

Settlement

USDC transferWithAuthorization
每个 authorization 只使用一次

第一次请求:得到 challenge

curl -i -sS -X POST https://xcatcher.top/api/v1/x402/crawl \
  -H 'Content-Type: application/json' \
  -d '{"users":["openai","naval"],"mode":"normal"}'

钱包签名后:原样重试

curl -i -sS -X POST https://xcatcher.top/api/v1/x402/crawl \
  -H 'Content-Type: application/json' \
  -H "PAYMENT-SIGNATURE: $PAYMENT_SIGNATURE_B64" \
  -d '{"users":["openai","naval"],"mode":"normal"}'

成功返回 201PAYMENT-RESPONSEtask_id 和任务级 task_token。如果网络超时,重复完全相同的签名请求;幂等恢复可返回同一 token,不要重新付款。

CDP Bazaar readiness:官方只读 validator 已确认 Xcatcher 的 402、x402 v2、Base USDC、resource 与 Bazaar schema 全部通过,模拟结果为 accepted。用于自动验证的等价 URL 是 /api/v1/x402/crawl?users=openai&mode=normal;正式调用仍优先使用 JSON body。实际进入 Bazaar 仍需通过 CDP Facilitator 完成一次成功结算。
付款护栏:Agent 必须展示实时 amount、asset、network、payTo 并获得授权;不得索取 seed phrase/private key;不得更改已报价的 handles/mode。完整字段与恢复规则见 PAYMENTS.md
Reliability

状态与错误恢复

状态 / 错误正确动作
queued / processing继续等待同一个 task;从 5 秒开始退避
donepreview 或下载;下载仍需同一 Bearer key
failed展示安全的 error.code 和 per-handle outcome;不要盲目创建重复任务
401 AUTH_INVALID修复 Bearer key 并重新连接
402 PAYMENT_*同时检查 PAYMENT-REQUIRED 与 PAYMENT-RESPONSE;不确定时重试同一签名,禁止盲目二次付款
409 IDEMPOTENCY_KEY_CONFLICTpayload 已变更,为新意图生成新 key
429 RATE_LIMITED遵守 Retry-After,降低并发和轮询频率
5xx / unreachable指数退避;创建任务重试必须沿用原幂等 key
REST fallback

没有 MCP Host 时

完整 schema 在 OpenAPI。下面是任务主路径;或使用 Skill bundle 里的无依赖脚本 scripts/xcatcher.py

BASE=https://xcatcher.top
KEY="$XCATCHER_API_KEY"

curl -sS -X POST "$BASE/api/v1/tasks" \
  -H "Authorization: Bearer $KEY" \
  -H 'Content-Type: application/json' \
  -d '{"mode":"normal","users":["openai","naval"],"idempotency_key":"brief-2026-08-07"}'

curl -sS "$BASE/api/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $KEY"

curl -sS "$BASE/api/v1/tasks/$TASK_ID/results?limit=50&offset=0" \
  -H "Authorization: Bearer $KEY"

curl -sS -o "task_${TASK_ID}.xlsx" \
  -H "Authorization: Bearer $KEY" \
  "$BASE/api/v1/tasks/$TASK_ID/download"
Machine discovery

稳定机器入口