Skip to main content
Glama
xtapdown-mcp

xtapdown-mcp

by farukkolip

XTapDown MCP Server

An MCP (Model Context Protocol) server that gives any LLM client — Claude Desktop, Cursor, Cline, Continue, or your own agent — direct access to the XTapDown X (Twitter) creator toolkit.

Fourteen tools, read-only, zero auth, free.

Tools (14)

Full coverage of every XTapDown web tool — 4 downloaders (video, GIF, image, full archive) consolidated under a single download_tweet since they share one X syndication endpoint.

Tool

Description

download_tweet

Download any X post — video, GIF, image, or article. Returns direct media URLs, author info, engagement stats. Covers /twitter-video-downloader, /twitter-gif-downloader, /twitter-image-downloader and /tweet-downloader.

get_x_hashtags

Curated X hashtags for a niche (tech, finance, marketing, politics, sports, business, ai, gaming, writing, fitness, design, general) + strategy tips.

get_best_time_to_post_x

Best posting windows on X by country (12 countries) with the reasoning behind each slot.

generate_tweet_hook

Battle-tested tweet hook formulas across 8 categories (Curiosity, Controversy, Authority, List, Story, Question, Numbers, Reframe).

calculate_x_engagement_rate

Compute engagement rate using the public follower-based formula, with tier-aware benchmark bands.

calculate_x_ads_revenue

Estimate monthly Premium creator ads-revenue-share payout from impressions, with eligibility check.

get_x_trends

Live trending topics on X by country (17 countries) — refreshed roughly hourly.

count_tweet_characters

X-weighted character count (CJK ×2, emoji ×2, URLs ×23 t.co) with thread-split warning.

split_long_text_into_thread

Split long text into ≤280-char numbered tweets respecting sentence/word boundaries + t.co URL math.

build_x_search_url

Build an X advanced-search URL from structured filters (from:, since:, min_faves:, lang:, filter:media, etc).

generate_fancy_unicode_text

Convert ASCII to fancy Unicode (bold, italic, monospace, script, double-struck, small-caps, bold-italic) for bios and tweets.

get_tweet_screenshot_url

Deep-link to the XTapDown screenshot tool with theme + background presets pre-filled (PNG rendering happens client-side in the browser).

find_viral_tweets_for_niche

Top creators in a niche plus 3 viral tweet templates with explanations of why each one works.

get_x_search_operators_cheatsheet

Full X advanced-search operator reference, grouped by category, updated for 2026.

Related MCP server: TwitterAPI MCP Server

Install

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "xtapdown": {
      "command": "npx",
      "args": ["-y", "xtapdown-mcp"]
    }
  }
}

Cursor / Cline / Continue

Add a stdio MCP server entry pointing at:

npx -y xtapdown-mcp

From source

git clone https://github.com/farukkolip/xtapdown-mcp
cd xtapdown-mcp
npm install
npm run build
node dist/index.js

Hosted (HTTP)

Set PORT=3000 (or any port) to start the server in HTTP / SSE mode for Smithery-style hosted deployments. Endpoint: POST /mcp and GET /mcp following the MCP Streamable HTTP transport spec.

Example interactions

"Download this tweet for me: https://x.com/.../status/..." → download_tweet returns direct MP4, thumbnail, author handle, like count.

"What's the best time to post on X if my audience is in Türkiye?" → get_best_time_to_post_x returns day-by-day windows in TRT.

"My 50k-follower account got 1,200 likes, 80 reposts, 150 replies. What's my engagement rate?" → calculate_x_engagement_rate returns 2.86% (Good — Mid tier).

"I've been getting 8M impressions a month. Would I qualify for ads revenue share?" → calculate_x_ads_revenue returns: projected 24M / 25M threshold = not yet eligible, ~$60/mo estimated payout if you cross.

Why MCP?

X's API is largely closed to creators. Most third-party tools require paid subscriptions or scrape with hidden rate limits. This server uses X's own public syndication endpoint (the same one embed widgets use) plus inline curated content data, so it works offline-free, no auth, no quota, no surprises.

Once added to your MCP client, the LLM can autonomously fetch tweet data and apply XTapDown's research data to whatever you're working on — content drafts, social audits, strategy threads, monetization math.

Design boundaries

This server is read-only by construction. It has no write tools, no account, no token, no OAuth. Every tool either reads public data through X's syndication endpoint or does local computation. The two tools that produce text (generate_tweet_hook, split_long_text_into_thread) return it to the caller — posting is a separate, human action in a different tool. The approval gate is structural: it is the absence of a post tool, not a flag.

What the model gets back on failure (since 1.3.0):

  • Every failed call sets isError: true, so the model can branch on failure instead of pattern-matching an emoji in text.

  • Network calls time out after 15 s and report it as a timeout, distinct from a connection failure.

  • HTTP 429 from upstream is returned as "rate limited, wait N seconds" (from Retry-After when present), not as a bare status code.

  • A protected account (403) and a deleted post (404) are reported as different situations.

What it does not do: it does not add its own rate limit on top of the upstream. A read tool pointed at someone can still be used to bulk-collect public data. The only defence is that it reads what X already serves to anyone.

Data sources

  • Tweet data: cdn.syndication.twimg.com/tweet-result (public, auth-free)

  • Hashtags / best times / hooks / benchmarks: XTapDown editorial library, 2026 updated

  • Engagement math: public follower-based formula (likes + reposts + replies + bookmarks + quotes) / followers × 100

  • Ads revenue math: X Premium Creator Ads Revenue Sharing documented terms (25M imp/3mo + 500 verified followers + Premium)

