# io.github.zezeron/tweetsave-mcp (remote · mcp.tweetsave.org)

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

- Trust score: 66/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.tweetsave.org`: 66/100 (this document), [markdown](https://verifymcp.io/servers/zezeron-tweetsave-mcp/mcp.md), [page](https://verifymcp.io/servers/zezeron-tweetsave-mcp/mcp)
- npm · `tweetsave-mcp`: 63/100, [markdown](https://verifymcp.io/servers/zezeron-tweetsave-mcp/tweetsave-mcp.md), [page](https://verifymcp.io/servers/zezeron-tweetsave-mcp/tweetsave-mcp)

## Channel facts

- Endpoint: `https://mcp.tweetsave.org/sse`
- Transports: `sse`
- Auth: `none`
- Version: `1.0.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 40/100
  - Verified sse transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1023 tokens (~204/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http zezeron-tweetsave-mcp https://mcp.tweetsave.org/sse
```

### Codex

```toml
[mcp_servers.zezeron-tweetsave-mcp]
url = "https://mcp.tweetsave.org/sse"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zezeron-tweetsave-mcp": {
      "type": "remote",
      "url": "https://mcp.tweetsave.org/sse",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zezeron-tweetsave-mcp --url https://mcp.tweetsave.org/sse --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  zezeron-tweetsave-mcp:
    url: "https://mcp.tweetsave.org/sse"
```

### Other

```json
{
  "mcpServers": {
    "zezeron-tweetsave-mcp": {
      "type": "http",
      "url": "https://mcp.tweetsave.org/sse"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 64, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 61, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 61)

First indexed and scored.

## MCP tools (5)

### `tweetsave_get_tweet` (~268 tokens)

Get Tweet

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 parameters:

- `response_format` (string): Output format: 'markdown' for human-readable or 'json' for structured data
- `url` (string, required): Tweet URL or tweet ID. Examples: 'https://x.com/user/status/123456' or '123456'

### `tweetsave_get_thread` (~155 tokens)

Get Tweet Thread

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 parameters:

- `response_format` (string): Output format: 'markdown' for human-readable or 'json' for structured data
- `url` (string, required): URL or ID of any tweet in the thread

### `tweetsave_to_blog` (~260 tokens)

Convert Tweet to Blog Post

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 parameters:

- `include_engagement` (boolean): Include engagement metrics (likes, retweets, etc.)
- `response_format` (string): Output format: 'markdown' for blog post or 'json' for structured data
- `url` (string, required): Tweet URL or tweet ID to convert

### `tweetsave_batch` (~148 tokens)

Batch Fetch Tweets

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 parameters:

- `response_format` (string): Output format: 'markdown' or 'json'
- `urls` (array, required): Array of tweet URLs or IDs (max 10)

### `tweetsave_extract_media` (~192 tokens)

Extract Media URLs

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 parameters:

- `media_type` (string): Type of media to extract: 'all', 'photos', or 'videos'
- `url` (string, required): Tweet URL or tweet ID

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/zezeron-tweetsave-mcp/mcp#diagnostics

## Score history

- 2026-08-03: 66
- 2026-08-02: 65
- 2026-08-01: 65
- 2026-07-31: 64
- 2026-07-30: 63
- 2026-07-29: 63
- 2026-07-28: 62
- 2026-07-27: 61
- 2026-07-26: 61

## Links

- Remote endpoint: https://mcp.tweetsave.org/sse
- Repository: https://github.com/zezeron/tweetsave-mcp
- Changelog RSS feed: https://verifymcp.io/servers/zezeron-tweetsave-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/zezeron-tweetsave-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/zezeron-tweetsave-mcp/mcp
