使用说明
推特MCP服务器
用于Twitter API的模型上下文协议(MCP)服务器,具有发布、搜索和时间轴功能。
特性
- 发布推文:发布带有可选回复功能的新推文
- 搜索推文:使用查询字符串搜索推文
- 获取时间表:检索用户时间线
- 速率限制:Twitter API调用的基本速率限制
- TypeScript:完全支持TypeScript,具有严格的类型检查
- 测试:使用Jest的全面测试套件
先决条件
- Node.js 18+
- Twitter API证书(API密钥、API机密、访问令牌、访问令牌机密、承载令牌)
安装
- 克隆存储库:
git clone https://github.com/aali-1/twitter-mcp-server.git
cd twitter-mcp-server
- 安装依赖项:
npm install
- 设置环境变量:
cp env.example .env
编辑 .env 使用您的Twitter API证书:
TWITTER_API_KEY=your_twitter_api_key
TWITTER_API_SECRET=your_twitter_api_secret
TWITTER_ACCESS_TOKEN=your_twitter_access_token
TWITTER_ACCESS_TOKEN_SECRET=your_twitter_access_token_secret
TWITTER_BEARER_TOKEN=your_twitter_bearer_token
用法
构建并运行
# Build the project
npm run build
# Run the MCP server
npm start
发展
# Run in development mode
npm run dev
# Run tests
npm test
# Lint code
npm run lint
# Format code
npm run format
MCP工具
服务器提供以下MCP工具:
post_tweet
发布带有可选回复功能的新推文。
参数:
text(string,必填):推文的文本内容reply_to_tweet_id(字符串,可选):要回复的推特ID
例子:
{
"name": "post_tweet",
"arguments": {
"text": "Hello, world!",
"reply_to_tweet_id": "1234567890123456789"
}
}
search_tweets(需要基本/专业计划)
使用查询字符串搜索推文。
参数:
query(字符串,必填):推文搜索查询max_results(数字,可选):最大结果数(默认值:10)
例子:
{
"name": "search_tweets",
"arguments": {
"query": "AI",
"max_results": 5
}
}
get_timeline
从用户的时间线获取推文。
参数:
username(string,必填):获取时间线的用户名max_results(数字,可选):最大结果数(默认值:10)
例子:
{
"name": "get_timeline",
"arguments": {
"username": "elonmusk",
"max_results": 5
}
}
get_rate_limit_info
获取当前速率限制信息。
参数: 无
例子:
{
"name": "get_rate_limit_info",
"arguments": {}
}
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
TWITTER_API_KEY |
Twitter API密钥 | 必需 |
TWITTER_API_SECRET |
Twitter API机密 | 必需 |
TWITTER_ACCESS_TOKEN |
Twitter访问令牌 | 必填 |
TWITTER_ACCESS_TOKEN_SECRET |
Twitter访问令牌密码 | 必填 |
TWITTER_BEARER_TOKEN |
Twitter承载令牌 | 必填 |
NODE_ENV |
环境 | 生产 |
LOG_LEVEL |
日志级别 | 信息 |
RATE_LIMIT_WINDOW_MS |
速率限制窗口 | 900000(15分钟) |
RATE_LIMIT_MAX_REQUESTS |
每个窗口的最大请求数 | 300 |
速率限制
服务器实现基本速率限制:
- 尊重Twitter的API费率限制
- 通过以下方式提供速率限制信息
get_rate_limit_info工具 - 对超出速率限制的情况进行优雅的错误处理
项目结构
src/
├── config.ts # Configuration management
├── logger.ts # Logging utilities
├── server.ts # MCP server implementation
├── twitter.ts # Twitter API service
├── types.ts # TypeScript type definitions
├── index.ts # Main entry point
└── test/ # Test files
├── basic.test.ts
└── twitter.test.ts
测试
该项目包括综合测试:
# Run all tests
npm test
# Run tests with coverage
npm test -- --coverage
测试包括:
- Twitter服务功能
- 速率限制
- 错误处理
- 工具参数验证
发展
可用脚本
npm run dev # Start in development mode
npm run build # Build TypeScript
npm run start # Start production server
npm run test # Run tests
npm run lint # Run ESLint
npm run format # Format code with Prettier
代码质量
- TypeScript:严格的类型检查
- ESLint:使用TypeScript规则进行代码linting
- 更漂亮:代码格式
- 开玩笑:测试框架
错误处理
服务器包括全面的错误处理:
- Twitter API错误(速率限制、身份验证等)
- 网络错误
- 验证错误
- 优雅的停机处理
安全
- 环境变量验证
- 输入验证
- 无信息泄露的错误处理
- 安全的凭证管理
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
许可证
MIT许可证
