返回市场
推特-MCP

推特-MCP

作者:GenAIwithMS7 星标更新:2025-11-18

项目介绍

Twitter MCP Server

一个模型上下文协议(MCP)服务器,支持与Twitter/X平台无缝交互。通过Claude AI发布推文、分享图片并搜索Twitter。

npm 版本 许可证: MIT Node 版本 TypeScript

功能

  • 🐦 发布推文 - 与世界分享你的想法
  • 🖼️ 图片支持 - 发布带有图片的推文(JPG, PNG, GIF, WEBP)
  • 🔍 搜索推文 - 根据查询查找和分析推文
  • 💬 回复推文 - 参与对话
  • 🔐 安全认证 - 使用OAuth 1.0a认证
  • 速率限制 - 内置保护以防止超过API限制

目录

安装

先决条件

  • Node.js 18或更高版本
  • npm 或 npx
  • 带有API凭证的Twitter开发者账户
  • Claude桌面应用

快速开始

最简单的方式是通过npx使用此MCP服务器(无需安装):

{
  "mcpServers": {
    "twitter": {
      "command": "npx",
      "args": ["-y", "@muhammadsiddiq/twitter-mcp"],
      "env": {
        "API_KEY": "your_api_key",
        "API_SECRET_KEY": "your_api_secret_key",
        "ACCESS_TOKEN": "your_access_token",
        "ACCESS_TOKEN_SECRET": "your_access_token_secret"
      }
    }
  }
}

配置

第一步:获取Twitter API凭证

  1. 访问Twitter开发者门户
  2. 创建一个新的App或使用现有的App
  3. 导航到“密钥和令牌”
  4. 生成/复制以下内容:
    • API密钥
    • API密钥秘密
    • 访问令牌
    • 访问令牌秘密

第二步:配置Claude桌面

Windows

编辑位于以下位置的配置文件:

%APPDATA%\Claude\claude_desktop_config.json

或者导航到:

C:\Users\YOUR_USERNAME\AppData\Roaming\Claude\claude_desktop_config.json

macOS

编辑位于以下位置的配置文件:

~/Library/Application Support/Claude/claude_desktop_config.json

Linux

编辑位于以下位置的配置文件:

~/.config/Claude/claude_desktop_config.json

第三步:添加MCP服务器配置

在你的claude_desktop_config.json中添加以下内容:

{
  "mcpServers": {
    "twitter": {
      "command": "npx",
      "args": ["-y", "@muhammadsiddiq/twitter-mcp"],
      "env": {
        "API_KEY": "your_api_key",
        "API_SECRET_KEY":  "your_api_secret_key",
        "ACCESS_TOKEN": "your_access_token",
        "ACCESS_TOKEN_SECRET": "your_access_token_secret"
      }
    }
  }
}

为了安全起见,在生产环境中考虑使用环境变量:

{
  "mcpServers": {
    "twitter": {
      "command": "npx",
      "args": ["-y", "@muhammadsiddiq/twitter-mcp"],
      "env": {
        "API_KEY": "${TWITTER_API_KEY}",
        "API_SECRET_KEY": "${TWITTER_API_SECRET_KEY}",
        "ACCESS_TOKEN": "${TWITTER_ACCESS_TOKEN}",
        "ACCESS_TOKEN_SECRET": "${TWITTER_ACCESS_TOKEN_SECRET}"
      }
    }
  }
}

重要提示: 将占位符值替换为您的实际Twitter API凭证。

第四步:重启Claude桌面

完全关闭并重新打开Claude桌面以使更改生效。

设置Claude桌面中的文件系统访问权限

Claude桌面需要访问计算机上的文件和文件夹的权限。按照以下简单步骤授予访问权限:

分步说明

  1. 打开Claude桌面设置

    • 在Claude桌面中点击个人资料图标或设置齿轮
    • 导航至设置
  2. 转到连接器

    • 在设置菜单中找到并点击连接器
  3. 启用文件系统访问

    • 点击浏览连接器
    • 选择桌面扩展
    • 找到并点击文件系统
  4. 添加目录路径

    • 输入Claude可以访问的目录的完整路径
    • 示例
      • Windows: C:\Users\YourName\TwitterImages
      • macOS: /Users/yourname/TwitterImages
      • Linux: /home/yourname/TwitterImages

    💡 提示:你可以通过重复此步骤添加多个目录

  5. 保存并重启

    • 点击保存应用
    • 完全关闭Claude桌面
    • 重新打开Claude桌面以使更改生效

验证

要验证文件系统访问是否正常工作:

  1. 向Claude询问:“列出我给你访问权限的目录中的文件”
  2. 或提供特定路径:“显示C:\Users\YourName\TwitterImages中的文件”

