X Twitter Scraper
用于 AI 编码代理的 X API / Twitter 抓取技能
一个 AI 代理技能,为编码代理提供 Xquik X (Twitter) 实时数据平台的深度知识。包含 121 个 REST API 端点、2 个 MCP 工具、HMAC Webhook、23 个批量提取工具以及写入操作。
市场上最便宜的 X 数据 API —— 读取费用低至 $0.00015/次(比官方 X API 便宜 33 倍)。
适用于 40 多种 AI 编码代理,包括 Claude Code、OpenAI Codex、Cursor、GitHub Copilot、Gemini CLI、Windsurf、VS Code、Cline、Roo Code、Goose、Amp、Augment、Continue、OpenHands、Trae、OpenCode 等。
定价
Xquik 在 X/Twitter 数据访问方面比所有替代方案都要便宜得多。
与官方 X API 对比
Xquik | X API Basic | X API Pro | |
月费 | $20 | $100 | $5,000 |
单条推文读取成本 | $0.00015 | ~$0.01 | ~$0.005 |
单次用户查询成本 | $0.00015 | ~$0.01 | ~$0.005 |
写入操作 | $0.0015 | 受限 | 受限 |
批量提取 | $0.00015/结果起 | 不可用 | 不可用 |
监控 + Webhook | 免费 | 不可用 | 不可用 |
抽奖 | $0.00015/条目 | 不可用 | 不可用 |
MCP 服务器 | 已包含 | 不可用 | 不可用 |
单次操作成本(1 积分 = $0.00015)
操作 | 积分 | 成本 |
读取(推文、搜索、时间线、书签等) | 1 | $0.00015 |
读取(用户资料、已验证关注者、互相关注者) | 1 | $0.00015 |
读取(点赞者) | 1 | $0.00015 |
读取(趋势) | 3 | $0.00045 |
关注检查、文章 | 7 | $0.00105 |
写入(推文、点赞、转发、关注、私信等) | 10 | $0.0015 |
提取(推文、回复、引用、提及、帖子、点赞、媒体、搜索、点赞者、转发者、社区成员、人员搜索、列表成员、列表关注者) | 1/结果 | $0.00015/结果 |
提取(关注者、正在关注、已验证关注者) | 1/结果 | $0.00015/结果 |
提取(文章) | 5/结果 | $0.00075/结果 |
抽奖 | 1/条目 | $0.00015/条目 |
监控、Webhook、雷达、撰写、草稿、集成 | 0 | 免费 |
按需付费(无需订阅)
两种无需月度订阅的按需付费选项:
积分:通过
POST /credits/topup充值积分(最低 $10)。1 积分 = $0.00015。适用于所有 121 个端点。MPP:16 个 X-API 端点支持通过机器支付协议 (Machine Payments Protocol) 进行匿名链上支付。无需账号。SDK:
npm i mppx viem。
Related MCP server: MCP Twitter
安装
通过 skills CLI 安装(自动检测您已安装的代理):
npx skills add Xquik-dev/x-twitter-scraper手动安装
git clone https://github.com/Xquik-dev/x-twitter-scraper.git .claude/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .agents/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .windsurf/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .agents/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .roo/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .continue/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .goose/skills/x-twitter-scrapergit clone https://github.com/Xquik-dev/x-twitter-scraper.git .agents/skills/x-twitter-scraper此技能的功能
安装后,此技能将为您的 AI 编码助手提供 Xquik 平台的深度知识:
推文搜索与查询:通过关键词、标签、高级运算符搜索推文。获取任何推文的完整互动指标
用户资料查询:获取任何 X 账号的关注者/正在关注人数、简介、位置和资料数据
用户活动动态:获取用户最近的推文、点赞的推文和媒体推文
推文互动数据:获取任何推文的点赞者(favoriters)、账号间的互相关注者
关注者与正在关注提取:提取完整的关注者列表、已验证关注者和正在关注列表
回复、转发与引用提取:批量提取所有回复、转发和引用推文
媒体下载:下载带有永久托管 URL 的图片、视频和 GIF
推文串与文章提取:提取完整的推文串和链接的文章内容
社区与空间数据:提取社区成员、管理员、帖子和空间参与者
书签与通知:访问书签、书签文件夹、通知和主页时间线
私信历史:检索与任何用户的对话历史
互相关注检查:检查两个账号是否互相关注
X 账号监控:追踪账号的新推文、回复、引用、转发和关注者变化
Webhook 交付:在您的 HTTPS 端点接收 HMAC 签名的事件通知
热门话题:按地区获取热门标签和话题
雷达:来自 7 个来源(Google Trends、Hacker News、Polymarket、TrustMRR、Wikipedia、GitHub、Reddit)的热门新闻。免费
抽奖:使用可配置的过滤器从推文回复中运行透明的抽奖
写入操作:发布推文、点赞、转发、关注/取消关注、发送私信、更新资料、上传媒体、管理社区
Telegram 集成:在 Telegram 中接收实时监控事件通知
流程自动化:由监控事件、计划、搜索和入站 Webhook 触发的工作流
推文撰写:带有评分功能的算法优化推文撰写器(免费)
积分与账单:检查余额、充值积分、管理订阅
支持工单:通过 API 打开和管理支持工单
MCP 服务器:2 个工具覆盖 121 个端点,用于 AI 代理集成
按需付费 (MPP):通过链上支付匿名访问 16 个端点,无需账号
能力
领域 | 详情 |
REST API | 12 个类别的 121 个端点,具有重试逻辑和分页功能 |
MCP 服务器 | 2 个工具(explore + xquik)。StreamableHTTP,支持 10 个平台的配置 |
数据提取 | 23 个批量提取工具(回复、转发、引用、点赞者、推文串、文章、用户点赞、用户媒体、社区、列表、空间、人员搜索、推文搜索、提及、帖子) |
X 查询 | 推文、用户、文章、搜索、用户推文、用户点赞、用户媒体、点赞者、互相关注者、书签、通知、时间线、私信历史 |
写入操作 | 发布/删除推文、点赞/取消点赞、转发、关注/取消关注、私信、资料更新、头像/横幅、媒体上传、社区操作 |
抽奖 | 从推文回复中随机选择获胜者,具有 11 个过滤选项 |
账号监控 | 推文、回复、引用、转发、关注者变化的实时追踪 |
Webhook | Node.js、Python、Go 中的 HMAC-SHA256 签名验证 |
Telegram 集成 | 通过 Telegram 机器人的实时监控事件通知 |
媒体下载 | 下载带有永久托管 URL 的图片、视频、GIF |
互动分析 | 每条推文的点赞、转发、回复、引用、浏览量、书签 |
热门话题 | 地区趋势 + 通过雷达获取的 7 个免费新闻来源 |
推文撰写 | 带有评分清单的算法优化推文撰写器(免费) |
积分与账单 | 通过 API 检查余额、充值、管理订阅 |
按需付费 (MPP) | 16 个支持匿名链上支付的端点,无需账号 |
TypeScript 类型 | 所有 API 对象的完整类型定义 |
支持的代理
Claude Code、OpenAI Codex、Cursor、GitHub Copilot、Gemini CLI、Windsurf、VS Code Copilot、Cline、Roo Code、Goose、Amp、Augment、Continue、OpenHands、Trae、OpenCode 以及任何支持 skills.sh 协议的代理。
API 覆盖范围
资源 | 端点 |
X 查询 | 推文、文章、搜索、用户资料、用户推文、用户点赞、用户媒体、点赞者、互相关注者、关注检查、下载媒体、书签、书签文件夹、通知、时间线、私信历史 |
提取 | 创建(23 种类型)、估算、列表、获取结果、导出 |
监控 | 创建、列表、获取、更新、删除 |
事件 | 列表(过滤、分页)、获取单个 |
Webhook | 创建、列表、更新、删除、测试、交付 |
趋势 | 地区热门话题 |
雷达 | 来自 7 个来源的热门话题和新闻(免费) |
抽奖 | 创建(带过滤器)、列表、获取(带获胜者)、导出 |
风格 | 分析、保存、列表、获取、删除、比较、性能 |
撰写 | 推文撰写(撰写、优化、评分) |
草稿 | 创建、列表、获取、删除 |
账号 | 获取账号、更新语言环境、设置 X 身份、订阅 |
积分 | 获取余额、充值 |
API 密钥 | 创建、列表、撤销 |
X 账号 | 连接、列表、获取、断开连接、重新认证 |
X 写入 | 推文、删除、点赞、取消点赞、转发、关注、取消关注、私信、资料、头像、横幅、媒体上传、社区 |
集成 | 创建(Telegram)、列表、获取、更新、删除、测试、交付 |
自动化 | 创建、列表、获取、更新、删除、添加/更新/删除步骤、位置、测试、入站 Webhook |
支持 | 创建工单、列表、获取、更新、回复 |
技能结构
x-twitter-scraper/
├── skills/
│ └── x-twitter-scraper/
│ ├── SKILL.md # Main skill (auth, pricing, endpoints, patterns)
│ ├── metadata.json # Version and references
│ └── references/
│ ├── api-endpoints.md # All REST API endpoints
│ ├── mcp-tools.md # MCP tool selection rules and workflow patterns
│ ├── mcp-setup.md # MCP configs for 10 platforms (v2 + v1)
│ ├── webhooks.md # Webhook setup & verification
│ ├── extractions.md # 23 extraction tool types
│ ├── types.md # TypeScript type definitions
│ └── python-examples.md # Python code examples
├── server.json # MCP Registry metadata
├── glama.json # Glama.ai directory metadata
├── logo.png # Marketplace logo
├── LICENSE # MIT
└── README.md # This file链接
许可证
MIT
Available Tools
2 toolsexploreARead-onlyIdempotentInspect
The live Xquik 'explore' tool searches the 120-route API catalog. This package stub returns setup guidance only.
When to use
Call 'explore' before 'xquik' to find an endpoint, its parameters, and its response shape.
Call it when the user asks what the Twitter API supports.
Check whether an endpoint uses included usage or requires account access.
When not to use
Use 'xquik' instead when fetching live X data.
Skip discovery when you know the endpoint and parameters.
Behavior
The live server searches the catalog without sending an API request.
The package stub makes no network call and returns setup instructions.
The live catalog has 120 routes. Of these, 119 support JSON or text.
Each EndpointInfo contains method, path, summary, category, free, parameters, and responseShape.
Input format
Provide a bounded request function. Filter, search, or return the spec.endpoints EndpointInfo array.
Examples
Find all included-usage endpoints: async () => spec.endpoints.filter(e => e.free)
Filter by category: async () => spec.endpoints.filter(e => e.category === 'composition')
Search summaries: async () => spec.endpoints.filter(e => e.summary.toLowerCase().includes('tweet'))
Get one endpoint: async () => spec.endpoints.find(e => e.path === '/api/v1/x/tweets/search')
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Bounded function that filters or searches the spec.endpoints EndpointInfo array. Return one EndpointInfo object or an array. Example: async () => spec.endpoints.filter(e => e.category === 'twitter') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly and idempotent, and the description confirms no network call occurs. It adds context about the stub vs. live server behavior, which is useful, but doesn't mention error handling or rate limits. Still, it's a read-only discovery tool, so the transparency is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat repetitive, with the same example snippets appearing in both the description and the schema, and the bullet-point format repeats the same information in slightly different wording. It could be tightened without losing clarity, but it's not excessively long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description covers the essential aspects: purpose, usage, and parameter behavior. The return type is mentioned in the schema description, and the description adds the distinction between stub and live server. It feels complete for the intended scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'code' parameter and gives an example, achieving 100% coverage. The description adds multiple concrete examples (filter by category, search summary, find by path) that go beyond the schema's single example, providing practical guidance on how to construct the function. This elevates it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the API catalog for endpoint discovery, with a specific verb and resource. It also distinguishes itself from the sibling tool 'xquik' by noting that 'explore' is for discovery while 'xquik' fetches live data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (before 'xquik', when user asks about API capabilities) and when not to use (for live data, if endpoint parameters are already known). This gives clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xquikADestructiveInspect
The live 'xquik' tool sends approved requests across 120 catalog routes. This package stub returns setup guidance only.
When to use
Call it after 'explore' identifies the endpoint and parameters.
Use it for Twitter search, user lookup, draws, extractions, composition, private reads, monitors, webhooks, and approved writes.
Get approval before private reads, persistent resources, metered operations, and writes.
When not to use
Use 'explore' first when you do not know the endpoint.
Omit API keys and authorization headers. The server adds authentication.
Behavior
The live server processes
xquik.request(path, options?)inside a bounded sandbox.The package stub makes no API request and returns setup instructions.
The live tool cannot access local files or arbitrary network hosts.
119 catalog routes support JSON or text. Use REST for binary downloads.
Write operations require prior approval and can return durable actions.
Pagination responses include
has_moreandnext_cursor. Passcursorfor the next page.Show the exact payload, target, and usage estimate before changing X or Xquik resources.
Error handling
For 402, explain the account state and send the user to the dashboard.
For 429, wait before retrying.
For 404, explain which user, tweet, or monitor was not found.
For durable writes, follow
safe_to_retryandnext_actionbefore retrying.
Input format
Provide a bounded function that calls xquik.request(path, { method?, body?, query? }). The server adds authentication.
Examples
Search tweets: async () => xquik.request('/api/v1/x/tweets/search', { query: { q: 'twitter scraper api', limit: '50' } })
Get user: async () => xquik.request('/api/v1/x/users/elonmusk')
Post after approval: async () => xquik.request('/api/v1/x/tweets', { method: 'POST', body: { account: '<confirmed_account>', text: '<confirmed_text>' } })
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Bounded function that calls xquik.request(path, options?) for Twitter API operations. The server adds authentication. Example: async () => xquik.request('/api/v1/x/tweets/search', { query: { q: 'twitter api', limit: '20' } }) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, openWorldHint=true), the description adds rich behavioral context that the annotations cannot convey: the bounded sandbox, no local file or arbitrary host access, approval-required durable writes, 402/429/404 error semantics, pagination via has_more/next_cursor, and the server-side authentication model. No contradiction with annotations — the write/approval framing aligns with destructiveHint=true and the sandbox stays consistent with openWorldHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but excellently structured with clear headers, scannable bullets, and a front-loaded purpose statement. Every section (when to use, behavior, error handling, format, examples) earns its place given the tool's complexity — a proxy over 120 routes. It is slightly more verbose than strictly necessary but the organization compensates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex proxy tool with no output schema, the description covers everything an agent needs: when to call, approval requirements, behavioral constraints, error handling per status code, pagination semantics, input format, and realistic examples. The only minor gap — the absence of an output schema — is offset by explanation of return behaviors like has_more/next_cursor and durable actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema alone documents the single 'code' parameter with an example. The description adds genuine value beyond that with the 'Input format' section (bounded function signature for xquik.request with method/body/query) and three concrete examples covering search, user lookup, and POST-after-approval. This exceeds the baseline 3 for high-coverage cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, differentiated statement: "sends approved requests across 120 catalog routes" and immediately distinguishes the package stub ("returns setup guidance only") from the live tool. It names the sibling 'explore' as what it is not, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains explicit 'When to use' and 'When not to use' sections. It states to call it after 'explore' identifies the endpoint, when not to (if endpoint unknown), and covers approval gates for private reads, metered operations, and writes. It also names the alternative tool and directs the agent away from it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: 'explore' is for discovering API endpoints and parameters, while 'xquik' is for executing requests. There is a slight overlap in that both can be used to understand the API, but the descriptions make the boundary clear.
The tool names 'explore' and 'xquik' do not follow a consistent verb_noun pattern. 'explore' is a verb, but 'xquik' is a brand name, not a descriptive verb. However, the names are short and memorable, and the descriptions clarify their roles.
With only 2 tools, the server is minimal, but the descriptions indicate a broad underlying API (120 routes). The two tools act as a discovery and execution pair, which is a reasonable minimal surface, though it feels thin for the apparent scope.
The server covers the core workflow of discovering and executing API calls, but it lacks explicit tools for managing authentication, handling pagination, or managing approvals. However, these are handled within the 'xquik' tool's parameters and responses, so the surface is functional but not comprehensive.
Maintenance
Related MCP Connectors
Twitter/X read-only MCP server — 12 tools: search, users, tweets, followers, timelines, trends.
X / Twitter public post, comment, reply, user, and search tools.
Hosted MCP for X/Twitter and Reddit. 12 read-only tools, no API keys, free during beta.
X (formerly Twitter): X (formerly Twitter) public and private data API for search, posts (Tweets).
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables Claude to interact with Twitter, allowing for posting tweets and searching Twitter content.2348401MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI models and applications to interact directly with Twitter/X, providing capabilities to create posts, reply to tweets, retrieve user data, and manage account actions.1711MIT
- MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform web searches, research paper searches, and Twitter searches using the Exa AI Search API with real-time crawling and structured results.25,462MIT
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/Xquik-dev/x-twitter-scraper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server