MCP推特服务器
通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。
可用工具 (25 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
postTweet 1 个参数 需填 1 项
Post a tweet to Twitter
必填参数:text
postTweetWithMedia 4 个参数 需填 3 项
Post a tweet with media attachment to Twitter
必填参数:text、mediaPath、mediaType
likeTweet 1 个参数 需填 1 项
Like a tweet by its ID
必填参数:tweetId
unlikeTweet 1 个参数 需填 1 项
Unlike a previously liked tweet
必填参数:tweetId
getLikedTweets 3 个参数 需填 1 项
Get a list of tweets liked by a user
必填参数:userId
searchTweets 3 个参数 需填 1 项
Search for tweets using a query string
必填参数:query
replyToTweet 2 个参数 需填 2 项
Reply to a tweet
必填参数:tweetId、text
getUserTimeline 5 个参数 需填 1 项
Get recent tweets from a user timeline
必填参数:userId
getTweetById 2 个参数 需填 1 项
Get a tweet by its ID
必填参数:tweetId
getUserInfo 1 个参数 需填 1 项
Get information about a Twitter user
必填参数:username
getTweetsByIds 2 个参数 需填 1 项
Get multiple tweets by their IDs
必填参数:tweetIds
retweet 1 个参数 需填 1 项
Retweet a tweet by its ID
必填参数:tweetId
undoRetweet 1 个参数 需填 1 项
Undo a retweet by its ID
必填参数:tweetId
getRetweets 3 个参数 需填 1 项
Get a list of retweets of a tweet
必填参数:tweetId
followUser 1 个参数 需填 1 项
Follow a user by their username
必填参数:username
unfollowUser 1 个参数 需填 1 项
Unfollow a user by their username
必填参数:username
getFollowers 3 个参数 需填 1 项
Get followers of a user
必填参数:username
getFollowing 3 个参数 需填 1 项
Get a list of users that a user is following
必填参数:username
createList 3 个参数 需填 1 项
Create a new Twitter list
必填参数:name
addUserToList 2 个参数 需填 2 项
Add a user to a Twitter list
必填参数:listId、username
removeUserFromList 2 个参数 需填 2 项
Remove a user from a Twitter list
必填参数:listId、username
getListMembers 3 个参数 需填 1 项
Get members of a Twitter list
必填参数:listId
getUserLists 3 个参数 需填 1 项
Get lists owned by a user
必填参数:username
getHashtagAnalytics 3 个参数 需填 1 项
Get analytics for a specific hashtag
必填参数:hashtag
deleteTweet 1 个参数 需填 1 项
Delete a tweet by its ID
必填参数:tweetId
服务介绍
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[];
}