tweetsave-mcp

Twitter/X analysis without token waste. Fetch tweets, download media. No API key.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
100%
Naming quality
80%
Poisoning risk
20%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin tweetsave_get_tweet
  • MEDIUMTool description contains URL to non-standard domainin tweetsave_get_thread
  • MEDIUMTool description contains URL to non-standard domainin tweetsave_to_blog
  • MEDIUMTool description contains URL to non-standard domainin tweetsave_extract_media

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,551Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.21% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Runnable packages

npmtweetsave-mcp1.0.3stdio

Remote endpoints

https://mcp.tweetsave.org/ssesse

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢tweetsave_get_tweet(url, response_format)

Fetch a single tweet with all its content including text, media (photos, videos, GIFs), polls, and engagement metrics. This tool retrieves tweet data from Twitter/X using the FxTwitter API. It returns the tweet content, author info, media URLs, and engagement stats. Args: - url (string): Tweet URL or tweet ID - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Tweet data including: - Author info (name, username, avatar) - Tweet text - Media URLs (photos, videos) - Engagement (likes, retweets, replies, views) - Poll data (if applicable) - Quote tweet (if applicable) Examples: - "Get tweet from https://x.com/elonmusk/status/123456" - "Fetch this tweet: 123456789" Note: Does not fetch replies. Use tweetsave_to_blog for a complete blog post with formatting.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "description": "Tweet URL or tweet ID. Examples: 'https://x.com/user/status/123456' or '123456'"
    },
    "response_format": {
      "type": "string",
      "enum": [
        "markdown",
        "json"
      ],
      "default": "markdown",
      "description": "Output format: 'markdown' for human-readable or 'json' for structured data"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢tweetsave_get_thread(url, response_format)

Fetch a tweet thread (multiple connected tweets by the same author). Note: Current implementation fetches the main tweet. Full thread crawling requires additional API access. Args: - url (string): URL or ID of any tweet in the thread - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Array of tweets in the thread with all content and media. Examples: - "Get the full thread from this tweet: https://x.com/user/status/123"

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "description": "URL or ID of any tweet in the thread"
    },
    "response_format": {
      "type": "string",
      "enum": [
        "markdown",
        "json"
      ],
      "default": "markdown",
      "description": "Output format: 'markdown' for human-readable or 'json' for structured data"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢tweetsave_to_blog(url, include_engagement, response_format)

Convert a tweet into a formatted blog post with title, content, media, and metadata. This tool transforms a tweet into a readable blog post format, perfect for: - Archiving tweets - Creating content from threads - Generating blog posts from viral tweets Args: - url (string): Tweet URL or tweet ID - include_engagement (boolean): Include likes/retweets/etc. (default: true) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: BlogPost with: - Generated title from tweet content - Author info with avatar - Formatted content with media - Tags from hashtags - Read time estimate - Engagement summary - Source link Examples: - "Convert this tweet to a blog post: https://x.com/user/status/123" - "Make a blog from tweet 123456789"

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "description": "Tweet URL or tweet ID to convert"
    },
    "include_engagement": {
      "type": "boolean",
      "default": true,
      "description": "Include engagement metrics (likes, retweets, etc.)"
    },
    "response_format": {
      "type": "string",
      "enum": [
        "markdown",
        "json"
      ],
      "default": "markdown",
      "description": "Output format: 'markdown' for blog post or 'json' for structured data"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢tweetsave_batch(urls, response_format)

Fetch multiple tweets at once (max 10). Useful for: - Collecting tweets from a list - Building a feed from multiple sources - Comparing multiple tweets Args: - urls (string[]): Array of tweet URLs or IDs (max 10) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: Array of tweets or a combined feed in markdown format. Examples: - "Fetch these tweets: [url1, url2, url3]"

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "Array of tweet URLs or IDs (max 10)"
    },
    "response_format": {
      "type": "string",
      "enum": [
        "markdown",
        "json"
      ],
      "default": "markdown",
      "description": "Output format: 'markdown' or 'json'"
    }
  },
  "required": [
    "urls"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢tweetsave_extract_media(url, media_type)

Extract direct media URLs (photos, videos, GIFs) from a tweet. Returns direct URLs that can be downloaded or embedded. Video URLs are the highest quality available. Args: - url (string): Tweet URL or tweet ID - media_type ('all' | 'photos' | 'videos'): Filter by media type (default: 'all') Returns: List of media items with: - type (photo/video/gif) - url (direct download URL) - dimensions (width/height) - duration (for videos) Examples: - "Get all media from this tweet: https://x.com/user/status/123" - "Extract video URLs from tweet 123456"

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "description": "Tweet URL or tweet ID"
    },
    "media_type": {
      "type": "string",
      "enum": [
        "all",
        "photos",
        "videos"
      ],
      "default": "all",
      "description": "Type of media to extract: 'all', 'photos', or 'videos'"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools