返回市场
推特MCP服务器

推特MCP服务器

作者:rafaljanicki16 星标更新:2025-08-26

项目介绍

技术文档摘要

X(Twitter)MCP服务器

smithery徽章 PyPI版本

这是一个用于通过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>

功能

  • 获取用户资料、关注者和关注列表。
  • 发布、删除和收藏推文。
  • 在Twitter上搜索推文和趋势。
  • 管理书签和时间线。
  • 内置处理Twitter API的速率限制。
  • 使用Twitter API v2并进行适当的认证(API密钥和令牌),避免使用用户名/密码的方式以减少账户被暂停的风险。
  • 提供完整的Twitter API v2端点实现,包括用户管理、推文管理、时间线和搜索功能。

预备条件

  • Python 3.10或更高版本:确保系统中已安装Python。
  • Twitter开发者账号:您需要从Twitter开发者门户获取API凭证(API密钥、API密钥秘密、访问令牌、访问令牌秘密和Bearer令牌)。
  • 可选:Claude桌面版:从Anthropic网站下载并安装Claude桌面应用。
  • 可选:Node.js(用于MCP集成):在Claude桌面版中运行MCP服务器时需要。
  • 一个包管理器如uvpip用于Python依赖项。

安装

方案1:通过Smithery安装(推荐)

要通过Smithery自动安装X(Twitter)MCP服务器到Claude桌面版:

npx -y @smithery/cli install @rafaljanicki/x-twitter-mcp-server --client claude

方案2:从PyPI安装

最简单的安装x-twitter-mcp的方法是通过PyPI:

pip install x-twitter-mcp

方案3:从源代码安装

如果您希望从源代码仓库安装:

  1. 克隆仓库

    git clone https://github.com/rafaljanicki/x-twitter-mcp-server.git
    cd x-twitter-mcp-server
    
  2. 设置虚拟环境(可选但推荐):

    python -m venv .venv
    source .venv/bin/activate  # 在Windows上:.venv\Scripts\activate
    
  3. 安装依赖项: 使用uv(推荐,因为项目使用uv.lock):

    uv sync
    

    或者使用pip

    pip install .
    
  4. 配置环境变量

    • 在项目根目录创建一个.env文件(如果提供了.env.example,可以复制它)。
    • 添加您的Twitter API凭证:
      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。使用以下之一:

推荐:Streamable HTTP(Docker/Smithery)

作为HTTP服务运行服务器,具有Streamable HTTP和SSE端点。

  1. 构建Docker镜像:

    docker build -t x-twitter-mcp .
    
  2. 运行容器(Smithery使用PORT;默认为8081):

    docker run -p 8081:8081 -e PORT=8081 x-twitter-mcp
    
  3. 端点:

    • Streamable HTTP(JSON-RPC通过HTTP):POST http://localhost:8081/mcp
    • SSE(服务器发送事件):GET http://localhost:8081/sse
  4. 通过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部署时,smithery.yaml配置为runtime: containerstartCommand.type: http

Streamable HTTP(本地,无Docker)

直接运行ASGI服务器。

如果从PyPI安装:

python -m x_twitter_mcp.http_server

如果从源代码安装并使用uv

uv run python -m x_twitter_mcp.http_server

端点和配置传递与上述相同。

遗留STDIO(CLI脚本)

该项目还提供了一个STDIO CLI脚本x-twitter-mcp-server,适用于期望STDIO的桌面客户端。

如果从PyPI安装:

x-twitter-mcp-server

如果从源代码安装并使用uv

uv run x-twitter-mcp-server

与Claude桌面版配合使用

要将此MCP服务器与Claude桌面版一起使用,您需要配置Claude以连接到服务器。请按照以下步骤操作:

第一步:安装Node.js

Claude桌面版使用Node.js来运行MCP服务器。如果没有安装Node.js:

  • nodejs.org下载并安装Node.js。
  • 验证安装:
    node --version
    

第二步:定位Claude桌面版配置

Claude桌面版使用claude_desktop_config.json文件来配置MCP服务器。

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/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中更好地记录。

第四步:重启Claude桌面版

  • 完全退出Claude桌面版。
  • 重新打开Claude桌面版以加载新配置。

第五步:验证连接

  • 打开Claude桌面版。
  • 查看输入区域(右下角)的锤子或连接图标。这表示MCP工具可用。
  • 点击图标查看来自x-twitter-mcp的可用工具,例如post_tweetsearch_twitterget_user_profile等。

第六步:使用Claude测试

现在您可以在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

  • 描述:获取用户的详细资料信息。
  • Claude桌面版示例
    获取用户ID 123456789的Twitter资料。
    
    Claude将返回用户的资料详情,包括ID、名称、用户名、个人资料图片URL和描述。

get_user_by_screen_name

  • 描述:通过屏幕名称获取用户。
  • Claude桌面版示例
    获取屏幕名为“example_user”的Twitter用户。
    
    Claude将返回用户的资料详情。

