OpenTweet MCP Server
Official# OpenTweet MCP Server
[](https://www.npmjs.com/package/@opentweet/mcp-server)
[](LICENSE)
Post, schedule, and thread on X (Twitter) from Claude, Cursor, ChatGPT, Windsurf, or any MCP client. 30 tools covering tweets, threads, scheduling, an evergreen queue, analytics, AI media generation, and multi-account management.
No X developer account, no OAuth app setup, no pay-per-call API billing. OpenTweet owns the X connection; your agent gets simple tools.
<p align="center">
<img src="icon.png" alt="OpenTweet" width="128" height="128">
</p>
## Quick start: hosted server (recommended)
Nothing to install. Point your MCP client at the hosted Streamable HTTP endpoint:
```
https://mcp.opentweet.io/mcp
```
**Claude Code, one command:**
```bash
claude mcp add --transport http opentweet \
https://mcp.opentweet.io/mcp \
--header "Authorization: Bearer ot_your_api_key"
```
**Or any MCP client config (Claude, Cursor, Windsurf, ChatGPT connectors):**
```json
{
"mcpServers": {
"opentweet": {
"type": "streamable-http",
"url": "https://mcp.opentweet.io/mcp",
"headers": { "Authorization": "Bearer ot_your_api_key" }
}
}
}
```
Get your API key (prefix `ot_`) at [opentweet.io/developer](https://opentweet.io/developer). Connect your X account once in the dashboard; the key covers everything else.
## Other install options
### Claude Desktop extension (one click)
Download the `.mcpb` extension from [opentweet.io/claude-desktop](https://opentweet.io/claude-desktop) and double-click it. Your API key is stored in the OS keychain.
### Local via npm
```bash
npx -y @opentweet/mcp-server install # interactive installer, detects your client
```
Or add manually:
```json
{
"mcpServers": {
"opentweet": {
"command": "npx",
"args": ["-y", "@opentweet/mcp-server"],
"env": { "OPENTWEET_API_KEY": "ot_your_api_key" }
}
}
}
```
Config file locations:
- **Claude Desktop:** `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
- **Cursor:** `~/.cursor/mcp.json`
- **Windsurf:** `~/.codeium/windsurf/mcp_config.json`
## The 30 tools
**Tweets and threads**
`create_tweet`, `create_thread`, `list_tweets`, `get_tweet`, `update_tweet`, `delete_tweet`, `publish_tweet`, `schedule_tweet`, `batch_schedule` (up to 50 at once), `repurpose_tweet`
**Media and AI generation**
`upload_media`, `generate_image`, `generate_video`
**Analytics and insights**
`get_analytics`, `get_top_posts`, `get_profile_growth`, `get_best_times`, `analyze_best_times`, `get_content_gaps`, `search_inspiration`
**Account**
`get_account`, `list_accounts` (multi-account: pass `x_account_id` to any tool)
**Evergreen queue**
`get_evergreen_settings`, `update_evergreen_settings`, `list_evergreen_posts`, `get_evergreen_post`, `add_to_evergreen`, `update_evergreen_post`, `remove_from_evergreen`, `get_evergreen_history`
Plus MCP resources (account status, scheduled queue) and built-in prompts.
## Example prompts
- "Write 3 tweets about TypeScript tips and schedule them across this week at my best posting times."
- "Turn this blog post into a thread and schedule it for tomorrow 9am."
- "What were my top 5 tweets this month? Add the best one to my evergreen queue."
- "Check my posting streak and content gaps, then draft tweets to fill them."
## How it compares
X's official MCP server (XMCP) exposes the raw X API and can post, but it requires an X developer account, OAuth app credentials, and pay-per-use API billing, and it has no scheduling. OpenTweet is the managed publishing layer: flat pricing from $11.99/month, scheduling, threads, evergreen recycling, and analytics included. Full comparison: [opentweet.io/mcp/post-to-x](https://opentweet.io/mcp/post-to-x).
## Links
- Setup guide: [opentweet.io/twitter-mcp-server](https://opentweet.io/twitter-mcp-server)
- REST API docs: [opentweet.io/docs/api](https://opentweet.io/docs/api)
- Pricing: [opentweet.io/pricing](https://opentweet.io/pricing) (7-day free trial)
- npm: [@opentweet/mcp-server](https://www.npmjs.com/package/@opentweet/mcp-server)
## License
MIT
TDQS
Scored across 30 tools
Each tool targets a distinct function with clear descriptions; potential overlap between get_best_times and analyze_best_times is resolved by descriptions (one fetches existing, the other triggers analysis).
All tools follow a consistent 'opentweet_verb_noun' snake_case pattern, making it predictable for an agent to infer purpose from names.
30 tools is above the typical well-scoped range, but each serves a unique purpose in tweet management, scheduling, evergreen content, analytics, media, and AI features. Slightly heavy but still reasonable.
The tool set covers full tweet lifecycle (CRUD, scheduling, publishing), evergreen replay, analytics, media upload, AI generation, inspiration search, and profile growth—no obvious gaps for the domain.