如果Claude能看到你的文件,那么一切就绪!🎉

常用路径建议

  • 用于Twitter图片:创建专用文件夹如:

    • C:\TwitterImages(Windows)
    • ~/TwitterImages(macOS/Linux)
  • 用于文档

    • C:\Users\YourName\Documents(Windows)
    • ~/Documents(macOS/Linux)

故障排除

无法找到设置中的连接器?

  • 确保你正在使用最新版本的Claude桌面
  • 尝试重新启动应用程序

路径不起作用?

  • 使用完整的绝对路径(从根开始的完整路径)
  • 避免在文件夹名称中使用空格,或在路径周围使用引号
  • 检查该目录是否确实存在于你的计算机上

更改未生效?

  • 确保你完全关闭了Claude桌面(检查系统托盘/菜单栏)
  • 在重新打开之前等待几秒钟
  • 如果问题持续,请重新启动计算机

使用

一旦配置完成,你可以通过自然语言命令与Twitter进行交互。

发布推文

简单推文:

发布推文:“Hello World! 🌍”

发布带图片的推文

重要提示:确保已按第4步配置文件系统MCP服务器。

带有图片的推文:

发布这张图片并附上说明:“看看这令人惊叹的景色!”
从桌面取图

处理图片:

  1. 文件访问

    • 文件系统MCP服务器必须配置为访问本地图片
    • 图片必须位于计算机上的可访问位置
    • 支持绝对路径和相对路径
  2. 路径格式

    • Windows: C:\Users\YourName\Pictures\image.jpg
    • macOS: /Users/YourName/Pictures/image.jpg
    • Linux: /home/yourname/pictures/image.jpg
    • 相对路径:./images/photo.jpg(相对于你的工作目录)
  3. 支持的图片格式

    • JPEG/JPG (image/jpeg)
    • PNG (image/png)
    • GIF (image/gif)
    • WEBP (image/webp)
  4. 图片要求

    • 最大文件大小:静态图片5MB,GIF 15MB
    • 推荐尺寸:1200x675像素(16:9宽高比)
    • 文件权限:必须由Claude桌面应用读取
  5. 最佳实践

    • 当可能时使用相对路径以提高便携性
    • 将图片放在专用文件夹中以更好地组织
    • 考虑图片优化以提高上传性能
    • 首先测试小图片

搜索推文

基本搜索:

搜索关于“人工智能”的推文

高级搜索:

搜索过去一周内关于“气候变化”的50条推文

API参考

工具

服务器提供了三个可以通过Claude访问的工具:

1. post_tweet

发布纯文本推文。

2. post_tweet_with_image

发布带有附加图片的推文。

支持的图片格式:

  • JPEG/JPG
  • PNG
  • GIF(动画,最大15MB)
  • WEBP

3. search_tweets

根据查询搜索匹配的推文。

类型:

interface SearchTweetsRequest {
  query: string;           // 查询字符串
  count: number;          // 结果数量(10-100)
}

interface SearchResponse {
  tweets: Tweet[];
  meta: {
    result_count: number;
    next_token?: string;
  };
}

示例:

// 请求:
{
  "query": "机器学习",
  "count": 25
}

// 响应:
{
  "status": "success",
  "message": "搜索成功完成",
  "data": {
    "tweets": [
      {
        "id": "1234567891",
        "text": "探索机器学习概念……",
        "author_id": "user123",
        "created_at": "2025-11-06T12:00:00.000Z"
      }
      // ... 更多推文
    ],
    "meta": {
      "result_count": 25,
      "next_token": "abc123xyz"
    }
  }
}

开发

本地开发设置

  1. 克隆仓库:
git clone https://github.com/genaiwithms/twitter-mcp.git
cd twitter-mcp
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 设置环境:

在项目根目录创建一个.env文件:

API_KEY=your_api_key
API_SECRET_KEY=your_api_secret
ACCESS_TOKEN=your_access_token
ACCESS_TOKEN_SECRET=your_access_token_secret
  1. 本地运行:

更新你的Claude配置以使用本地构建:

{
  "mcpServers": {
    "twitter": {
      "command": "node",
      "args": ["${absolute_path_to_project}/build/index.js"],
      "envFile": ".env"
    }
  }
}
  1. 开发命令:
# 启动服务器
npm start

# 运行测试
npm test

# 构建生产版本
npm run build

# 发布到npm(仅维护者)
npm publish --access public

项目结构

