本文へ移動
cccskills
無料GitHub で公開

x-twitter-scraper

X (Twitter) data extraction and monitoring via Xquik: tweet search, user lookup, follower extraction, giveaway draws, trending topics, account monitoring with webhooks, reply/retweet/quote extraction, community and Space data, follow checks. 22 MCP tools + REST API.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md8.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Xquik - X (Twitter) Data Platform

Xquik provides a REST API, MCP server, and HMAC webhooks for X (Twitter) data. It covers tweet search, user profiles, bulk extraction (19 tools), giveaway draws, account monitoring, and trending topics.

Docs: docs.xquik.com

Quick Reference

Base URLhttps://xquik.com/api/v1
Authx-api-key: xq_... header
MCP endpointhttps://xquik.com/mcp (StreamableHTTP)
Rate limits10 req/s sustained, 20 burst
Pricing$20/month (1 monitor included), $5/month per extra monitor

Prerequisites

  • Xquik account with active subscription
  • API key generated from the Xquik dashboard
  • For MCP: configure the endpoint in your client (Claude Desktop, Claude Code, Cursor, VS Code, etc.)

Setup

MCP Server (Claude Code)

Add to your MCP configuration:

{
  "mcpServers": {
    "xquik": {
      "type": "streamable-http",
      "url": "https://xquik.com/mcp",
      "headers": {
        "x-api-key": "xq_YOUR_KEY_HERE"
      }
    }
  }
}

REST API

const API_KEY = "xq_YOUR_KEY_HERE";
const BASE = "https://xquik.com/api/v1";
const headers = { "x-api-key": API_KEY, "Content-Type": "application/json" };

Core Workflows

1. Search Tweets

When to use: Find tweets by keyword, hashtag, or user.

Endpoint: GET /x/tweets/search?q=...

MCP tool: search-tweets

const results = await fetch(`${BASE}/x/tweets/search?q=from:elonmusk AI`, { headers });

Pitfalls:

  • Basic results only (id, text, author, date). Use lookup-tweet for engagement metrics
  • Searches recent tweets, not full archive

2. Look Up a Tweet

When to use: Get full metrics (likes, retweets, views, bookmarks) for a specific tweet.

Endpoint: GET /x/tweets/{id}

MCP tool: lookup-tweet

3. Look Up a User Profile

When to use: Get name, bio, follower/following counts, profile picture, join date.

Endpoint: GET /x/users/{username}

MCP tool: get-user-info

Pitfalls:

  • MCP returns a subset (no verified, location, createdAt, statusesCount). Use REST API for the full profile

4. Check Follow Relationship

When to use: Check if account A follows account B (both directions).

Endpoint: GET /x/followers/check?source=A&target=B

MCP tool: check-follow

5. Bulk Data Extraction (19 Tools)

When to use: Extract followers, replies, retweets, quotes, community members, list data, and more.

Workflow: Always estimate cost first, then create the job, then retrieve results.

Tool types:

Tool TypeTargetDescription
reply_extractorTweet IDUsers who replied
repost_extractorTweet IDUsers who retweeted
quote_extractorTweet IDUsers who quote-tweeted
thread_extractorTweet IDAll tweets in a thread
article_extractorTweet IDArticle content from a tweet
follower_explorerUsernameFollowers of an account
following_explorerUsernameAccounts followed by a user
verified_follower_explorerUsernameVerified followers
mention_extractorUsernameTweets mentioning an account
post_extractorUsernamePosts from an account
community_extractorCommunity IDCommunity members
community_moderator_explorerCommunity IDCommunity moderators
community_post_extractorCommunity IDCommunity posts
community_searchCommunity ID + querySearch within a community
list_member_extractorList IDList members
list_post_extractorList IDList posts
list_follower_explorerList IDList followers
space_explorerSpace IDSpace participants
people_searchSearch querySearch for users

MCP tools: estimate-extraction -> run-extraction -> get-extraction

