M

MCP推特服务器

@crazyrabbitLTC/mcp-twitter-server
0 Stars 371 次浏览 crazyrabbitLTC 更新于 2026-08-23

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

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (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 集成的模型上下文协议服务器实现。

设置

  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[];
}

相关 MCP 服务