Twitter MCP Server

Twitter MCP Server

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

社交媒体
访问服务器

Tools

createList

Create a new Twitter list

postTweet

Post a tweet to Twitter

addUserToList

Add a user to a Twitter list

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

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

README

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

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

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

错误处理

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

  • 缺少参数:Missing required parameter: parameter_name (缺少必需的参数:参数名称)
  • API 错误:来自 Twitter API 的错误消息
  • 未找到错误:针对资源的适当“未找到”消息

响应格式

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

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

开发

  • 构建: npm run build
  • 启动: npm start
  • 监听模式: npm run dev

Twitter 工具状态报告

以下是所有 Twitter 工具的综合状态报告:

正常工作的工具 (✓)

  1. postTweet
状态:完美运行
响应:返回推文 ID
最新测试:成功
  1. getTweetById
状态:完美运行
响应:返回完整的推文数据
最新测试:成功
  1. likeTweet & unlikeTweet
状态:完美运行
响应:确认操作
最新测试:成功
  1. retweet & undoRetweet
状态:完美运行
响应:确认操作
最新测试:成功
  1. replyToTweet
状态:完美运行
响应:返回回复推文 ID
最新测试:成功
  1. getUserInfo
状态:完美运行
响应:完整的用户个人资料数据
最新测试:成功
  1. followUser & unfollowUser
状态:完美运行
响应:确认操作
最新测试:成功
  1. createList
状态:完美运行
响应:确认列表创建
最新测试:成功
  1. getUserLists
状态:完美运行
响应:返回拥有的和成员列表
最新测试:成功

存在问题的工具 (⚠️)

  1. getUserTimeline
状态:错误 400
错误:无效的请求参数
需要修复:参数验证
  1. searchTweets
状态:错误 400
错误:无效的请求参数
需要修复:查询参数格式
  1. getLikedTweets
状态:错误 400
错误:无效的请求参数
需要修复:参数验证

缺失的工具 (❌)

  • getHomeTimeline (在可用工具中未找到)
  • getFollowers (不可用)
  • getFollowing (不可用)
  • getHashtagAnalytics (不可用)

需要优先修复

  1. 参数验证:
// 为 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[];
}

推荐服务器

@wopal/mcp-server-hotnews

@wopal/mcp-server-hotnews

一个模型上下文协议服务器,提供来自中国主要社交平台和新闻网站的实时热点话题。

精选
actors-mcp-server

actors-mcp-server

使用 Apify 提供的 3000 多个预构建的云工具(称为 Actors),从网站、电子商务平台、社交媒体、搜索引擎、地图等提取数据。

官方
TypeScript
mcp-maigret

mcp-maigret

Maigret 的 MCP 服务器,Maigret 是一款强大的开源情报 (OSINT) 工具,可从各种公共来源收集用户帐户信息。此服务器提供用于在社交网络上搜索用户名和分析 URL 的工具。

本地
JavaScript
X(Twitter) MCP Server

X(Twitter) MCP Server

一个 MCP 服务器,允许 Claude 直接通过聊天界面创建、管理和发布 X/Twitter 帖子。

本地
Python
NeoDB MCP Server

NeoDB MCP Server

提供与社交图书编目服务 NeoDB 交互的功能,通过其 API 获取用户信息、搜索图书和检索详细图书信息。

Python
social-media-mcp

social-media-mcp

一个用于管理社交媒体帖子的模型上下文协议 (MCP) 服务器,目前支持 X(前身为 Twitter)。

JavaScript
X MCP Server

X MCP Server

用于 X (Twitter) 集成的服务器,提供阅读时间线和参与推文的工具。专为与 Claude 桌面应用程序配合使用而设计。

JavaScript
Nostr MCP Server

Nostr MCP Server

一个模型上下文协议(MCP)服务器,使人工智能模型能够与 Nostr 网络互动,从而促进笔记发布和与言论自由协议的交互。

TypeScript
Beyond MCP Server

Beyond MCP Server

一个可扩展的模型上下文协议服务器,为大型语言模型提供对社交平台数据(目前为 Farcaster)和链上数据的标准化访问。

TypeScript
BlueSky MCP Server

BlueSky MCP Server

通过其官方 API 促进与 BlueSky 社交网络的互动,允许用户检索详细的用户资料和关注列表,并具有身份验证和错误处理功能。

Python