// 1. Estimate cost
const estimate = await fetch(`${BASE}/extractions/estimate`, {
  method: "POST", headers,
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());

if (!estimate.allowed) return; // Would exceed monthly quota

// 2. Create job
const job = await fetch(`${BASE}/extractions`, {
  method: "POST", headers,
  body: JSON.stringify({ toolType: "follower_explorer", targetUsername: "elonmusk" }),
}).then(r => r.json());

// 3. Retrieve results (paginated)
const results = await fetch(`${BASE}/extractions/${job.id}`, { headers }).then(r => r.json());

Pitfalls:

  • Always call estimate first. 402 means quota exhausted
  • Large jobs return status: "running" and need polling
  • Export (CSV/XLSX/MD) capped at 50,000 rows

6. Giveaway Draws

When to use: Pick random winners from tweet replies with configurable filters.

Endpoint: POST /draws

MCP tool: run-draw

Available filters: mustRetweet, mustFollowUsername, filterMinFollowers, filterAccountAgeDays, filterLanguage, requiredKeywords, requiredHashtags, requiredMentions, uniqueAuthorsOnly.

const draw = await fetch(`${BASE}/draws`, {
  method: "POST", headers,
  body: JSON.stringify({
    tweetUrl: "https://x.com/user/status/123456789",
    winnerCount: 3,
    uniqueAuthorsOnly: true,
    mustRetweet: true,
  }),
}).then(r => r.json());

7. Real-Time Monitoring

When to use: Track when an account tweets, gets replies, gains/loses followers.

Workflow: Create a monitor, optionally register a webhook for push notifications.

Event types: tweet.new, tweet.reply, tweet.quote, tweet.retweet, follower.gained, follower.lost

MCP tools: add-monitor -> add-webhook -> test-webhook

// Create monitor
await fetch(`${BASE}/monitors`, {
  method: "POST", headers,
  body: JSON.stringify({
    username: "elonmusk",
    eventTypes: ["tweet.new", "follower.gained"],
  }),
});

// Register webhook (save the secret!)
const webhook = await fetch(`${BASE}/webhooks`, {
  method: "POST", headers,
  body: JSON.stringify({
    url: "https://your-server.com/webhook",
    eventTypes: ["tweet.new"],
  }),
}).then(r => r.json());

Pitfalls:

  • Webhook secret is shown only once at creation
  • Verify HMAC signature (X-Xquik-Signature header) before processing
  • Respond within 10 seconds; queue slow processing for async

8. Trending Topics

When to use: Get current trending topics for a region.

Endpoint: GET /trends?woeid=1

MCP tool: get-trends

Free, no quota consumed.

Error Handling

Retry only 429 and 5xx. Never retry other 4xx.

StatusMeaningAction
400Invalid requestFix parameters
401Bad API keyCheck key
402No subscription or quota exhaustedSubscribe or wait for reset
404Not foundResource doesn't exist
429Rate limitedRetry with backoff, respect Retry-After
500+Server errorRetry with exponential backoff (max 3)

Conventions

  • IDs are strings (bigints). Never parse as numbers
  • Timestamps: ISO 8601 UTC
  • Cursors are opaque. Pass nextCursor as the after query parameter
  • Pagination: hasMore + nextCursor pattern across events, draws, extractions

MCP Tool Reference

22 tools available through the MCP server:

ToolPurpose
search-tweetsSearch tweets by keyword/hashtag
lookup-tweetGet tweet by ID with full metrics
get-user-infoUser profile lookup
check-followCheck follow relationship
get-trendsTrending topics by region
add-monitorStart monitoring an account
remove-monitorStop monitoring
list-monitorsList active monitors
get-eventsPoll for monitor events
get-eventGet single event details
add-webhookRegister webhook endpoint
remove-webhookDelete webhook
list-webhooksList webhooks
test-webhookSend test payload
run-drawRun giveaway draw
list-drawsList past draws
get-drawGet draw results with winners
estimate-extractionPreview extraction cost
run-extractionStart bulk extraction
list-extractionsList extraction jobs
get-extractionGet extraction results
get-accountCheck subscription and usage

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tools first for current schemas.

日本語の概要は準備中です。原文の説明を表示しています。

davepoon/buildwithclaude3,6212026年10月10日 更新

Analytics your AI agent can actually use. Track, analyze, run A/B experiments, and optimize across all your projects via CLI. Includes a growth playbook so your agent knows HOW to grow, not just what to track.

日本語の概要は準備中です。原文の説明を表示しています。

davepoon/buildwithclaude3,6212026年10月10日 更新

Teaches when to recall from long-term memory before acting and when to save durable decisions, corrections and failures afterwards. Use when a memory tool or MCP memory server is connected but the agent is not using it consistently, when the user complains that the assistant forgets preferences, conventions or past decisions between sessions, or when setting up persistent memory for a project. Works with any memory backend: a folder of Markdown files, a local MCP server, or a managed service.

日本語の概要は準備中です。原文の説明を表示しています。

davepoon/buildwithclaude3,6212026年10月10日 更新

Audit local AI coding-agent sessions with agenttrace for cost, tokens, tool failures, latency, anomalies, health, diffs, and CI gates.

日本語の概要は準備中です。原文の説明を表示しています。

davepoon/buildwithclaude3,6212026年10月10日 更新

Audit whether a website can be found, crawled, and cited by AI answer engines such as ChatGPT Search, Perplexity, Google AI Overviews, and Microsoft Copilot. Use when someone asks why their brand is missing from AI answers, whether AI crawlers can read their site, how to get cited by ChatGPT or Perplexity, or asks for a GEO or AEO (generative / answer engine optimization) review. Produces a citation baseline across buyer-intent prompts, a crawler-access check, a citability review of named pages, and a ranked fix list. Not for keyword rank tracking, paid search, or pages behind a login.

日本語の概要は準備中です。原文の説明を表示しています。

davepoon/buildwithclaude3,6212026年10月10日 更新

Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas.

日本語の概要は準備中です。原文の説明を表示しています。

davepoon/buildwithclaude3,6212026年10月10日 更新

davepoon のスキルをすべて見る

このスキルの問題を報告する