M

MCP推特服务器

通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。

social-media

364 查看 · 2026-07-07 更新

简介

通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。

简介

通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。

Twitter MCP 服务器

一个用于 Twitter API 集成的模型上下文协议服务器实现。

设置

  1. 克隆仓库
  2. 安装依赖:npm install
  3. .env.example 复制为 .env 并填写你的 Twitter API 凭证
  4. 构建项目:npm run build
  5. 启动服务器: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; }
  1. 错误处理:
// 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'}}}}]

来源