XMCP

XMCP

A comprehensive MCP server for X/Twitter featuring over 70 tools for research, engagement, and publishing with granular permission-based access control. It includes specialized Playwright-powered tools for fetching X articles and supports extensive account management and thread operations.

Category
访问服务器

README

XMCP

The most comprehensive MCP server for X/Twitter with permission-based access control, 70+ tools, and Playwright-powered article fetching.

License: MIT Python 3.10+

Highlights

  • 70+ tools across research, engagement, publishing, social, lists, DMs
  • Permission profiles with runtime enforcement
  • Playwright-powered article fetching for X articles
  • Full engagement metrics and thread support
  • Broad MCP client compatibility

Quick Start

1. Install

pip install "xmcp[articles] @ git+https://github.com/vibeforge1111/xmcp.git"
python -m playwright install chromium

Note: The package name is xmcp and the server command is xmcp-server.

2. Get API Keys (Required)

XMCP requires X/Twitter API credentials to run. If you see errors about missing API keys, follow this quick guide:

  1. Go to https://developer.twitter.com and sign in.
  2. Create a Project and App (or open an existing one).
  3. In the App Keys and Tokens tab, generate:
    • API Key and API Secret
    • Access Token and Access Token Secret
    • Bearer Token
  4. Copy .env.example to .env and paste your keys.

Common error messages and fixes:

  • "Missing required environment variable" -> add the missing key to .env or your MCP config.
  • "403 Forbidden" / "Error 453" -> your X API access tier does not include that endpoint.

Get your credentials from developer.twitter.com:

  • API Key & Secret
  • Access Token & Secret
  • Bearer Token

You can store them in a local .env file:

# Windows (PowerShell)
copy .env.example .env

# macOS/Linux
cp .env.example .env

Do not commit .env. It is ignored by default.

3. Configure

Add to your Claude settings (~/.claude.json):

{
  "mcpServers": {
    "xmcp": {
      "type": "stdio",
      "command": "xmcp-server",
      "env": {
        "TWITTER_API_KEY": "your_key",
        "TWITTER_API_SECRET": "your_secret",
        "TWITTER_ACCESS_TOKEN": "your_token",
        "TWITTER_ACCESS_TOKEN_SECRET": "your_token_secret",
        "TWITTER_BEARER_TOKEN": "your_bearer",
        "X_MCP_PROFILE": "researcher"
      }
    }
  }
}

If you name the server xmcp, tools will appear as mcp__xmcp__* in clients that show tool prefixes.

4. Use

"Search for tweets about AI"        -> search_twitter
"Read this article: x.com/..."      -> get_article (Playwright)
"Post: Hello world!"                -> post_tweet (requires creator profile)

Permission Profiles

Choose what capabilities to enable:

Profile Tools Use Case
researcher 23 Monitoring, analysis, research (read-only)
creator 41 Content creation, audience engagement
manager 55 Full account management
automation 70 Bots, full automation (including DMs)
custom varies Pick exactly what you need

Setting a Profile

"env": {
  "X_MCP_PROFILE": "creator"
}

Permissions are evaluated at runtime. You can switch profiles or groups without restarting the server.

Custom Profile

"env": {
  "X_MCP_PROFILE": "custom",
  "X_MCP_GROUPS": "research,engage,publish"
}

Tool Groups

research (18 tools) - Read-only, safe

Search, user lookup, tweet details, timelines, trends, article fetching

engage (9 tools) - Low risk

Like, unlike, bookmark, retweet, unretweet

publish (7 tools) - Medium risk

Post tweet, delete, quote, create thread, polls

social (8 tools) - Medium-high risk

Follow, unfollow, block, unblock, mute, unmute

conversations (5 tools) - Safe

Get full threads, replies, quote tweets, hide/unhide replies

lists (14 tools) - Low risk

Create, delete, manage lists and members

dms (3 tools) - High risk

Send and read direct messages

account (1 tool) - High risk

Get authenticated user profile


Key Tools

Search & Discovery

Tool Description
search_twitter Search with full engagement metrics
search_articles Find tweets containing X articles
get_trends Worldwide trending topics
get_article Fetch article content (Playwright)

User & Tweet Info

Tool Description
get_user_by_screen_name User by @handle
get_user_profile User by ID with metrics
get_tweet_details Full tweet info
get_conversation Complete thread
get_replies Replies to a tweet

Engagement

Tool Description
favorite_tweet Like
retweet Retweet
bookmark_tweet Bookmark
quote_tweet Quote with comment

Publishing

Tool Description
post_tweet Post with media, tags, reply
create_thread Post multiple tweets as thread
create_poll_tweet Create a poll

Social

Tool Description
follow_user / unfollow_user Follow management
block_user / unblock_user Block management
mute_user / unmute_user Mute management

Human-In-The-Loop Advisory

This MCP is designed to improve research and workflows, not to replace human judgment. Publishing tools return an advisory field that recommends a human review for posts and replies.


Real-Time Use Cases (No Extra Telemetry)

You can drive real-time workflows by polling tools on a schedule from your client or a cron job. Common patterns:

  • Trend snapshots every hour using get_trends
  • Keyword monitoring using search_twitter
  • Article tracking using search_articles + get_article

