这是一个用于通过AI工具与Twitter(X)交互的Model Context Protocol(MCP)服务器。该服务器允许您通过AI工具中的自然语言命令获取推文、发布推文、搜索Twitter、管理关注者等。
<a href="https://glama.ai/mcp/servers/@rafaljanicki/x-twitter-mcp-server"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1170488537,3386952334&fm=3081&app=3081&f=PNG?w=760&h=400" alt="X (Twitter)服务器MCP服务器" /> </a>uv或pip用于Python依赖项。要通过Smithery自动安装X(Twitter)MCP服务器到Claude桌面版:
npx -y @smithery/cli install @rafaljanicki/x-twitter-mcp-server --client claude
最简单的安装x-twitter-mcp的方法是通过PyPI:
pip install x-twitter-mcp
如果您希望从源代码仓库安装:
克隆仓库:
git clone https://github.com/rafaljanicki/x-twitter-mcp-server.git
cd x-twitter-mcp-server
设置虚拟环境(可选但推荐):
python -m venv .venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate
安装依赖项:
使用uv(推荐,因为项目使用uv.lock):
uv sync
或者使用pip:
pip install .
配置环境变量:
.env文件(如果提供了.env.example,可以复制它)。TWITTER_API_KEY=your_api_key
TWITTER_API_SECRET=your_api_secret
TWITTER_ACCESS_TOKEN=your_access_token
TWITTER_ACCESS_TOKEN_SECRET=your_access_token_secret
TWITTER_BEARER_TOKEN=your_bearer_token
首选传输方式是Streamable HTTP。使用以下之一:
作为HTTP服务运行服务器,具有Streamable HTTP和SSE端点。
构建Docker镜像:
docker build -t x-twitter-mcp .
运行容器(Smithery使用PORT;默认为8081):
docker run -p 8081:8081 -e PORT=8081 x-twitter-mcp
端点:
POST http://localhost:8081/mcpGET http://localhost:8081/sse通过base64编码的config查询参数传递配置(推荐在Smithery中使用)。示例配置JSON:
{"twitterApiKey":"...","twitterApiSecret":"...","twitterAccessToken":"...","twitterAccessTokenSecret":"...","twitterBearerToken":"..."}
编码并调用initialize:
CONFIG_B64=$(printf '%s' '{"twitterApiKey":"YOUR_KEY","twitterApiSecret":"YOUR_SECRET","twitterAccessToken":"YOUR_TOKEN","twitterAccessTokenSecret":"YOUR_TOKEN_SECRET","twitterBearerToken":"YOUR_BEARER"}' | base64)
curl -sS -X POST "http://localhost:8081/mcp?config=${CONFIG_B64}" \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":"1","method":"initialize","params":{"capabilities":{}}}'
注意事项:
POST /将返回404;使用/mcp用于Streamable HTTP和/sse用于SSE。smithery.yaml配置为runtime: container和startCommand.type: http。直接运行ASGI服务器。
如果从PyPI安装:
python -m x_twitter_mcp.http_server
如果从源代码安装并使用uv:
uv run python -m x_twitter_mcp.http_server
端点和配置传递与上述相同。
该项目还提供了一个STDIO CLI脚本x-twitter-mcp-server,适用于期望STDIO的桌面客户端。
如果从PyPI安装:
x-twitter-mcp-server
如果从源代码安装并使用uv:
uv run x-twitter-mcp-server
要将此MCP服务器与Claude桌面版一起使用,您需要配置Claude以连接到服务器。请按照以下步骤操作:
Claude桌面版使用Node.js来运行MCP服务器。如果没有安装Node.js:
node --version
Claude桌面版使用claude_desktop_config.json文件来配置MCP服务器。
如果文件不存在,请创建它。
编辑claude_desktop_config.json以包含x-twitter-mcp服务器。替换/path/to/x-twitter-mcp-server为您项目的实际路径(如果从源代码安装)或Python可执行文件的路径(如果从PyPI安装)。
如果从PyPI安装:
{
"mcpServers": {
"x-twitter-mcp": {
"command": "x-twitter-mcp-server",
"args": [],
"env": {
"PYTHONUNBUFFERED": "1",
"TWITTER_API_KEY": "your_api_key",
"TWITTER_API_SECRET": "your_api_secret",
"TWITTER_ACCESS_TOKEN": "your_access_token",
"TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret",
"TWITTER_BEARER_TOKEN": "your_bearer_token"
}
}
}
}
如果从源代码安装并使用uv:
{
"mcpServers": {
"x-twitter-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/x-twitter-mcp-server",
"run",
"x-twitter-mcp-server"
],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
"command": "x-twitter-mcp-server":如果从PyPI安装,则直接使用CLI脚本。"env":如果从PyPI安装,您可能需要直接在配置中提供环境变量(因为没有.env文件)。如果从源代码安装,则使用.env文件。"env": {"PYTHONUNBUFFERED": "1"}:确保输出未缓冲,以便在Claude中更好地记录。x-twitter-mcp的可用工具,例如post_tweet、search_twitter、get_user_profile等。现在您可以在Claude桌面版中使用自然语言与Twitter互动。这里有一些示例提示:
获取用户资料:
获取用户ID 123456的Twitter资料。
Claude将调用get_user_profile工具并返回用户的详细信息。
发布推文:
发布一条推文,内容为“Hello from Claude Desktop! #MCP”。
Claude将使用post_tweet工具发布推文并确认操作。
搜索Twitter:
搜索最近关于AI的推文。
Claude将调用search_twitter工具并返回相关推文。
获取趋势:
当前Twitter上的热门话题是什么?
Claude将使用get_trends工具获取热门话题。
当提示时,授予Claude权限以在聊天会话中使用MCP工具。
以下是x-twitter-mcp服务器提供的所有工具列表,以及在Claude桌面版中使用自然语言提示的示例执行。
get_user_profile获取用户ID 123456789的Twitter资料。
Claude将返回用户的资料详情,包括ID、名称、用户名、个人资料图片URL和描述。get_user_by_screen_name获取屏幕名为“example_user”的Twitter用户。
Claude将返回用户的资料详情。get_user_by_id获取ID为987654321的Twitter用户。
Claude将返回用户的资料详情。get_user_followers获取用户ID 123456789的关注者,限制为50个。
Claude将返回最多50个关注者的列表。get_user_following用户ID 123456789正在关注哪些用户?限制为50个用户。
Claude将返回最多50个用户的列表。get_user_followers_you_know获取用户ID 123456789的共同关注者,限制为50个。
Claude将返回最多50个共同关注者的列表(通过过滤关注者模拟)。get_user_subscriptions获取用户ID 123456789的订阅列表,限制为50个。
Claude将返回最多50个用户的列表(使用关注作为订阅的代理)。post_tweet发布一条推文,内容为“Hello from Claude Desktop! #MCP”。
Claude将发布推文并返回推文详情。delete_tweet删除ID为123456789012345678的推文。
Claude将删除推文并确认操作。get_tweet_details获取ID为123456789012345678的推文详情。
Claude将返回推文的详情,包括ID、文本、创建日期和作者ID。create_poll_tweet创建一个带有问题“你最喜欢的颜色是什么?”和选项“红色”、“蓝色”、“绿色”的投票推文,持续60分钟。
Claude将创建投票推文并返回推文详情。vote_on_poll对ID为123456789012345678的推文中的投票投“蓝色”票。
Claude将返回模拟响应(因为Twitter API v2不支持投票)。favorite_tweet收藏ID为123456789012345678的推文。
Claude将收藏推文并确认操作。unfavorite_tweet取消收藏ID为123456789012345678的推文。
Claude将取消收藏推文并确认操作。bookmark_tweet将ID为123456789012345678的推文添加到书签。
Claude将添加推文到书签并确认操作。delete_bookmark移除ID为123456789012345678的推文的书签。
Claude将移除书签并确认操作。delete_all_bookmarks删除我所有的Twitter书签。
Claude将删除所有书签并确认操作。get_timeline显示我的Twitter为您时间线,限制为20条推文。
Claude将返回最多20条来自您的为您时间线的推文。get_latest_timeline显示我的Twitter关注时间线,限制为20条推文。
Claude将返回最多20条来自您的关注时间线的推文。search_twitter搜索最近关于AI的推文,限制为10条。
Claude将返回最多10条最近关于AI的推文。get_trends当前Twitter上的热门话题是什么?限制为10个。
Claude将返回最多10个热门话题。get_highlights_tweets获取用户ID 123456789的时间线中的高亮推文,限制为20条。
Claude将返回最多20条来自用户时间线的推文(模拟为高亮)。get_user_mentions获取提及用户ID 1_23456789的推文,限制为20条。
Claude将返回最多20条提及用户的推文。.env文件中有所有必需的Twitter API凭证(如果从源代码安装)。