这是一个用于 Twitter API 的模型上下文协议(MCP)服务器,具备推文发布、搜索和时间线等功能。
该 Twitter MCP 服务器能让你轻松与 Twitter 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
# 构建项目
npm run build
# 运行 MCP 服务器
npm start
# 以开发模式运行
npm run dev
# 运行测试
npm test
# 代码检查
npm run lint
# 代码格式化
npm run format
该服务器提供了以下 MCP 工具:
发布新推文,支持可选的回复功能。 参数:
text
(字符串,必填):推文的文本内容。reply_to_tweet_id
(字符串,可选):要回复的推文 ID。
示例:{
"name": "post_tweet",
"arguments": {
"text": "Hello, world!",
"reply_to_tweet_id": "1234567890123456789"
}
}
使用查询字符串搜索推文。 参数:
query
(字符串,必填):推文搜索查询。max_results
(数字,可选):最大结果数(默认:10)。
示例:{
"name": "search_tweets",
"arguments": {
"query": "AI",
"max_results": 5
}
}
获取用户的推文时间线。 参数:
username
(字符串,必填):要获取时间线的用户名。max_results
(数字,可选):最大结果数(默认:10)。
示例:{
"name": "get_timeline",
"arguments": {
"username": "elonmusk",
"max_results": 5
}
}
获取当前的速率限制信息。 参数:无 示例:
{
"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 Bearer 令牌,必填 |
NODE_ENV |
环境,默认为 production |
LOG_LEVEL |
日志级别,默认为 info |
RATE_LIMIT_WINDOW_MS |
速率限制窗口,默认为 900000(15 分钟) |
RATE_LIMIT_MAX_REQUESTS |
每个窗口的最大请求数,默认为 300 |
服务器实现了基本的速率限制:
get_rate_limit_info
工具提供速率限制信息。src/
├── config.ts # 配置管理
├── logger.ts # 日志工具
├── server.ts # MCP 服务器实现
├── twitter.ts # Twitter API 服务
├── types.ts # TypeScript 类型定义
├── index.ts # 主入口点
└── test/ # 测试文件
├── basic.test.ts
└── twitter.test.ts
项目包含全面的测试:
# 运行所有测试
npm test
# 运行带覆盖率的测试
npm test -- --coverage
测试覆盖以下方面:
npm run dev # 以开发模式启动
npm run build # 构建 TypeScript 代码
npm run start # 启动生产服务器
npm run test # 运行测试
npm run lint # 运行 ESLint 代码检查
npm run format # 使用 Prettier 格式化代码
服务器包含全面的错误处理:
本项目采用 MIT 许可证。