get_user_by_id

  • 描述:通过ID获取用户。
  • Claude桌面版示例
    获取ID为987654321的Twitter用户。
    
    Claude将返回用户的资料详情。

get_user_followers

  • 描述:获取给定用户的关注者列表。
  • Claude桌面版示例
    获取用户ID 123456789的关注者,限制为50个。
    
    Claude将返回最多50个关注者的列表。

get_user_following

  • 描述:获取给定用户正在关注的用户。
  • Claude桌面版示例
    用户ID 123456789正在关注哪些用户?限制为50个用户。
    
    Claude将返回最多50个用户的列表。

get_user_followers_you_know

  • 描述:获取共同关注者列表。
  • Claude桌面版示例
    获取用户ID 123456789的共同关注者,限制为50个。
    
    Claude将返回最多50个共同关注者的列表(通过过滤关注者模拟)。

get_user_subscriptions

  • 描述:获取指定用户订阅的用户列表。
  • Claude桌面版示例
    获取用户ID 123456789的订阅列表,限制为50个。
    
    Claude将返回最多50个用户的列表(使用关注作为订阅的代理)。

推文管理工具

post_tweet

  • 描述:发布带有可选媒体、回复和标签的推文。
  • Claude桌面版示例
    发布一条推文,内容为“Hello from Claude Desktop! #MCP”。
    
    Claude将发布推文并返回推文详情。

delete_tweet

  • 描述:通过其ID删除推文。
  • Claude桌面版示例
    删除ID为123456789012345678的推文。
    
    Claude将删除推文并确认操作。

get_tweet_details

  • 描述:获取特定推文的详细信息。
  • Claude桌面版示例
    获取ID为123456789012345678的推文详情。
    
    Claude将返回推文的详情,包括ID、文本、创建日期和作者ID。

create_poll_tweet

  • 描述:创建带有投票的推文。
  • Claude桌面版示例
    创建一个带有问题“你最喜欢的颜色是什么?”和选项“红色”、“蓝色”、“绿色”的投票推文,持续60分钟。
    
    Claude将创建投票推文并返回推文详情。

vote_on_poll

  • 描述:对投票进行投票。
  • Claude桌面版示例
    对ID为123456789012345678的推文中的投票投“蓝色”票。
    
    Claude将返回模拟响应(因为Twitter API v2不支持投票)。

favorite_tweet

  • 描述:收藏推文。
  • Claude桌面版示例
    收藏ID为123456789012345678的推文。
    
    Claude将收藏推文并确认操作。

unfavorite_tweet

  • 描述:取消收藏推文。
  • Claude桌面版示例
    取消收藏ID为123456789012345678的推文。
    
    Claude将取消收藏推文并确认操作。

bookmark_tweet

  • 描述:将推文添加到书签。
  • Claude桌面版示例
    将ID为123456789012345678的推文添加到书签。
    
    Claude将添加推文到书签并确认操作。

delete_bookmark

  • 描述:从书签中移除推文。
  • Claude桌面版示例
    移除ID为123456789012345678的推文的书签。
    
    Claude将移除书签并确认操作。

delete_all_bookmarks

  • 描述:删除所有书签。
  • Claude桌面版示例
    删除我所有的Twitter书签。
    
    Claude将删除所有书签并确认操作。

时间线及搜索工具

get_timeline

  • 描述:获取您的主页时间线(为您)的推文。
  • Claude桌面版示例
    显示我的Twitter为您时间线,限制为20条推文。
    
    Claude将返回最多20条来自您的为您时间线的推文。

get_latest_timeline

  • 描述:获取您的主页时间线(关注)的推文。
  • Claude桌面版示例
    显示我的Twitter关注时间线,限制为20条推文。
    
    Claude将返回最多20条来自您的关注时间线的推文。

search_twitter

  • 描述:使用查询搜索Twitter。
  • Claude桌面版示例
    搜索最近关于AI的推文,限制为10条。
    
    Claude将返回最多10条最近关于AI的推文。

get_trends

  • 描述:获取Twitter上的热门话题。
  • Claude桌面版示例
    当前Twitter上的热门话题是什么?限制为10个。
    
    Claude将返回最多10个热门话题。

get_highlights_tweets

  • 描述:从用户的时间线中获取高亮推文。
  • Claude桌面版示例
    获取用户ID 123456789的时间线中的高亮推文,限制为20条。
    
    Claude将返回最多20条来自用户时间线的推文(模拟为高亮)。

get_user_mentions

  • 描述:获取提及特定用户的推文。
  • Claude桌面版示例
    获取提及用户ID 1_23456789的推文,限制为20条。
    
    Claude将返回最多20条提及用户的推文。

故障排除

  • 服务器无法启动
    • 确保您的.env文件中有所有必需的Twitter API凭证(如果从源代码安装)。
    • 如果