An MCP server that gives Claude, Cursor, VS Code Copilot, and other AI assistants instant, offline access to TwitterAPI.io documentation. - 59 API endpoints with full HTTP method, body/query parameters, cURL examples, and response schemas - 32 guide pages covering pricing, authentication, rate limits, webhooks, streaming - 24 blog posts with tutorials and use cases - All v2 write endpoints documen
Add this skill
npx mdskills install dorukardahan/twitterapi-docs-mcpComprehensive offline documentation bundle for TwitterAPI.io with 59 endpoints, fuzzy search, and excellent setup guides
1# twitterapi-io-mcp23> Offline TwitterAPI.io documentation for Claude and AI assistants via MCP. 59 endpoints (with full method/params/body), 32 guides, 24 blog posts. No API key needed.45[](https://www.npmjs.com/package/twitterapi-io-mcp)6[](https://www.npmjs.com/package/twitterapi-io-mcp)7[](https://smithery.ai/server/@dorukardahan/twitterapi-io-mcp)8[](https://github.com/dorukardahan/twitterapi-io-mcp)9[](https://opensource.org/licenses/MIT)1011```bash12# Quick install (Claude Code)13claude mcp add twitterapi-io -- npx -y twitterapi-io-mcp14```1516## What is this?1718An MCP server that gives Claude, Cursor, VS Code Copilot, and other AI assistants **instant, offline access** to [TwitterAPI.io](https://twitterapi.io) documentation.1920- **59 API endpoints** with full HTTP method, body/query parameters, cURL examples, and response schemas21- **32 guide pages** covering pricing, authentication, rate limits, webhooks, streaming22- **24 blog posts** with tutorials and use cases23- **All v2 write endpoints** documented with `login_cookies`, `proxy`, and body params24- **4 deprecated v1 endpoints** marked with migration notices25- **Zero API key required** — everything is bundled locally2627Unlike other Twitter MCP servers that proxy live API calls (and need your API key), this one ships a complete documentation snapshot. Your AI assistant reads it locally, instantly.2829### v1.0.21 Highlights30- **Security fix**: sanitized endpoint IDs to prevent path traversal in resource URIs31- Fresh rescrape from docs.twitterapi.io (Feb 2026)32- All 26 write endpoints have body parameters (login_cookies, tweet_text, proxy, etc.)33- All 27 GET endpoints have query parameters34- Scraper auto-extracts method/body/params — `npm run scrape` keeps data fresh3536> **Disclaimer**: Independent community project. Not affiliated with TwitterAPI.io.3738## Installation3940> Previously published as `twitterapi-docs-mcp`? Just change the package name — everything else stays the same.4142**Requires:** Node.js 18.18.0+4344### Claude Code (recommended)4546```bash47# Add globally (all projects)48claude mcp add --scope user twitterapi-io -- npx -y twitterapi-io-mcp4950# Or project-only51claude mcp add twitterapi-io -- npx -y twitterapi-io-mcp5253# Verify54claude mcp list55```5657### Claude Desktop5859Add to your config file:6061- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`62- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`63- **Linux**: `~/.config/Claude/claude_desktop_config.json`6465```json66{67 "mcpServers": {68 "twitterapi-io": {69 "command": "npx",70 "args": ["-y", "twitterapi-io-mcp"]71 }72 }73}74```7576### Cursor7778Add to `.cursor/mcp.json` in your project root:7980```json81{82 "mcpServers": {83 "twitterapi-io": {84 "command": "npx",85 "args": ["-y", "twitterapi-io-mcp"]86 }87 }88}89```9091### VS Code / VS Code Insiders9293Add to `.vscode/mcp.json` in your project root:9495```json96{97 "servers": {98 "twitterapi-io": {99 "command": "npx",100 "args": ["-y", "twitterapi-io-mcp"]101 }102 }103}104```105106### Windsurf107108Add to `~/.codeium/windsurf/mcp_config.json`:109110```json111{112 "mcpServers": {113 "twitterapi-io": {114 "command": "npx",115 "args": ["-y", "twitterapi-io-mcp"]116 }117 }118}119```120121### Docker122123```bash124docker run -i --rm $(docker build -q .) 2>/dev/null125```126127Or build from source:128129```bash130git clone https://github.com/dorukardahan/twitterapi-io-mcp.git131cd twitterapi-io-mcp && npm install132node index.js133```134135## Available tools136137| Tool | Description | Best for |138|------|-------------|----------|139| `search_twitterapi_docs` | Full-text search across all docs (fuzzy matching, typo-tolerant) | Finding endpoints, guides, or blog posts by keyword |140| `get_twitterapi_endpoint` | Get full endpoint documentation with params, examples, response schema | Deep dive into a specific API endpoint |141| `list_twitterapi_endpoints` | List endpoints, optionally filtered by category | Browsing what's available in a category |142| `get_twitterapi_guide` | Get guide pages (pricing, auth, rate limits, webhooks, etc.) | Understanding platform rules and setup |143| `get_twitterapi_url` | Fetch content by URL path or page key | When you have a direct link to docs |144| `get_twitterapi_pricing` | Quick pricing overview | Cost questions |145| `get_twitterapi_auth` | Quick authentication guide | Auth setup and API key usage |146147## For AI assistants148149If you're an AI assistant using this MCP server, here's a quick reference:150151| User wants... | Use this tool | Example |152|---------------|---------------|---------|153| Find an endpoint | `search_twitterapi_docs` | `query: "advanced search"` |154| Endpoint details | `get_twitterapi_endpoint` | `endpoint_name: "tweet_advanced_search"` |155| List all endpoints | `list_twitterapi_endpoints` | `category: "user"` (optional) |156| Pricing info | `get_twitterapi_pricing` | No params needed |157| Auth guide | `get_twitterapi_auth` | No params needed |158| Any guide/page | `get_twitterapi_guide` | `guide_name: "qps_limits"` |159| Fetch by URL | `get_twitterapi_url` | `url: "pricing"` |160161**Tips:**162- Search is fuzzy and typo-tolerant: `"twet object"` still finds results163- Use `max_results: 5` for focused results164- Check the `deprecation_notice` field — some legacy endpoints have v2 replacements165166## What can you ask?167168Here are real prompts that work well with this MCP server:169170- *"What are the rate limits for TwitterAPI.io?"* — triggers `get_twitterapi_guide`171- *"Show me the tweet advanced search endpoint"* — triggers `get_twitterapi_endpoint`172- *"How do I authenticate with the API?"* — triggers `get_twitterapi_auth`173- *"What's the pricing?"* — triggers `get_twitterapi_pricing`174- *"List all user-related endpoints"* — triggers `list_twitterapi_endpoints` with `category: "user"`175- *"How do webhook filter rules work?"* — triggers `search_twitterapi_docs`176- *"What endpoints are deprecated?"* — triggers `search_twitterapi_docs` with `query: "deprecated"`177- *"How do I upload media and create a tweet?"* — triggers sequential `get_twitterapi_endpoint` calls178179<details>180<summary><strong>All 59 endpoints by category</strong></summary>181182| Category | Count | Endpoints |183|----------|-------|-----------|184| **User** | 12 | `get_user_by_username`, `get_user_followers`, `get_user_followings`, `batch_get_user_by_userids`, and 8 more |185| **Tweet** | 8 | `tweet_advanced_search`, `get_tweet_by_ids`, `get_tweet_replies_v2`, `get_user_tweets`, and 4 more |186| **Community** | 9 | `create_community_v2`, `get_community_by_id`, `join_community_v2`, and 6 more |187| **Profile** | 3 | `update_avatar_v2`, `update_banner_v2`, `update_profile_v2` |188| **Webhook** | 4 | `add_webhook_rule`, `get_webhook_rules`, `update_webhook_rule`, `delete_webhook_rule` |189| **Stream** | 3 | `add_user_to_monitor_tweet`, `get_user_to_monitor_tweet`, `remove_user_from_monitor_tweet` |190| **Action** | 14 | `create_tweet_v2`, `like_tweet_v2`, `retweet_tweet_v2`, `upload_media_v2`, and 10 more |191| **DM** | 2 | `send_dm_v2`, `get_dm_history_by_user_id` |192| **List** | 2 | `get_list_followers`, `get_list_members` |193| **Other** | 2 | `get_trends`, `get_space_detail` |194195</details>196197## Configuration198199| Environment Variable | Default | Description |200|---------------------|---------|-------------|201| `TWITTERAPI_MCP_DISK_CACHE` | `1` (on) | Set to `0` to disable disk caching |202203## Troubleshooting204205**`npx` hangs or fails on first run**206207The first run downloads the package from npm. If it hangs, try:208```bash209npx -y twitterapi-io-mcp@latest210```211Or install globally: `npm install -g twitterapi-io-mcp`212213**"Node.js version not supported"**214215This server requires Node.js 18.18.0 or later. Check your version:216```bash217node --version218```219220**`claude mcp add` not recognized**221222Make sure Claude Code CLI is installed and up to date:223```bash224claude --version225```226227**Server starts but no tools appear**228229Restart your MCP client after adding the server config. Most clients (Claude Desktop, Cursor) need a restart to detect new MCP servers.230231## How it works232233```234┌─────────────┐ MCP (stdio) ┌──────────────────┐235│ Claude / │ ◄──────────────────► │ twitterapi-io-mcp│236│ Cursor / │ │ │237│ VS Code │ │ Bundled docs │238└─────────────┘ │ (59 endpoints) │239 └──────────────────┘240 No network needed241```242243| Property | Value |244|----------|-------|245| Runtime | Node.js 18.18.0+ (ES Modules, no build step) |246| Protocol | MCP via stdio |247| Caching | Hybrid (memory + disk), 24h TTL |248| Search | N-gram tokenization with fuzzy matching |2492501. AI assistant calls an MCP tool (search, get endpoint, etc.)2512. Server searches the bundled documentation snapshot2523. Results return instantly with no network requests253254## Why I built this255256I use [TwitterAPI.io](https://twitterapi.io) daily for my projects. Switching between my editor and their docs site got old fast. So I packaged the entire documentation into an MCP server. Now I ask Claude and get answers without leaving my terminal.257258If you work with the Twitter/X API through TwitterAPI.io, this saves you the same context-switching. Install it, forget about it, and just ask.259260## Development261262```bash263git clone https://github.com/dorukardahan/twitterapi-io-mcp.git264cd twitterapi-io-mcp265npm install266npm test # Run tests (52 tests)267npm start # Start server locally268npm run scrape # Update docs snapshot from twitterapi.io269```270271## Not using MCP?272273If your AI tool doesn't support MCP (like OpenClaw), use the **skill version** instead — a single markdown file with all 55 endpoints:274275👉 **[twitterapi-io-skill](https://github.com/dorukardahan/twitterapi-io-skill)** — works with OpenClaw, Claude, GPT, Gemini, and any LLM.276277## Links278279- **npm**: [twitterapi-io-mcp](https://www.npmjs.com/package/twitterapi-io-mcp)280- **Skill version**: [dorukardahan/twitterapi-io-skill](https://github.com/dorukardahan/twitterapi-io-skill)281- **GitHub**: [dorukardahan/twitterapi-io-mcp](https://github.com/dorukardahan/twitterapi-io-mcp)282- **MCP Registry**: [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io)283- **TwitterAPI.io**: [twitterapi.io](https://twitterapi.io)284285## Contributing286287PRs welcome! Fork the repo, create a branch, make your changes, and open a pull request. Bug reports and feature requests go to [GitHub Issues](https://github.com/dorukardahan/twitterapi-io-mcp/issues).288289## License290291[MIT](LICENSE)292293## Acknowledgments294295- [TwitterAPI.io](https://twitterapi.io) for the API service296- [Anthropic](https://anthropic.com) for the Model Context Protocol297- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)298
Full transparency — inspect the skill content before installing.