io.github.zezeron/tweetsave-mcp
Twitter/X analysis without token waste. Fetch tweets, download media. No API key.
★ 1MITdevtools
Install
Config snippet generator goes here (5 client tabs)
README
<p align="center">
<img src="https://tweetsave.org/appIcon.png" alt="TweetSave" width="180">
</p>
<p align="center">
<a href="https://www.npmjs.org/package/tweetsave-mcp"><img src="https://img.shields.io/npm/v/tweetsave-mcp.svg" alt="npm version"></a>
<a href="https://www.npmjs.org/package/tweetsave-mcp"><img src="https://img.shields.io/npm/dm/tweetsave-mcp.svg" alt="npm downloads"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
</p>
<p align="center">
<a href="https://modelcontextprotocol.io/"><img src="https://img.shields.io/badge/MCP-Compatible-blue" alt="MCP Server"></a>
<a href="https://claude.ai"><img src="https://img.shields.io/badge/Claude-Ready-orange" alt="Claude"></a>
<a href="https://mcp.tweetsave.org/health"><img src="https://img.shields.io/badge/Server-Online-brightgreen" alt="Server Status"></a>
</p>
<p align="center">
MCP server for fetching Twitter/X content and converting to blog posts.<br>
<strong>No Twitter API key required</strong> - Uses FxTwitter API (free, open source).
</p>
<p align="center">
<a href="https://tweetsave.org">Website</a> •
<a href="#quick-start">Quick Start</a> •
<a href="#features">Features</a> •
<a href="#installation">Installation</a> •
<a href="#available-tools">Tools</a>
</p>
---
## Features
- Fetch tweets with full content, media, and engagement metrics
- Convert tweets to formatted blog posts
- Extract media URLs (photos, videos, GIFs)
- Batch fetch multiple tweets (up to 10)
- Support for quote tweets and polls
- Markdown and JSON output formats
---
## Quick Start
### Remote MCP (Recommended)
No installation required - connect directly to hosted server:
```bash
npx -y mcp-remote https://mcp.tweetsave.org/sse
```
### Local (npx)
```bash
npx -y tweetsave-mcp
```
---
## Installation
### Remote MCP (Recommended)
Connect to hosted server - no local installation needed.
#### Claude Code
```bash
# Global (all projects)
claude mcp add -s user tweetsave -- npx -y mcp-remote https://mcp.tweetsave.org/sse
# Project only
claude mcp add tweetsave -- npx -y mcp-remote https://mcp.tweetsave.org/sse
```
#### Claude Desktop / Cursor / Windsurf
Add to your MCP configuration:
```json
{
"mcpServers": {
"tweetsave": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.tweetsave.org/sse"]
}
}
}
```
**Config file locations:**
- **Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Claude Desktop (Windows):** `%APPDATA%\Claude\claude_desktop_config.json`
- **Cursor:** `~/.cursor/mcp.json`
- **Windsurf:** `~/.codeium/windsurf/mcp_config.json`
#### VS Code
Create `.vscode/mcp.json` in your workspace:
```json
{
"servers": {
"tweetsave": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.tweetsave.org/sse"]
}
}
}
```
#### Gemini CLI
```bash
gemini mcp add tweetsave "npx -y mcp-remote https://mcp.tweetsave.org/sse"
```
#### JetBrains IDEs
Settings → Tools → MCP Server → Add:
- **Name:** TweetSave
- **Command:** npx
- **Arguments:** -y mcp-remote https://mcp.tweetsave.org/sse
#### OpenCode
```bash
opencode mcp add
```
Then follow prompts:
- **Name:** tweetsave
- **Type:** Remote
- **URL:** https://mcp.tweetsave.org/sse
- **OAuth:** No
#### Antigravity
Click `...` menu → MCP → Manage MCP Server → View raw config:
```json
{
"mcpServers": {
"tweetsave": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.tweetsave.org/sse"]
}
}
}
```
---
### Local Installation
For offline use or development.
#### Claude Code
```bash
# Global (all projects)
claude mcp add -s user tweetsave -- npx -y tweetsave-mcp
# Project only
claude mcp add tweetsave -- npx -y tweetsave-mcp
```
#### Claude Desktop / Cursor / Windsurf
```json
{
"mcpServers": {
"tweetsave": {
"command": "npx",
"args": ["-y", "tweetsave-mcp"]
}
}
}
```
---
## Available Tools
### `tweetsave_get_tweet`
Fetch a single tweet with all content.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | required | Tweet URL or ID |
| `response_format` | 'markdown' \| 'json' | 'markdown' | Output format |
### `tweetsave_get_thread`
Fetch a tweet thread (connected tweets).
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | required | Any tweet URL in thread |
| `response_format` | 'markdown' \| 'json' | 'markdown' | Output format |
### `tweetsave_to_blog`
Convert tweet to blog post format.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `url` | string | required | Tweet URL or ID |
| `include_engagement` | boolean | true | Include likes/retweets |
| `response_format` | 'markdown' \| 'json' | 'markdown' | Output format |
### `tweetsave_batch`
Fetch multiple tweets