首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
mcp-twitter-server2025-05-280分享
github
通过模型上下文协议启用与Twitter的交互,允许大型语言模型发布推文、搜索推文和回复推文。
By crazyrabbitLTC
2025-05-280
github
详情内容

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=你的API密钥
X_API_SECRET=你的API密钥密文
X_ACCESS_TOKEN=你的访问令牌
X_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": "推特用户名",
      "fields": ["description", "public_metrics"]
    }
    
  • getUserTimeline:获取用户的推文

    {
      "username": "推特用户名",
      "maxResults": 10,
      "tweetFields": ["created_at", "public_metrics"]
    }
    
  • getFollowers:获取用户的关注者

    {
      "username": "推特用户名",
      "maxResults": 100,
      "userFields": ["description", "public_metrics"]
    }
    
  • getFollowing:获取用户关注的人

    {
      "username": "推特用户名",
      "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": "列表ID",
      "username": "推特用户名"
    }
    
  • removeUserFromList:从列表中移除用户

    {
      "listId": "列表ID",
      "username": "推特用户名"
    }
    
  • getListMembers:获取列表成员

    {
      "listId": "列表ID",
      "maxResults": 100,
      "userFields": ["description", "public_metrics"]
    }
    

错误处理

所有工具返回标准化的错误响应:

  • 缺少参数:缺少必需参数:参数名
  • API错误:来自Twitter API的错误消息
  • 未找到错误:针对资源的适当"未找到"消息

响应格式

所有成功响应遵循以下格式:

{
  "content": [
    {
      "type": "text",
      "text": "操作结果消息"
    }
  ]
}

开发

  • 构建:npm run build
  • 启动:npm start
  • 监视模式:npm run dev
所有Twitter工具的综合状态报告:
### 正常工作的工具 (✓)
1. postTweet

状态:工作完美响应:返回推文ID最新测试:成功

2. getTweetById

状态:工作完美 响应:返回完整的推文数据 最新测试:成功

3. likeTweet & unlikeTweet

状态:工作完美响应:操作确认最新测试:成功

4. retweet & undoRetweet

状态:工作完美响应:操作确认最新测试:成功


5. replyToTweet

状态:工作完美响应:返回回复推文ID最新测试:成功


6. getUserInfo

状态:工作完美响应:完整的用户资料数据最新测试:成功


7. followUser & unfollowUser

状态:工作完美响应:操作确认最新测试:成功


8. createList

状态:工作完美响应:列表创建确认最新测试:成功


9. getUserLists

状态:工作完美响应:返回拥有和成员列表最新测试:成功

### 存在问题的工具 (⚠️)
1. getUserTimeline

状态:错误400错误:无效的请求参数需要修复:参数验证


2. searchTweets

状态:错误400错误:无效的请求参数需要修复:查询参数格式化


3. getLikedTweets

状态:错误400错误:无效的请求参数需要修复:参数验证

### 缺失的工具 (❌)
- getHomeTimeline(在可用工具中未找到)
- getFollowers(不可用)
- getFollowing(不可用)
- getHashtagAnalytics(不可用)

## 需要优先修复的问题

1. 参数验证:
```typescript
// 为getUserTimeline、searchTweets、getLikedTweets实现
interface TwitterParamValidator {
  validateTimelineParams(params: any): boolean;
  validateSearchParams(params: any): boolean;
  validateLikedTweetsParams(params: any): boolean;
}
  1. 错误处理:
// 增强400错误的错误处理
interface TwitterErrorHandler {
  handle400Error(endpoint: string, params: any): void;
  logErrorDetails(error: any): void;
  suggestParameterFixes(params: any): string[];
}
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档