关于 twitterapi
twitterapi 是一个将 twitterapi.io 接口提供给 AI Agent 和 MCP 客户端的 MCP 服务,可读取 X 提及与推文上下文,也可发布和删除推文。读取只需 API 密钥,写入操作还需账户 Cookie 和代理。
主要功能
- 01读取用户提及并分页
- 02获取推文对话上下文
- 03发布推文或回复
- 04删除自己的推文
适用场景
- 01整理某个用户收到的提及
- 02查看推文所在对话及直接回复
- 03发布新推文、引用或回复
- 04删除指定的自有推文
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供读取提及、获取线程上下文、创建推文和删除推文的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @pedrot95dev/twitterapi.mcpTWITTERAPI_IO_KEY密钥twitterapi.io API key (x-api-key). Required for all tools.TWITTERAPI_IO_AUTH_TOKEN密钥auth_token cookie from a logged-in X session. Write tools only.TWITTERAPI_IO_CT0密钥ct0 cookie from the same logged-in X session. Write tools only.TWITTERAPI_IO_PROXY密钥Residential proxy (http://user:pass@ip:port). Write tools only.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 此单次请求最多返回的推文数(默认 50) |
| cursor | string | 否 | 来自先前响应的 next_cursor 的分页游标 |
| user_name | string | 是 | X 用户名,可带或不带 @ |
| query_type | enum | 否 | 排序模式(默认 Latest)Latest | Relevance |
| since_time | string | 否 | 开始时间筛选条件(例如 2025-06-01 或 ISO datetime) |
| until_time | string | 否 | 结束时间筛选条件 |
详细介绍
twitterapi.mcp
MCP 服务将 twitterapi.io 端点作为工具提供给 AI Agent 和 MCP 主机。使用 TypeScript 编写,通过 npm 分发,可通过一条 npx 命令运行。
当前工具
| 工具 | 描述 | API 端点 | 身份验证 |
|---|---|---|---|
get_user_mentions | 获取提及某个用户的推文。 | GET /twitter/user/mentions | API 密钥 |
get_tweet_thread_context | 获取推文所在对话串的一页内容。 | GET /twitter/tweet/thread_context | API 密钥 |
create_tweet | 创建推文或回复。 | POST /twitter/create_tweet_v2 | API 密钥 + Cookie + 代理 |
delete_tweet | 删除你的一条推文。 | POST /twitter/delete_tweet_v2 | API 密钥 + Cookie + 代理 |
快速开始
1. 获取 API 密钥
访问 https://twitterapi.io/dashboard 并获取你的 x-api-key。
2. 写入操作所需的 Cookie + 代理
create_tweet 和 delete_tweet 使用你账户自己的会话 Cookie 进行身份验证。在已登录 X 的浏览器中,打开 DevTools → Application → Cookies → https://x.com,然后复制 auth_token 和 ct0 的值。
| 变量 | 必需条件 | 描述 |
|---|---|---|
TWITTERAPI_IO_KEY | 始终需要 | twitterapi.io API 密钥 |
TWITTERAPI_IO_AUTH_TOKEN | 写入操作 | 已登录 X 会话的 auth_token Cookie |
TWITTERAPI_IO_CT0 | 写入操作 | 同一会话的 ct0 Cookie |
TWITTERAPI_IO_PROXY | 写入操作 | 住宅代理,http://user:pass@ip:port(写入端点必需) |
服务会根据 auth_token + ct0 派生 twitterapi.io 所需的 login_cookies 值。这些 Cookie 会随时间过期(通常为数周);如果写入操作开始返回身份验证错误,请从浏览器刷新 Cookie。
仅读取工具只需 API 密钥。 只有在需要写入操作时才添加 Cookie/代理变量。
3. 添加到 MCP 主机
Claude Desktop(Windows 上的 %APPDATA%\Claude\claude_desktop_config.json,
macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"twitterapi": {
"command": "npx",
"args": ["-y", "@pedrot95dev/twitterapi.mcp"],
"env": {
"TWITTERAPI_IO_KEY": "your_key_here",
"TWITTERAPI_IO_AUTH_TOKEN": "your_auth_token_cookie",
"TWITTERAPI_IO_CT0": "your_ct0_cookie",
"TWITTERAPI_IO_PROXY": "http://user:pass@ip:port"
}
}
}
}
npx -y @pedrot95dev/twitterapi.mcp 会下载并运行最新发布版本。只需安装 Node.js(>= 18)——无需全局安装。
其他 MCP 主机(例如 Cursor): 在主机的 MCP 设置界面或配置文件中添加相同的 npx 命令和环境变量。
工具:get_user_mentions
获取提及或回复某个用户的推文。每次调用只发送一个请求;传入先前响应中的 next_cursor 作为 cursor,即可翻页。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
user_name | string | (必填) | X 用户名,可带或不带 @ |
since_time | string | — | 起始时间筛选条件(例如 2025-06-01 或 ISO 日期时间) |
until_time | string | — | 结束时间筛选条件 |
cursor | string | — | 先前 next_cursor 中的分页游标 |
query_type | "Latest" | "Relevance" | "Latest" | 排序模式 |
limit | integer | 50 | 此次请求最多返回的推文数 |
{
"tweets": [ ... ],
"count": 12,
"has_next_page": true,
"next_cursor": "DAADDAAB...",
"status": "success",
"msg": null
}
工具:get_tweet_thread_context
获取推文周围的对话串。返回原始推文、沿链向上的中间回复、该推文本身及其直接回复。
每条返回的推文都包含 entities.urls 中的展开链接,便于扫描某条提及所在的上下文对话中的 URL。
每次调用恰好发出一个请求(与端点 1 对 1 对应,不进行内部分页)。较长的对话串可使用 cursor 翻页。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tweet_id | string | (必填) | 要获取对话上下文的推文 ID |
cursor | string | — | 上一次 next_cursor 返回的分页游标 |
{
"tweets": [ ... ],
"count": 6,
"has_next_page": false,
"next_cursor": "",
"status": "success",
"msg": "success"
}
注意:此端点的分页不均匀——即使 has_next_page 仍为 true,某一页也可能只返回少量推文,甚至不返回任何推文。请持续使用 next_cursor 翻页,直到 has_next_page 为 false,以收集完整对话串。
工具:create_tweet
发布新推文或回复。支持引用、媒体、社区和定时发布。 需要设置 cookie 和 proxy 环境变量(参见步骤 2)。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tweet_text | string | (必填) | 推文文本内容 |
reply_to_tweet_id | string | — | 要回复的推文 ID(将此推文设为回复) |
quote_tweet_id | string | — | 要引用的推文 ID |
attachment_url | string | — | 引用用的 URL(quote_tweet_id 的替代方式) |
community_id | string | — | 在指定社区内发布 |
is_note_tweet | boolean | false | 允许超过 280 个字符(Premium 账号) |
media_ids | string[] | — | 之前调用 /twitter/upload_media_v2 返回的媒体 ID |
schedule_for | string | — | ISO-8601 格式的未来时间,例如 2026-01-20T10:00:00.000Z |
{ "tweet_id": "1234567890123456789", "status": "success", "msg": "success" }
工具:delete_tweet
按 ID 删除你发布的一条推文。需要设置 cookie 和 proxy 环境变量。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tweet_id | string | (必填) | 要删除的推文 ID |
{ "status": "success", "msg": "success" }
贡献
本地开发、构建和测试说明见 CONTRIBUTING.md。
许可证
MIT — 详见 LICENSE。
鸣谢
基于官方 twitterapi-io Agent 技能:https://github.com/kaitoInfra/twitterapi-io API 服务:https://twitterapi.io
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。