Skip to main content
Glama

X(Twitter) MCP Server

by cjkcr
README_CN.md14.4 kB
# X(Twitter) MCP 服务器 [![smithery badge](https://smithery.ai/badge/x-mcp)](https://smithery.ai/server/x-mcp) [English](README.md) | **中文** 一个通过 Claude code 和 Gemini CLI 聊天直接创建、管理和发布 X/Twitter 帖子的 MCP 服务器。 > **说明:** 本项目修改自 [vidhupv/x-mcp](https://github.com/vidhupv/x-mcp),增加了回复推文的功能。 ## 功能特性 ### 🔐 双重认证支持 - ✅ **OAuth 1.0a**: 用于写入操作(发推文、转推等) - ✅ **OAuth 2.0**: 用于读取操作(获取推文、搜索等) - ✅ **自动客户端选择**: 系统自动选择最佳认证方式 - ✅ **智能降级**: OAuth 2.0不可用时自动回退到OAuth 1.0a ### 📝 推文管理 - ✅ 创建推文草稿 - ✅ 创建推文串草稿 - ✅ 创建回复推文草稿 - ✅ 列出所有草稿 - ✅ 发布草稿(推文、推文串和回复) - ✅ 直接回复推文(无需创建草稿) - ✅ 转发现有推文 - ✅ 带评论的引用转发 - ✅ 创建引用转发草稿 - ✅ 删除草稿 - ✅ 发布失败时自动删除草稿(可配置) - ✅ 发布失败时保留草稿用于重试(可配置) ### 📷 媒体支持 - ✅ 上传媒体文件(图片、视频、GIF) - ✅ 创建带媒体附件的推文 - ✅ 为图片添加无障碍Alt文本 - ✅ 获取媒体文件信息 ### 📖 推文获取(改进版) - ✅ 获取推文内容和信息(支持双重认证) - ✅ 搜索最近推文(优化的错误处理) - ✅ 批量获取多条推文(更稳定的连接) - ✅ 详细的错误诊断和建议 - ✅ API连接测试工具 ### 📈 趋势与话题 - ✅ 获取全球趋势话题 *(需要付费API计划)* - ✅ 获取地区趋势话题(支持多个国家和地区)*(需要付费API计划)* - ✅ 获取可用趋势位置列表 *(需要付费API计划)* - ✅ 获取特定话题的详细信息和相关推文 *(免费账户有限制)* - ✅ 搜索与关键词相关的热门标签 *(免费账户有限制)* - ✅ 话题参与度分析和统计 <a href="https://glama.ai/mcp/servers/jsxr09dktf"> <img width="380" height="200" src="https://glama.ai/mcp/servers/jsxr09dktf/badge" alt="X(Twitter) Server MCP server" /> </a> ## 快速设置 ### 通过 Smithery 安装 通过 [Smithery](https://smithery.ai/server/x-mcp) 自动为 Claude code 安装 X(Twitter) MCP 服务器: ```bash npx -y @smithery/cli install x-mcp --client claude ``` ### Claude code 手动安装 1. **克隆仓库:** ```bash git clone https://github.com/yourusername/x-mcp.git ``` 2. **使用 Homebrew 在终端中全局安装 UV:** ```bash brew install uv ``` 3. **创建 claude_desktop_config.json:** - **macOS 系统:** 打开目录 `~/Library/Application Support/Claude/` 并在其中创建文件 - **Windows 系统:** 打开目录 `%APPDATA%/Claude/` 并在其中创建文件 4. **将此配置添加到 claude_desktop_config.json:** #### 基础配置(仅OAuth 1.0a) ```json { "mcpServers": { "x_mcp": { "command": "uv", "args": [ "--directory", "/path/to/x-mcp", "run", "x-mcp" ], "env": { "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" } } } } ``` #### 推荐配置(OAuth 1.0a + OAuth 2.0双重认证) ```json { "mcpServers": { "x_mcp": { "command": "uv", "args": [ "--directory", "/path/to/x-mcp", "run", "x-mcp" ], "env": { "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" } } } } ``` > **💡 推荐使用双重认证配置**:添加`TWITTER_BEARER_TOKEN`可以显著提高推文获取功能的稳定性和成功率。 5. **获取您的 X/Twitter API 凭据:** - 前往 [X API 开发者门户](https://developer.x.com/en/products/x-api) - 创建一个项目 - 在用户身份验证设置中:设置为读写权限,Web 应用类型 - 将回调 URL 设置为 `http://localhost/`,网站 URL 设置为 `http://example.com/` - 从密钥和令牌部分生成并复制所有密钥和令牌 6. **更新配置文件:** - 将 `/path/to/x-mcp` 替换为您的实际仓库路径 - 添加您的 X/Twitter API 凭据 7. **完全退出 Claude 并重新打开** ### Gemini CLI 配置 如果您想在 Gemini CLI 中使用此 MCP 服务器而不是 Claude code: 1. **安装 Gemini CLI:** ```bash npm install -g @google/gemini-cli ``` 2. **创建或更新您的 MCP 配置文件:** - 创建名为 `~/.gemini/settings.json` 的文件 - 添加以下配置: ```json { "mcpServers": { "x_mcp": { "command": "uv", "args": [ "--directory", "/path/to/x-mcp", "run", "x-mcp" ], "env": { "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" } } } } ``` 3. **启动支持 MCP 的 Gemini CLI:** ```bash 重新启动gemini cli ``` 4. **更新配置文件:** - 将 `/path/to/x-mcp` 替换为您的实际仓库路径 - 添加您的 X/Twitter API 凭据 ## 高级配置 ### 自动删除失败草稿 当推文发布失败时,您可以选择是否自动删除草稿: - **启用自动删除**(默认):发布失败时自动删除草稿,避免累积无效草稿 - **禁用自动删除**:发布失败时保留草稿,允许手动重试或修改 #### 配置方法 1. **通过环境变量**:在配置文件中添加 `"AUTO_DELETE_FAILED_DRAFTS": "true"` 或 `"false"` 2. **通过命令**:使用 "启用发布失败时自动删除草稿功能" 或 "禁用发布失败时自动删除草稿功能" 3. **查看状态**:使用 "查看当前自动删除草稿的配置状态" ## 使用示例 适用于 Claude code 和 Gemini CLI: * "发推文'刚学会通过AI发推文 - 太震撼了!🤖✨'" * "创建一个关于披萨历史的推文串" * "显示我的推文草稿" * "发布这个草稿!" * "删除那个草稿" * "回复推文 1234567890,说'很棒的观点!感谢分享。'" * "为推文 1234567890 创建回复草稿,内容是'我完全同意这个观点。'" * "转发推文 1234567890" * "引用转发推文 1234567890,评论'这正是我想说的!'" * "为推文 1234567890 创建引用转发草稿,评论'这里有很棒的见解'" * "上传图片 /path/to/image.jpg,Alt文本为'山峦上的美丽日落'" * "使用媒体ID 123456789 创建推文'看看这张精彩的照片!'" * "创建带媒体的推文草稿'我的最新项目',附加 /path/to/video.mp4" * "启用发布失败时自动删除草稿功能" * "禁用发布失败时自动删除草稿功能" * "查看当前自动删除草稿的配置状态" * "获取推文 1234567890 的内容和信息" * "搜索包含'人工智能 OR AI'的最近7天推文" * "批量获取推文 123456789, 987654321, 555666777 的信息" * "获取全球趋势话题" * "获取美国的趋势话题" * "获取日本地区的热门趋势" * "查看可用的趋势位置列表" * "获取话题 '#AI' 的详细信息和相关推文" * "搜索与 '人工智能' 相关的热门标签" ## 高级功能 ### 草稿管理系统 - **智能草稿保存** - 发布失败时自动保留草稿,成功时自动删除 - **多类型草稿支持** - 支持普通推文、推文串和回复推文草稿 - **详细状态反馈** - 清晰的操作结果和错误信息 ### 回复功能 - **草稿回复模式** - 创建回复草稿,可以编辑后再发布 - **直接回复模式** - 立即回复推文,适合快速互动 - **回复链追踪** - 自动处理回复关系和推文串连接 ### 趋势分析功能 - **全球趋势监控** - 实时获取全球热门话题和趋势 - **地区趋势分析** - 支持美国、日本、英国等多个国家和地区 - **话题深度分析** - 获取特定话题的相关推文、参与度统计 - **标签趋势发现** - 基于关键词搜索相关的热门标签 - **趋势数据统计** - 提供推文量、参与度、平均互动等指标 ### 错误处理 - **网络错误恢复** - API 调用失败时保留草稿内容 - **部分发布处理** - 推文串发布中断时记录已发布内容 - **详细错误报告** - 提供具体的错误信息和解决建议 ## 技术特性 - **基于 MCP 协议** - 与 Claude code 无缝集成 - **异步处理** - 支持高效的并发操作 - **本地草稿存储** - 安全的本地文件系统存储 - **完整的日志记录** - 详细的操作日志和调试信息 ## ⚠️ 免费账户限制说明 ### 趋势功能限制 **免费Twitter API账户无法使用以下功能:** - ❌ 获取全球趋势话题 - ❌ 获取地区趋势话题 - ❌ 获取可用趋势位置列表 **免费账户可以使用(有严格限制):** - ✅ 话题详细分析 - 仅最近7天推文,月调用次数很少 - ✅ 热门标签搜索 - 仅最近7天推文,月调用次数很少 ### API计划建议 - **学习测试**: 免费计划足够基本功能使用 - **个人项目**: 建议升级到Basic计划 ($100/月) - **商业应用**: 建议使用Pro计划 ($5000/月) ### 替代方案 如果您使用免费账户,可以: 1. 使用话题搜索功能了解特定话题 2. 通过关键词搜索发现相关标签 3. 分析特定推文的参与度数据 4. 考虑升级API计划以获得完整功能 ## 故障排除 ### 基本问题 如果无法正常工作: - 确保 UV 已全局安装(如果没有,请使用 `pip uninstall uv` 卸载,然后使用 `brew install uv` 重新安装) - 或者使用 `which uv` 找到 UV 路径,并将 `"command": "uv"` 替换为完整路径 - 验证所有 X/Twitter 凭据是否正确 - 检查配置中的 x-mcp 路径是否与您的实际仓库位置匹配 ### 🔧 API连接测试 **快速诊断:** ``` 测试API连接 ``` 在Claude中运行此命令可以: - 测试OAuth 1.0a和OAuth 2.0连接 - 检查API权限和限制 - 提供详细的诊断信息和建议 **运行测试脚本:** ```bash cd /path/to/x-mcp python test_tweet_functions.py ``` ### 🚨 401 Unauthorized 错误修复 **问题症状:** - 发推文时出现"401 Unauthorized"错误 - 能发推文但无法获取推文 **解决方案:** 1. **添加Bearer Token(推荐):** ```json "env": { "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" } ``` 2. **重新生成API凭据:** - 访问[Twitter Developer Portal](https://developer.x.com/) - 重新生成所有API密钥和令牌 - 确保权限设置为"Read and write" 3. **检查项目设置:** - 用户身份验证设置:读写权限 - 应用类型:Web应用 - 回调URL:`http://localhost/` - 网站URL:`http://example.com/` ### 📖 推文获取功能问题 **双重认证优势:** - OAuth 2.0用于读取操作(更稳定) - OAuth 1.0a用于写入操作(必需) - 自动降级处理 **常见错误及解决:** | 错误代码 | 原因 | 解决方案 | |---------|------|----------| | 401 | 认证失败 | 检查API凭据,重新生成令牌 | | 403 | 权限不足 | 升级API计划或检查权限设置 | | 404 | 推文不存在 | 验证推文ID,检查推文是否公开 | | 429 | 频率限制 | 等待15分钟或升级API计划 | **API计划限制:** - **免费用户**: 基本功能,有限制 - **Basic ($100/月)**: 完整读取功能 - **Pro ($5000/月)**: 高级功能和更高限制 ### 🔍 详细诊断步骤 1. **检查认证状态:** ``` 测试API连接 ``` 2. **验证配置:** - 确认所有环境变量已设置 - 检查路径是否正确 - 验证API密钥格式 3. **测试特定功能:** ``` 搜索包含"hello"的推文 获取推文 1234567890 的内容 ``` 4. **查看详细日志:** - 检查Claude Desktop控制台 - 查看MCP服务器日志 - 注意具体错误信息 ## 支持与贡献 如果您遇到问题或有改进建议,欢迎: - 提交 Issue 报告问题 - 提交 Pull Request 贡献代码 - 参与讨论和功能建议 ## 详细功能说明 更多详细的功能说明和使用指南,请参阅: - **[OAuth双重认证配置指南](OAuth双重认证配置指南.md)** - 🆕 详细的双重认证设置指南 - **[趋势功能使用指南](趋势功能使用指南.md)** - 🆕 完整的趋势与话题功能指南 - [推文获取功能说明](推文获取功能说明.md) - [推文获取功能故障排除指南](推文获取功能故障排除指南.md) - [回复功能详细说明](回复功能说明.md) - [REPLY_FUNCTIONALITY.md](REPLY_FUNCTIONALITY.md)(英文版) ## 致谢 本项目基于 [Vidhu Panhavoor Vasudevan](https://github.com/vidhupv) 在原始 [x-mcp](https://github.com/vidhupv/x-mcp) 仓库中的优秀工作。 ### 本分支的新增功能 - 🆕 **OAuth双重认证系统** - 支持OAuth 1.0a + OAuth 2.0,自动选择最佳认证方式 - 🆕 **趋势与话题分析** - 全球趋势、地区趋势、话题详情、热门标签搜索 - 🆕 **401错误修复** - 解决了推文获取时的认证问题 - 🆕 **智能客户端选择** - 读取操作优先使用OAuth 2.0,写入操作使用OAuth 1.0a - 🆕 **增强的错误处理** - 详细的错误诊断和中文错误提示 - 🆕 **API连接测试工具** - 内置的连接测试和诊断功能 - ✅ **回复推文功能** - 创建回复草稿和直接回复现有推文 - ✅ **转发推文功能** - 简单转发和带评论的引用转发 - ✅ **媒体功能** - 上传图片、视频、GIF,支持Alt文本 - ✅ **推文获取功能** - 获取推文内容、搜索推文、批量获取多条推文 - ✅ **增强的草稿管理** - 改进了发布失败时的草稿保留机制,支持所有草稿类型 特别感谢原作者为创建这个 MCP 服务器奠定了基础!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cjkcr/x-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server