catalog/repos/6551team--opentwitter-mcp.md

500 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Twitter MCP 数据服务
`MCP` `Twitter` `AI工具` `实时监控` `推文搜索`
<p align="center">
<b>Twitter MCP 服务器</b><br>
Twitter/X 数据 · 用户资料 · 推文搜索 · 关注者事件 · KOL 追踪
</p>
---
## 快速安装
> **首先,前往 [https://6551.io/mcp](https://6551.io/mcp) 获取您的 API Token。**
### Claude Code
```bash
claude mcp add twitter \
-e TWITTER_TOKEN=<your-token> \
-- uv --directory /path/to/twitter-mcp run twitter-mcp
```
> 将 `/path/to/twitter-mcp` 替换为本地项目路径,将 `<your-token>` 替换为您的 Token。
### OpenClaw
```bash
export TWITTER_TOKEN="<your-token>"
cp -r openclaw-skill/opentwitter ~/.openclaw/skills/
```
---
## 让 AI 帮你审查并安装
不确定这个 MCP 是否安全?将以下提示词发送给您的 AI 助手——它会先审查源码,确认安全后再安装:
> **复制以下提示词发送给您的 AI 助手(将 `<project-path>` 和 `<your-token>` 替换为实际值):**
```text
请帮我审查并安装 twitter-mcp MCP 服务器。项目路径为 <project-path>。
步骤:
1. 审查以下文件的安全性:
- src/twitter_mcp/api_client.py — 确认只连接 ai.6551.io不向其他地方发送数据
- src/twitter_mcp/config.py — 确认 Token 只从本地 config.json 或环境变量读取,无硬编码密钥或泄露
- src/twitter_mcp/tools.py — 确认所有工具只执行 API 查询,不写文件、不执行命令、不含危险操作
- pyproject.toml — 确认依赖只有 mcp、httpx无可疑包
2. 告知结论:安全 / 有风险 / 有问题,并说明具体原因
3. 如果安全执行安装Token 从 https://6551.io/mcp 获取):
claude mcp add twitter -e TWITTER_TOKEN=<your-token> -- uv --directory <project-path> run twitter-mcp
```
---
## 能做什么?
连接后,直接向 AI 助手提问:
| 你说 | 它做 |
|------|------|
| "显示 @elonmusk 的 Twitter 资料" | 获取用户资料信息 |
| "查看 @VitalikButerin 最近发了什么推文" | 获取用户最新推文 |
| "搜索比特币相关推文" | 关键词搜索 |
| "查找带 #crypto 话题标签的推文" | 话题标签搜索 |
| "获赞超过 1000 的 ETH 相关热门推文" | 带互动量过滤的搜索 |
| "谁引用了这条推文" | 获取指定推文的引用推文 |
| "谁转发了这条推文" | 获取转发该推文的用户 |
| "最近谁关注了 @elonmusk" | 获取新增关注者事件 |
| "谁取关了 @elonmusk" | 获取取消关注事件 |
| "@elonmusk 删除了哪些推文" | 获取已删除的推文 |
| "哪些 KOL 关注了 @elonmusk" | 获取 KOL 关注者 |
---
## 可用工具
| 工具 | 描述 |
|------|------|
| `get_twitter_user` | 通过用户名获取用户资料 |
| `get_twitter_user_by_id` | 通过数字 ID 获取用户资料 |
| `get_twitter_user_tweets` | 获取用户最近的推文 |
| `search_twitter` | 基础过滤条件搜索推文 |
| `search_twitter_advanced` | 多条件高级搜索 |
| `get_twitter_follower_events` | 获取关注/取关事件 |
| `get_twitter_deleted_tweets` | 获取用户已删除的推文 |
| `get_twitter_kol_followers` | 获取 KOL关键意见领袖关注者 |
| `get_twitter_article_by_id` | 通过 ID 获取 Twitter 文章 |
| `get_twitter_tweet_by_id` | 通过 ID 获取推文(含嵌套回复/引用) |
| `get_twitter_quote_tweets_by_id` | 获取引用指定推文的所有推文 |
| `get_twitter_retweet_users_by_id` | 获取转发指定推文的用户 |
| `get_twitter_watch` | 获取所有 Twitter 监控用户 |
| `add_twitter_watch` | 添加 Twitter 用户到监控列表 |
| `delete_twitter_watch` | 从监控列表中按用户名删除用户 |
---
## 配置
### 获取 API Token
前往 [https://6551.io/mcp](https://6551.io/mcp) 获取您的 API Token。
设置环境变量:
```bash
# macOS / Linux
export TWITTER_TOKEN="<your-token>"
# Windows PowerShell
$env:TWITTER_TOKEN = "<your-token>"
```
| 变量 | 必填 | 描述 |
|------|------|------|
| `TWITTER_TOKEN` | **是** | 6551 API Bearer Token从 https://6551.io/mcp 获取) |
| `TWITTER_API_BASE` | 否 | 覆盖 REST API 地址 |
| `TWITTER_MAX_ROWS` | 否 | 每次查询的最大结果数默认100 |
也支持在项目根目录下放置 `config.json`(环境变量优先级更高):
```json
{
"api_base_url": "https://ai.6551.io",
"api_token": "<your-token>",
"max_rows": 100
}
```
---
## WebSocket 实时订阅
**端点**`wss://ai.6551.io/open/twitter_wss?token=YOUR_TOKEN`
订阅您监控的 Twitter 账号的实时事件。
### 订阅 Twitter 事件
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "twitter.subscribe"
}
```
**响应**
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"success": true
}
}
```
### 取消订阅
```json
{
"jsonrpc": "2.0",
"id": 2,
"method": "twitter.unsubscribe"
}
```
### 服务器推送 - Twitter 事件
当监控账号有动态时,服务器推送:
```json
{
"jsonrpc": "2.0",
"method": "twitter.event",
"params": {
"id": 123456,
"twAccount": "elonmusk",
"twUserName": "Elon Musk",
"profileUrl": "https://twitter.com/elonmusk",
"eventType": "NEW_TWEET",
"content": "...",
"ca": "0x1234...",
"remark": "自定义备注",
"createdAt": "2026-03-06T10:00:00Z"
}
}
```
**注意**`content` 字段的结构因事件类型而异(见下文)。
**事件类型及内容结构**
#### 推文事件
- `NEW_TWEET` - 发布新推文
- `NEW_TWEET_REPLY` - 发布回复推文
- `NEW_TWEET_QUOTE` - 发布引用推文
- `NEW_RETWEET` - 转发推文
- `CA` - 含 CA 地址的推文
推文事件的内容结构:
```json
{
"id": "1234567890",
"text": "推文内容...",
"createdAt": "2026-03-06T10:00:00Z",
"language": "en",
"retweetCount": 100,
"favoriteCount": 500,
"replyCount": 20,
"quoteCount": 10,
"viewCount": 10000,
"userScreenName": "elonmusk",
"userName": "Elon Musk",
"userIdStr": "44196397",
"userFollowers": 170000000,
"userVerified": true,
"conversationId": "1234567890",
"isReply": false,
"isQuote": false,
"hashtags": ["crypto", "bitcoin"],
"media": [
{
"type": "photo",
"url": "https://...",
"thumbUrl": "https://..."
}
],
"urls": [
{
"url": "https://...",
"expandedUrl": "https://...",
"displayUrl": "example.com"
}
],
"mentions": [
{
"username": "VitalikButerin",
"name": "Vitalik Buterin"
}
]
}
```
#### 关注者事件
- `NEW_FOLLOWER` - 新增关注者
- `NEW_UNFOLLOWER` - 取消关注事件
关注者事件的内容结构(数组):
```json
[
{
"id": 123,
"twId": 44196397,
"twAccount": "elonmusk",
"twUserName": "Elon Musk",
"twUserLabel": "Verified",
"description": "用户简介...",
"profileUrl": "https://...",
"bannerUrl": "https://...",
"followerCount": 170000000,
"friendCount": 500,
"createdAt": "2026-03-06T10:00:00Z"
}
]
```
#### 资料更新事件
- `UPDATE_NAME` - 用户名变更(内容:新用户名字符串)
- `UPDATE_DESCRIPTION` - 简介更新(内容:新简介字符串)
- `UPDATE_AVATAR` - 头像变更(内容:新头像 URL 字符串)
- `UPDATE_BANNER` - 横幅图片变更(内容:新横幅 URL 字符串)
#### 其他事件
- `TWEET_TOPPING` - 推文置顶
- `DELETE` - 推文删除
- `SYSTEM` - 系统事件
- `TRANSLATE` - 推文翻译
- `CA_CREATE` - CA 代币创建
---
## 数据结构
### Twitter 用户
```json
{
"userId": "44196397",
"screenName": "elonmusk",
"name": "Elon Musk",
"description": "...",
"followersCount": 170000000,
"friendsCount": 500,
"statusesCount": 30000,
"verified": true
}
```
### 推文
```json
{
"id": "1234567890",
"text": "推文内容...",
"createdAt": "2024-02-20T12:00:00Z",
"retweetCount": 1000,
"favoriteCount": 5000,
"replyCount": 200,
"userScreenName": "elonmusk",
"hashtags": ["crypto", "bitcoin"],
"urls": [{"url": "https://..."}]
}
```
---
<details>
<summary><b>其他客户端 — 手动安装</b>(点击展开)</summary>
> 以下所有配置中,将 `/path/to/twitter-mcp` 替换为本地项目实际路径,将 `<your-token>` 替换为从 [https://6551.io/mcp](https://6551.io/mcp) 获取的 Token。
### Claude Desktop
编辑配置文件macOS`~/Library/Application Support/Claude/claude_desktop_config.json`Windows`%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"twitter": {
"command": "uv",
"args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
"env": {
"TWITTER_TOKEN": "<your-token>"
}
}
}
}
```
### Cursor
`~/.cursor/mcp.json` 或 设置 > MCP Servers
```json
{
"mcpServers": {
"twitter": {
"command": "uv",
"args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
"env": {
"TWITTER_TOKEN": "<your-token>"
}
}
}
}
```
### Windsurf
`~/.codeium/windsurf/mcp_config.json`
```json
{
"mcpServers": {
"twitter": {
"command": "uv",
"args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
"env": {
"TWITTER_TOKEN": "<your-token>"
}
}
}
}
```
### Cline
VS Code 侧边栏 > Cline > MCP Servers > Configure编辑 `cline_mcp_settings.json`
```json
{
"mcpServers": {
"twitter": {
"command": "uv",
"args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
"env": {
"TWITTER_TOKEN": "<your-token>"
},
"disabled": false,
"autoApprove": []
}
}
}
```
### Continue.dev
`~/.continue/config.yaml`
```yaml
mcpServers:
- name: twitter
command: uv
args:
- --directory
- /path/to/twitter-mcp
- run
- twitter-mcp
env:
TWITTER_TOKEN: <your-token>
```
### Cherry Studio
设置 > MCP Servers > 添加 > 类型选 stdio命令填 `uv`,参数填 `--directory /path/to/twitter-mcp run twitter-mcp`,环境变量填 `TWITTER_TOKEN`
### Zed 编辑器
`~/.config/zed/settings.json`
```json
{
"context_servers": {
"twitter": {
"command": {
"path": "uv",
"args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
"env": {
"TWITTER_TOKEN": "<your-token>"
}
}
}
}
}
```
### 任意 stdio MCP 客户端
```bash
TWITTER_TOKEN=<your-token> \
uv --directory /path/to/twitter-mcp run twitter-mcp
```
</details>
---
## 兼容性
| 客户端 | 安装方式 | 状态 |
|--------|----------|------|
| **Claude Code** | `claude mcp add` | 一行命令 |
| **OpenClaw** | 复制 skill 目录 | 一行命令 |
| Claude Desktop | JSON 配置 | 已支持 |
| Cursor | JSON 配置 | 已支持 |
| Windsurf | JSON 配置 | 已支持 |
| Cline | JSON 配置 | 已支持 |
| Continue.dev | YAML / JSON | 已支持 |
| Cherry Studio | 图形界面 | 已支持 |
| Zed | JSON 配置 | 已支持 |
---
## 开发
```bash
cd /path/to/twitter-mcp
uv sync
uv run twitter-mcp
```
```bash
# MCP Inspector
npx @modelcontextprotocol/inspector uv --directory /path/to/twitter-mcp run twitter-mcp
```
### 项目结构
```
├── README.md
├── docs/
│ ├── README_JA.md # 日本語
│ └── README_KO.md # 한국어
├── openclaw-skill/opentwitter/ # OpenClaw Skill
├── pyproject.toml
├── config.json
└── src/twitter_mcp/
├── server.py # 入口点
├── app.py # FastMCP 实例
├── config.py # 配置加载器
├── api_client.py # HTTP 客户端
└── tools.py # 8 个工具
```
## 许可证
MIT