一个模型上下文协议(MCP)服务器,支持与Twitter/X平台无缝交互。通过Claude AI发布推文、分享图片并搜索Twitter。
最简单的方式是通过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"
}
}
}
}
编辑位于以下位置的配置文件:
%APPDATA%\Claude\claude_desktop_config.json
或者导航到:
C:\Users\YOUR_USERNAME\AppData\Roaming\Claude\claude_desktop_config.json
编辑位于以下位置的配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json
编辑位于以下位置的配置文件:
~/.config/Claude/claude_desktop_config.json
在你的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桌面设置
转到连接器
启用文件系统访问
添加目录路径
C:\Users\YourName\TwitterImages/Users/yourname/TwitterImages/home/yourname/TwitterImages💡 提示:你可以通过重复此步骤添加多个目录
保存并重启
要验证文件系统访问是否正常工作:
C:\Users\YourName\TwitterImages中的文件”如果Claude能看到你的文件,那么一切就绪!🎉
用于Twitter图片:创建专用文件夹如:
C:\TwitterImages(Windows)~/TwitterImages(macOS/Linux)用于文档:
C:\Users\YourName\Documents(Windows)~/Documents(macOS/Linux)无法找到设置中的连接器?
路径不起作用?
更改未生效?
一旦配置完成,你可以通过自然语言命令与Twitter进行交互。
简单推文:
发布推文:“Hello World! 🌍”
重要提示:确保已按第4步配置文件系统MCP服务器。
带有图片的推文:
发布这张图片并附上说明:“看看这令人惊叹的景色!”
从桌面取图
处理图片:
文件访问:
路径格式:
C:\Users\YourName\Pictures\image.jpg/Users/YourName/Pictures/image.jpg/home/yourname/pictures/image.jpg./images/photo.jpg(相对于你的工作目录)支持的图片格式:
image/jpeg)image/png)image/gif)image/webp)图片要求:
最佳实践:
基本搜索:
搜索关于“人工智能”的推文
高级搜索:
搜索过去一周内关于“气候变化”的50条推文
服务器提供了三个可以通过Claude访问的工具:
post_tweet发布纯文本推文。
post_tweet_with_image发布带有附加图片的推文。
支持的图片格式:
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"
}
}
}
git clone https://github.com/genaiwithms/twitter-mcp.git
cd twitter-mcp
npm install
npm run build
在项目根目录创建一个.env文件:
API_KEY=your_api_key
API_SECRET_KEY=your_api_secret
ACCESS_TOKEN=your_access_token
ACCESS_TOKEN_SECRET=your_access_token_secret
更新你的Claude配置以使用本地构建:
{
"mcpServers": {
"twitter": {
"command": "node",
"args": ["${absolute_path_to_project}/build/index.js"],
"envFile": ".env"
}
}
}
# 启动服务器
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编译为JavaScriptnpm start - 运行编译后的服务器npm run prepublishOnly - 发布前构建问题:"401未经授权"或认证失败
解决方案:
.env文件格式问题:"超出速率限制"或请求失败
解决方案:
问题:图片上传失败或缺少媒体
解决方案:
问题:依赖项未安装或构建未完成。
解决方案:
# 删除旧依赖项
rm -rf node_modules package-lock.json
# 重新安装
npm install
# 重新构建
npm run build
问题:MCP服务器无法连接到Claude。
解决方案:
node --version要查看详细的日志,请检查:
Windows:
%APPDATA%\Claude\logs\
macOS:
~/Library/Logs/Claude/
Linux:
~/.config/Claude/logs/
服务器需要以下环境变量:
| 变量 | 描述 | 必需 |
|---|---|---|
API_KEY | Twitter API密钥 | 是 |
API_SECRET_KEY | Twitter API密钥秘密 | 是 |
ACCESS_TOKEN | Twitter访问令牌 | 是 |
ACCESS_TOKEN_SECRET | Twitter访问令牌秘密 | 是 |
该项目使用Jest进行测试。运行测试:
# 运行所有测试
npm test
# 在监视模式下运行测试
npm test -- --watch
# 运行带有覆盖率的测试
npm test -- --coverage
测试文件位于src/evals/。示例测试:
欢迎贡献!请遵循以下步骤:
分叉&克隆:
git clone https://github.com/EnesCinr/twitter-mcp.git
cd twitter-mcp
创建分支:
git checkout -b feature/your-feature
# 或
git checkout -b fix/your-bugfix
进行更改:
测试&构建:
npm install
npm test
npm run build
提交&推送:
git add .
git commit -m "feat: 添加了惊人的功能"
git push origin feature/your-feature
打开拉取请求:
遵循常规提交:
feat: 新功能fix: 错误修复docs: 文档test: 测试refactor: 代码重构chore: 维护本项目采用MIT许可证 - 详情参见LICENSE文件。