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

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

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

## Components

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

## Channel facts

- Registry: `npm`
- Package: `tweetsave-mcp`
- Version: `1.0.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (108 of 109), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (108 of 109), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 193 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **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**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **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.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add zezeron-tweetsave-mcp -- npx -y tweetsave-mcp
```

### Codex

```bash
codex mcp add zezeron-tweetsave-mcp -- npx -y tweetsave-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zezeron-tweetsave-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "tweetsave-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zezeron-tweetsave-mcp --command npx --arg -y --arg tweetsave-mcp
```

### Hermes

```yaml
mcp_servers:
  zezeron-tweetsave-mcp:
    command: "npx"
    args: ["-y", "tweetsave-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "zezeron-tweetsave-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "tweetsave-mcp"
      ]
    }
  }
}
```

## 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-02 (score 63, +44)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-07-31 (score 19, −6)

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

### 2026-07-30 (score 25, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 43)

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: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/zezeron-tweetsave-mcp/tweetsave-mcp#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 63
- 2026-08-01: 19
- 2026-07-31: 19
- 2026-07-30: 25
- 2026-07-28: 43
- 2026-07-27: 43

## Links

- npm package: https://www.npmjs.com/package/tweetsave-mcp
- Socket report: https://socket.dev/npm/package/tweetsave-mcp
- Repository: https://github.com/zezeron/tweetsave-mcp
- Changelog RSS feed: https://verifymcp.io/servers/zezeron-tweetsave-mcp/tweetsave-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/zezeron-tweetsave-mcp/tweetsave-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/zezeron-tweetsave-mcp/tweetsave-mcp