twitter-mcp/
├── src/
│   ├── index.ts           # 主服务器入口点
│   ├── twitter-api.ts     # Twitter API客户端
│   ├── types.ts           # TypeScript类型定义
│   ├── formatter.ts       # 响应格式化
│   ├── types/            # 类型声明
│   │   └── modelcontextprotocol.d.ts
│   └── evals/
│       └── evals.ts       # 测试工具
├── .github/              # GitHub Actions工作流
│   └── workflows/
│       └── ci.yml        # CI流水线
├── build/               # 编译JavaScript(生成)
├── package.json        # 项目元数据和依赖项
├── tsconfig.json       # TypeScript配置
├── .gitignore         # Git忽略规则
├── .env.example       # 示例环境变量
├── CHANGELOG.md       # 版本历史
├── CONTRIBUTING.md    # 贡献指南
└── README.md         # 项目文档

脚本

  • npm run build - 将TypeScript编译为JavaScript
  • npm start - 运行编译后的服务器
  • npm run prepublishOnly - 发布前构建

故障排除

常见问题

1. 认证错误

问题:"401未经授权"或认证失败

解决方案

  • 在开发者门户中验证Twitter API凭证
  • 确保四个令牌都正确且完整
  • 检查应用权限(需要读写)
  • 尝试重新生成访问令牌
  • 如果使用本地开发,请验证.env文件格式

2. 速率限制

问题:"超出速率限制"或请求失败

解决方案

  • 内置速率限制保护防止过度使用
  • 等待15分钟以重置限制
  • 检查你的Twitter API层级限制
  • 对于重试使用指数退避
  • 在Twitter开发者门户中监控使用情况

3. 图片上传问题

问题:图片上传失败或缺少媒体

解决方案

  • 验证文件存在且可读
  • 检查大小限制:5MB(图片),15MB(GIF)
  • 确保格式受支持(JPG, PNG, GIF, WEBP)
  • 使用绝对文件路径
  • 检查文件权限
  • 验证图片未损坏

4. "模块未找到"错误

问题:依赖项未安装或构建未完成。

解决方案

# 删除旧依赖项
rm -rf node_modules package-lock.json

# 重新安装
npm install

# 重新构建
npm run build

5. 服务器在Claude中无响应

问题:MCP服务器无法连接到Claude。

解决方案

  • 完全重启Claude桌面
  • 检查配置文件语法是否为有效JSON
  • 验证配置文件中的路径与实际位置匹配
  • 检查Node.js是否已安装:node --version
  • 查看Claude的日志以寻找错误

调试模式

要查看详细的日志,请检查:

Windows:

%APPDATA%\Claude\logs\

macOS:

~/Library/Logs/Claude/

Linux:

~/.config/Claude/logs/

环境变量

服务器需要以下环境变量:

变量描述必需
API_KEYTwitter API密钥
API_SECRET_KEYTwitter API密钥秘密
ACCESS_TOKENTwitter访问令牌
ACCESS_TOKEN_SECRETTwitter访问令牌秘密

安全最佳实践

  1. 永远不要将凭证提交到版本控制
  2. 使用环境变量存储敏感数据
  3. 定期轮换凭证
  4. 在Twitter开发者门户中监控API使用情况
  5. 为异常活动设置警报
  6. 为开发和生产使用单独的凭证

限制

  • 最大推文长度:280个字符
  • 图片文件大小限制:5MB(图片),15MB(GIF)
  • 根据你的Twitter API层级应用速率限制
  • 媒体必须在推文前上传(自动处理)

测试

该项目使用Jest进行测试。运行测试:

# 运行所有测试
npm test

# 在监视模式下运行测试
npm test -- --watch

# 运行带有覆盖率的测试
npm test -- --coverage

编写测试

测试文件位于src/evals/。示例测试:

贡献

欢迎贡献!请遵循以下步骤:

  1. 分叉&克隆:

    git clone https://github.com/EnesCinr/twitter-mcp.git
    cd twitter-mcp
    
  2. 创建分支:

    git checkout -b feature/your-feature
    # 或
    git checkout -b fix/your-bugfix
    
  3. 进行更改:

    • 遵循TypeScript实践
    • 添加/更新测试
    • 更新文档
  4. 测试&构建:

    npm install
    npm test
    npm run build
    
  5. 提交&推送:

    git add .
    git commit -m "feat: 添加了惊人的功能"
    git push origin feature/your-feature
    
  6. 打开拉取请求:

    • 使用清晰的标题和描述
    • 如适用,引用问题
    • 包含测试结果
    • 更新文档

提交消息

遵循常规提交

  • feat: 新功能
  • fix: 错误修复
  • docs: 文档
  • test: 测试
  • refactor: 代码重构
  • chore: 维护

许可证

本项目采用MIT许可证 - 详情参见LICENSE文件。

支持