通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。
364 查看 · 2026-07-07 更新
简介
通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。
简介
通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。
Twitter MCP 服务器
一个用于 Twitter API 集成的模型上下文协议服务器实现。
设置
- 克隆仓库
- 安装依赖:
npm install - 将
.env.example复制为.env并填写你的 Twitter API 凭证 - 构建项目:
npm run build - 启动服务器:
npm start
环境变量
在 .env 中需要的 Twitter API 凭证:
X_API_KEY=your_api_key X_API_SECRET=your_api_secret X_ACCESS_TOKEN=your_access_token X_ACCESS_TOKEN_SECRET=your_access_token_secret
可用工具
推文操作
-
postTweet: 发布一条新推文{ "text": "在这里输入你的推文文本" } -
postTweetWithMedia: 发布带有媒体附件的推文{ "text": "你的推文文本", "mediaPath": "媒体文件路径", "mediaType": "image/jpeg|image/png|image/gif|video/mp4", "altText": "可选的无障碍替代文本" } -
getTweetById: 根据ID获取特定推文{ "tweetId": "推文ID", "tweetFields": ["created_at", "public_metrics"] } -
replyToTweet: 回复现有的推文{ "tweetId": "推文ID", "text": "你的回复文本" } -
deleteTweet: 删除一条推文{ "tweetId": "推文ID" }
搜索与分析
-
searchTweets: 搜索推文{ "query": "搜索查询", "maxResults": 10, "tweetFields": ["created_at", "public_metrics"] } -
getHashtagAnalytics: 获取标签的分析数据{ "hashtag": "标签", "startTime": "ISO-8601 日期", "endTime": "ISO-8601 日期" }
用户操作
-
getUserInfo: 获取用户信息{ "username": "Twitter用户名", "fields": ["description", "public_metrics"] } -
getUserTimeline: 获取用户的推文{ "username": "Twitter用户名", "maxResults": 10, "tweetFields": ["created_at", "public_metrics"] } -
getFollowers: 获取用户的关注者{ "username": "Twitter用户名", "maxResults": 100, "userFields": ["description", "public_metrics"] } -
getFollowing: 获取用户关注的账户{ "username": "Twitter用户名", "maxResults": 100, "userFields": ["description", "public_metrics"] }
互动
-
likeTweet: 点赞一条推文{ "tweetId": "推文ID" } -
unlikeTweet: 取消点赞一条推文{ "tweetId": "推文ID" } -
retweet: 转发一条推文{ "tweetId": "推文ID" } -
undoRetweet: 撤销转发一条推文{ "tweetId": "推文ID" } -
getRetweets: 获取转发了某条推文的用户{ "tweetId": "推文ID", "maxResults": 100, "userFields": ["description", "public_metrics"] } -
getLikedTweets: 获取用户点赞过的推文{ "userId": "用户ID", "maxResults": 100, "tweetFields": ["created_at", "public_metrics"] }
列表管理
-
createList: 创建新列表{ "name": "列表名称", "description": "列表描述", "isPrivate": false } -
addUserToList: 将用户添加到列表{ "listId": "list_id", "username": "twitter_username" } -
removeUserFromList: 从列表中移除用户{ "listId": "list_id", "username": "twitter_username" } -
getListMembers: 获取列表成员{ "listId": "list_id", "maxResults": 100, "userFields": ["description", "public_metrics"] }
错误处理
所有工具返回标准化的错误响应:
- 缺少参数:
缺少必需参数: parameter_name - API 错误:来自 Twitter API 的错误信息
- 未找到错误:针对资源的适当“未找到”消息
响应格式
所有成功的响应遵循以下格式:
{ "content": [ { "type": "text", "text": "Operation result message" } ] }
开发
- 构建:
npm run build - 启动:
npm start - 监视模式:
npm run dev
Here's a comprehensive status report of all Twitter tools: ## Working Tools (✓) 1. postTweet
状态:完美运行 响应:返回推文 ID 最新测试:成功
2. getTweetById
状态:完美运行 响应:返回完整的推文数据 最新测试:成功
3. likeTweet & unlikeTweet
状态:完美运行 响应:确认操作 最新测试:成功
4. retweet & undoRetweet
状态:完美运行 响应:确认操作 最新测试:成功
5. replyToTweet
状态:完美运行 响应:返回回复推文 ID 最新测试:成功
6. getUserInfo
状态:完美运行 响应:完整的用户资料数据 最新测试:成功
7. followUser & unfollowUser
状态:完美运行 响应:确认操作 最新测试:成功
8. createList
状态:完美运行 响应:确认列表创建 最新测试:成功
9. getUserLists
状态:完美运行 响应:返回所有拥有和成员列表 最新测试:成功
## Tools with Issues (⚠️) 1. getUserTimeline
状态:错误 400 错误:无效的请求参数 需要修复:参数验证
2. searchTweets
状态:错误 400 错误:无效的请求参数 需要修复:查询参数格式化
3. getLikedTweets
状态:错误 400 错误:无效的请求参数 需要修复:参数验证
## Missing Tools (❌) - getHomeTimeline (not found in available tools) - getFollowers (not available) - getFollowing (not available) - getHashtagAnalytics (not available) ## Priority Fixes Needed 1. Parameter Validation: ```typescript // Implement for getUserTimeline, searchTweets, getLikedTweets interface TwitterParamValidator { validateTimelineParams(params: any): boolean; validateSearchParams(params: any): boolean; validateLikedTweetsParams(params: any): boolean; }
- 错误处理:
// Enhance error handling for 400 errors interface TwitterErrorHandler { handle400Error(endpoint: string, params: any): void; logErrorDetails(error: any): void; suggestParameterFixes(params: any): string[]; }
工具列表
-
postTweet: Post a tweet to Twitter
-
postTweetWithMedia: Post a tweet with media attachment to Twitter
-
likeTweet: Like a tweet by its ID
-
unlikeTweet: Unlike a previously liked tweet
-
getLikedTweets: Get a list of tweets liked by a user
-
searchTweets: Search for tweets using a query string
-
replyToTweet: Reply to a tweet
-
getUserTimeline: Get recent tweets from a user timeline
-
getTweetById: Get a tweet by its ID
-
getUserInfo: Get information about a Twitter user
-
getTweetsByIds: Get multiple tweets by their IDs
-
retweet: Retweet a tweet by its ID
-
undoRetweet: Undo a retweet by its ID
-
getRetweets: Get a list of retweets of a tweet
-
followUser: Follow a user by their username
-
unfollowUser: Unfollow a user by their username
-
getFollowers: Get followers of a user
-
getFollowing: Get a list of users that a user is following
-
createList: Create a new Twitter list
-
addUserToList: Add a user to a Twitter list
-
removeUserFromList: Remove a user from a Twitter list
-
getListMembers: Get members of a Twitter list
-
getUserLists: Get lists owned by a user
-
getHashtagAnalytics: Get analytics for a specific hashtag
-
deleteTweet: Delete a tweet by its ID
服务配置
[{'mcpServers': {'x-twitter': {'args': ['/path/to/twitter-server/dist/index.js'], 'command': 'node', 'env': {'X_ACCESS_TOKEN': 'your_access_token', 'X_ACCESS_TOKEN_SECRET': 'your_access_token_secret', 'X_API_KEY': 'your_api_key', 'X_API_SECRET': 'your_api_secret'}}}}]
来源
- 来源:github
- 链接:https://github.com/crazyrabbitLTC/mcp-twitter-server