baryhuang
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"twitter": {
"args": [
"run",
"-i",
"--rm",
"buryhuang/mcp-twitter-noauth:latest"
],
"command": "docker"
}
}
}
服务介绍
MCP 服务器 - Twitter NoAuth
这是一个MCP(Model Context Protocol)服务器,提供无需本地凭证或令牌设置的Twitter API访问。支持核心的Twitter操作,如搜索推文、获取用户推文、发布推文和回复推文。
演示视频
https://www.youtube.com/watch?v=LOxFqCTPedc
为什么选择MCP Twitter NoAuth服务器?
关键优势
- 无头且远程操作:此服务器可以在没有浏览器和本地文件访问权限的远程环境中完全无头运行。
- 解耦架构:任何客户端都可以独立完成OAuth流程,然后将凭据作为上下文传递给这个MCP服务器,从而在凭据存储和服务器实现之间创建了完全分离。
虽好但非关键
- 专注的功能:提供核心的Twitter操作,如搜索推文、获取用户推文、发布推文和回复推文。
- Docker就绪:设计时考虑到了容器化,以便于隔离环境、独立部署,一键设置。
- 可靠的依赖项:基于标准的Python requests库构建,用于Twitter API集成。
功能
- 使用Twitter API搜索推文
- 获取特定用户的最新推文
- 获取特定用户的最新回复
- 发布新推文
- 回复现有推文
- 单独刷新访问令牌
- 自动处理刷新令牌
前提条件
- Python 3.10或更高版本
- Twitter API凭据(客户端ID、客户端密钥、访问令牌和刷新令牌)
安装
bash
克隆仓库
git clone https://github.com/yourusername/mcp-twitter-noauth.git
cd mcp-twitter-noauth
安装依赖
pip install -e .
Docker
构建Docker镜像
bash
构建Docker镜像
docker build -t mcp-twitter-noauth .
与Claude桌面版一起使用
Docker用法
您可以通过向Claude配置中添加以下内容来配置Claude桌面版以使用Docker镜像:
json
{
"mcpServers": {
"twitter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"buryhuang/mcp-twitter-noauth:latest"
]
}
}
}
注意:通过这种配置,您需要在工具调用中提供您的Twitter API凭据,如使用工具部分所示。为了保持凭据存储和服务器实现之间的分离,Twitter凭据不会作为环境变量传递。
跨平台发布
要为多个平台发布Docker镜像,您可以使用docker buildx命令。请按照以下步骤操作:
-
创建一个新的构建器实例(如果您还没有的话):
bash
docker buildx create --use -
为多个平台构建并推送镜像:
bash
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-twitter-noauth:latest --push . -
验证指定平台上的镜像是否可用:
bash
docker buildx imagetools inspect buryhuang/mcp-twitter-noauth:latest
使用方法
该服务器通过MCP工具提供Twitter功能。认证处理通过专用的令牌刷新工具简化。
启动服务器
bash
mcp-server-twitter-noauth
使用工具
当使用像Claude这样的MCP客户端时,您有两种主要的方式来处理认证:
刷新令牌(第一步或令牌过期时)
如果您同时拥有访问令牌和刷新令牌:
json
{
"twitter_access_token": "your_access_token",
"twitter_refresh_token": "your_refresh_token",
"twitter_client_id": "your_client_id",
"twitter_client_secret": "your_client_secret"
}
如果您的访问令牌已过期,您可以仅使用刷新令牌进行刷新:
json
{
"twitter_refresh_token": "your_refresh_token",
"twitter_client_id": "your_client_id",
"twitter_client_secret": "your_client_secret"
}这将返回一个新的访问令牌及其过期时间,您可以使用这些信息进行后续调用。
搜索推文
使用Twitter API搜索推文:
json
{
"twitter_access_token": "your_access_token",
"query": "your search query",
"max_results": 10
}
响应包括推文数据,如文本、创建时间和作者信息。
获取用户推文
获取特定用户的最近推文:
json
{
"twitter_access_token": "your_access_token",
"user_id": "twitter_user_id",
"max_results": 10
}
获取用户回复
获取特定用户的最近回复:
json
{
"twitter_access_token": "your_access_token",
"user_id": "twitter_user_id",
"max_results": 10
}
发布推文
发布新的推文:
json
{
"twitter_access_token": "your_access_token",
"text": "This is a test tweet from the MCP Twitter server"
}
回复推文
回复现有的推文:
json
{
"twitter_access_token": "your_access_token",
"tweet_id": "id_of_tweet_to_reply_to",
"text": "This is a reply to the original tweet"
}
令牌刷新工作流程
- 首先通过以下方式之一调用
twitter_refresh_token工具:- 使用您的完整凭据(访问令牌、刷新令牌、客户端ID和客户端密钥),或
- 如果访问令牌已过期,则仅使用刷新令牌、客户端ID和客户端密钥
- 使用返回的新访问令牌进行后续API调用。
- 如果收到指示令牌过期的响应,请再次调用
twitter_refresh_token工具以获取新令牌。
这种方法简化了大多数API调用,不需要每次操作都提供客户端凭据,同时在需要时仍能实现令牌刷新。
获取Twitter API凭据
要获取所需的Twitter API凭据,请按照以下步骤操作:
- 前往Twitter开发者门户
- 创建一个新项目和应用
- 设置OAuth 2.0身份验证
- 为您的应用配置OAuth设置
- 生成客户端ID和客户端密钥
- 完成OAuth流程以获取访问令牌和刷新令牌
令牌刷新
此服务器实现了自动令牌刷新。当您的访问令牌过期时,服务器将使用刷新令牌、客户端ID和客户端密钥来获取新的访问令牌,而无需用户干预。
安全注意事项
此服务器需要直接访问您的Twitter API凭据。始终确保您的令牌和凭据安全,并且不要与不可信方共享。
许可证
详见LICENSE文件。