This keeps the server simple while still enabling real-time visibility.


Article Fetching

X articles require JavaScript to render. This MCP uses Playwright.

# Correct - uses Playwright internally
result = await get_article("https://x.com/user/status/123")
# Returns: {title, author, content, url}

# WRONG - will fail
WebFetch("https://x.com/...")  # Returns empty content

Setup

pip install playwright
python -m playwright install chromium

Configuration Reference

Environment Variables

Variable Description Default
X_MCP_PROFILE Permission profile researcher
X_MCP_GROUPS Groups for custom profile research
X_MCP_DISABLED_TOOLS Tools to disable none
X_MCP_ENABLED_TOOLS Tools to force-enable none

Credentials are read locally and only used to authenticate requests to X/Twitter.

Examples

Research only (safest):

"X_MCP_PROFILE": "researcher"

Content creator:

"X_MCP_PROFILE": "creator"

Custom - research + likes only:

"X_MCP_PROFILE": "custom",
"X_MCP_GROUPS": "research,engage",
"X_MCP_DISABLED_TOOLS": "retweet,unretweet"

Runtime Permissions

Permissions are evaluated at runtime. This means you can:

  • Switch profiles or groups without restarting the server
  • Use different profiles per request in HTTP mode

Error Responses

Errors return a consistent envelope:

{
  "ok": false,
  "error": {
    "type": "rate_limit_exceeded",
    "message": "Rate limit exceeded",
    "status": 429,
    "details": {
      "action_type": "tweet_actions",
      "retry_after_seconds": 10
    }
  },
  "tool": "post_tweet",
  "timestamp": "2026-02-03T12:00:00+00:00"
}

Rate Limits

Built-in protection:

Action Limit Window
Tweets 300 15 min
Likes 1000 24 hours
Follows 400 24 hours
DMs 1000 15 min

Note: These limits are local guardrails, not official Twitter API limits.


Limitations

  • get_user_followers_you_know and get_highlights_tweets are simulated with available API data
  • vote_on_poll returns not_supported because the API does not support programmatic voting
  • Article fetching requires Playwright and a Chromium install

Compatible Clients

Works with all major MCP clients. See COMPATIBILITY.md for full setup guides.

Client Config Location Status
Claude Desktop ~/.claude.json Native
Claude Code CLAUDE.md Native
Cursor .cursorrules Native
Cline .clinerules Native
Windsurf .windsurfrules Native
Continue.dev .continue/mcpServers/ Native
OpenClaw ~/.openclaw/skills/ Native
Zed .zed/settings.json Native
ChatGPT Desktop ~/.chatgpt/mcp.json Native
Sourcegraph Cody OpenCTX Native
Firebase Genkit genkitx-mcp plugin Plugin
Taal taal.yaml (sync all) Sync
VS Code + OpenMCP Extension settings Plugin
Ollama + Continue Continue config Native

Pre-made Config Files

Ready-to-use configs in configs/ directory:

configs/
|-- continue.yaml              # Continue.dev (YAML)
|-- continue.json              # Continue.dev (JSON)
|-- openclaw-skill.yaml        # OpenClaw skill
|-- zed-settings.json          # Zed editor
|-- chatgpt-mcp.json           # ChatGPT Desktop
|-- taal.yaml                  # Taal cross-client sync
|-- sourcegraph-openctx.json   # Sourcegraph Cody
|-- genkit-plugin.ts           # Firebase Genkit
`-- vscode-openmcp.json        # VS Code OpenMCP

For AI Agents

This package includes rules files for AI code editors:

File Editor
.cursorrules Cursor
.clinerules Cline
.windsurfrules Windsurf
CLAUDE.md Claude Code
LLM_CONTEXT.md Any LLM (copy to prompt)
docs/AGENT_RULES.md Comprehensive rules

Key rule: Use get_article for X URLs, not WebFetch.


HTTP Server Mode

For cloud deployments:

xmcp-http  # Runs on port 8081
PORT=8080 xmcp-http  # Custom port

Installation Options

From GitHub (recommended)

pip install "xmcp[articles] @ git+https://github.com/vibeforge1111/xmcp.git"

From PyPI (when published)

pip install xmcp[articles]

From Source

git clone https://github.com/vibeforge1111/xmcp.git
cd xmcp
pip install -e .[articles]
python -m playwright install chromium

Documentation

Document Description
README.md This file - full documentation
QUICKSTART.md 5-minute setup guide
CLAUDE.md Instructions for AI agents
LLM_CONTEXT.md Context block for LLM prompts
docs/AGENT_RULES.md Rules for all AI editors

Credits

Built on the upstream project by Rafal Janicki: https://github.com/rafaljanicki/x-twitter-mcp-server

Update Log

See CHANGELOG.md for a summary of enhancements made in XMCP.

Enhanced by VibeShip with:

  • Permission-based access control (5 profiles, 8 groups)
  • 70+ tools (vs ~20 original)
  • Playwright article fetching
  • Thread creation and reading
  • Full Lists, DMs, Social actions
  • Comprehensive engagement metrics
  • AI agent documentation

License

MIT License - see LICENSE

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选