License

MIT — © Faruk Kolip

Available Tools

14 tools
build_x_search_urlA

Build an X (Twitter) advanced search URL from structured filters. Returns a clickable URL using X's official advanced search operators (from:, since:, until:, min_faves:, lang:, filter:media etc).

Inputs: to, from, lang, query, +12 more.

calculate_x_ads_revenueA

Estimate monthly X Premium Creator Ads Revenue Share payout from impressions. X pays creators based on ads shown in REPLIES to their posts, not the posts themselves — so reply density is the lever. Requires X Premium + 500 verified followers + 25M impressions over the trailing 3 months for eligibility.

Inputs: monthlyImpressions (required), cpmEstimate, avgRepliesPerPost.

calculate_x_engagement_rateA

Calculate X (Twitter) engagement rate using the public follower-based formula: (likes + reposts + replies + bookmarks + quotes) / followers × 100. Returns the percentage and the tier-aware benchmark band (Excellent / Good / Average / Low / Inactive).

Inputs: likes (required), replies (required), reposts (required), followers (required), +3 more.

count_tweet_charactersA

Count tweet characters using X's official weighted-length formula. CJK ideographs, fullwidth chars, and most emoji count as 2; URLs always count as 23 (t.co shortening). Returns char count, remaining budget for free + Premium limits, and a warning if a thread split is needed.

Inputs: text (required).

download_tweetA

Download an X (Twitter) post — video, GIF, images, or article. Returns direct media URLs, author info, and engagement stats. Uses the public X syndication endpoint, no auth required.

Inputs: url (required).

find_viral_tweets_for_nicheA

Get the top X (Twitter) creators in a niche plus 3 viral tweet templates with explanations of why each one works. Pulls from XTapDown's curated viral pattern library.

Inputs: niche (required).

generate_fancy_unicode_textA

Convert plain ASCII text into a fancy Unicode style suitable for X bios and tweets. 7 styles supported: bold, italic, boldItalic, monospace, script, doubleStruck, smallCaps.

Inputs: text (required), style (required).

generate_tweet_hookA

Generate proven tweet hook formulas for a category. Returns 3 ready-to-use templates with examples and execution tips. Hooks must land in line one because the rest of the post is hidden until tap.

Inputs: category (required), topic.

get_best_time_to_post_xA

Get the best times to post on X (Twitter) for a country, with day-by-day windows and the reasoning behind each slot. X engagement curves differ from TikTok — weighted toward morning commute, lunch, and evening news windows.

Inputs: country (required).

get_tweet_screenshot_urlA

Generate a deep-link to XTapDown's tweet screenshot tool with the tweet URL and styling pre-filled. The PNG/JPG rendering happens client-side in the browser — this tool returns a ready-to-open URL plus a checklist of available styles.

Inputs: tweetUrl (required), theme, background.

get_x_hashtagsA

Get curated X (Twitter) hashtags for a niche, plus 3 strategy tips on how to use them. Hashtag rules on X differ sharply from TikTok or Instagram — max 1-3 tags per post.

Inputs: niche (required).

get_x_search_operators_cheatsheetA

Return the complete X (Twitter) advanced search operators reference, grouped by category, with syntax / example / description for each operator. Updated for 2026.

Inputs: category.

split_long_text_into_threadA

Split a long text into a numbered tweet thread (each tweet ≤ 280 chars). Uses X's weighted-length formula and t.co URL shortening (URLs always count as 23). Prefers sentence boundaries, then paragraph, then word.

Inputs: text (required), numbered.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 14 tools

    Disambiguation4/5

    Tools are mostly distinct with clear purposes. Minor overlap exists between 'build_x_search_url' and 'get_x_search_operators_cheatsheet' (both about search) and between 'generate_tweet_hook' and 'find_viral_tweets_for_niche' (both about viral content), but descriptions differentiate them adequately.

    Naming Consistency5/5

    All tool names use a consistent snake_case verb_noun pattern (e.g., 'build_x_search_url', 'calculate_x_ads_revenue', 'split_long_text_into_thread'). No mixing of styles or vague verbs.

    Tool Count5/5

    14 tools cover the X/Twitter marketing domain comprehensively without being excessive. Each tool serves a distinct purpose in content creation, analysis, or optimization.

    Completeness4/5

    The set covers most key X/Twitter tasks: search, engagement, trends, posting optimization, formatting, and media retrieval. Missing a direct posting tool (create_tweet) but that may be out of scope for an analysis-focused server.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      An MCP server for accessing the Twitter/X Api45 API, allowing users to retrieve user profiles, timelines, followers, and media. It supports searching communities, jobs, and trends, while also providing tools to monitor live broadcasts and Twitter Spaces.
      28
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      An MCP server that provides access to Twitter data and write actions through TwitterAPI.io, bypassing the need for a standard Twitter developer account. It enables users to search tweets, retrieve profiles, and post content with support for pagination and enterprise proxy configurations.
      13 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that provides AI agents with full access to the X (Twitter) API for posting, searching, and managing engagement through natural language. It supports comprehensive tools for tweet management, media uploads, and account analytics across multiple MCP-compatible clients.
      15
      63
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server for interacting with the Twitter/X API v2, enabling AI assistants to retrieve tweets, post content, reply, quote, and more programmatically.
      2,203 npm
      13
      MIT