Twitter无认证API服务

一个无需本地凭证设置的MCP服务器,提供Twitter API核心功能包括推文搜索、用户推文获取、发布推文及回复推文。

  • by baryhuang
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 baryhuang/mcp-twitter-noauth

使用说明

MCP服务器-推特NoAuth

一种MCP(模型上下文协议)服务器,在没有本地凭证或令牌设置的情况下提供Twitter API访问。提供Twitter的核心操作,如搜索推文、获取用户推文、发布推文和回复推文。

演示视频

https://www.youtube.com/watch?v=LOxFqCTPedc

为什么选择MCP Twitter NoAuth服务器?

关键优势

  • 无头和远程操作:此服务器可以在没有浏览器和本地文件访问的远程环境中完全无头运行。
  • 解耦架构:任何客户端都可以独立完成OAuth流,然后将凭据作为上下文传递给此MCP服务器,从而在凭据存储和服务器实现之间实现完全分离。

不错,但并不挑剔

  • 专注功能:提供Twitter的核心操作,如搜索推文、获取用户推文、发布推文和回复推文。
  • Docker就绪:设计时考虑了容器化,以实现隔离良好、独立于环境、一键式设置。
  • 可靠的依赖关系:基于标准Python请求库构建,用于Twitter API集成。

特性

  • 使用Twitter API搜索推文
  • 获取特定用户的最新推文
  • 获取特定用户的最新回复
  • 发布新推文
  • 回复现有推文
  • 分别刷新访问令牌
  • 自动刷新令牌处理

先决条件

  • Python 3.10或更高版本
  • Twitter API凭据(客户端ID、客户端机密、访问令牌和刷新令牌)

安装

# Clone the repository
git clone https://github.com/yourusername/mcp-twitter-noauth.git
cd mcp-twitter-noauth

# Install dependencies
pip install -e .

码头工人

构建Docker镜像

# Build the Docker image
docker build -t mcp-twitter-noauth .

使用Claude Desktop

Docker使用

您可以通过在Claude配置中添加以下内容来配置Claude Desktop以使用Docker镜像:

{
  "mcpServers": {
    "twitter": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "buryhuang/mcp-twitter-noauth:latest"
      ]
    }
  }
}

注意:使用此配置,您需要在工具调用中提供您的Twitter API凭据,如 使用工具 部分。Twitter凭据不作为环境变量传递,以保持凭据存储和服务器实现之间的分离。

跨平台发布

要为多个平台发布Docker镜像,您可以使用 docker buildx 命令。请按照以下步骤操作:

  1. 创建新的构建器实例 (如果你还没有):

    docker buildx create --use
    
  2. 为多个平台构建和推广形象:

    docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-twitter-noauth:latest --push .
    
  3. 验证映像是否可用于指定的平台:

    docker buildx imagetools inspect buryhuang/mcp-twitter-noauth:latest
    

用法

服务器通过MCP工具提供Twitter功能。使用专用的令牌刷新工具简化了身份验证处理。

启动服务器

mcp-server-twitter-noauth

使用工具

当使用像Claude这样的MCP客户端时,您有两种主要方法来处理身份验证:

刷新令牌(第一步或令牌到期时)

如果您同时拥有访问和刷新令牌:

{
  "twitter_access_token": "your_access_token",
  "twitter_refresh_token": "your_refresh_token",
  "twitter_client_id": "your_client_id",
  "twitter_client_secret": "your_client_secret"
}

如果您的访问令牌已过期,您可以仅使用刷新令牌进行刷新:

{
  "twitter_refresh_token": "your_refresh_token",
  "twitter_client_id": "your_client_id",
  "twitter_client_secret": "your_client_secret"
}

这将返回一个新的访问令牌及其过期时间,您可以在后续调用中使用它。

搜索推文

使用Twitter API搜索推文:

{
  "twitter_access_token": "your_access_token",
  "query": "your search query",
  "max_results": 10
}

响应包括推特数据,包括文本、创建时间和作者信息。

获取用户推文

获取特定用户的最新推文:

{
  "twitter_access_token": "your_access_token",
  "user_id": "twitter_user_id",
  "max_results": 10
}

获取用户回复

获取特定用户的最新回复:

{
  "twitter_access_token": "your_access_token",
  "user_id": "twitter_user_id",
  "max_results": 10
}

发布推文

发布一条新推文:

{
  "twitter_access_token": "your_access_token",
  "text": "This is a test tweet from the MCP Twitter server"
}

回复推文

回复现有推文:

{
  "twitter_access_token": "your_access_token",
  "tweet_id": "id_of_tweet_to_reply_to",
  "text": "This is a reply to the original tweet"
}

令牌刷新工作流

  1. 首先,请致电 twitter_refresh_token 工具具有以下任一功能:
    • 您的完整凭据(访问令牌、刷新令牌、客户端ID和客户端密钥),或
    • 如果访问令牌已过期,则只需刷新令牌、客户端ID和客户端密钥
  2. 将返回的新访问令牌用于后续API调用。
  3. 如果您收到指示令牌过期的响应,请调用 twitter_refresh_token 再次使用工具获取新令牌。

这种方法简化了大多数API调用,不需要为每个操作提供客户端凭据,同时仍然在需要时启用令牌刷新。

获取Twitter API证书

要获得所需的Twitter API凭据,请按照以下步骤操作:

  1. 转到 Twitter开发者门户
  2. 创建新项目和应用程序
  3. 设置OAuth 2.0身份验证
  4. 为您的应用配置OAuth设置
  5. 生成客户端ID和客户端密钥
  6. 完成OAuth流程以获取访问和刷新令牌

令牌刷新

此服务器实现自动令牌刷新。当您的访问令牌到期时,服务器将使用刷新令牌、客户端ID和客户端密钥来获取新的访问令牌,而不需要用户干预。

安全说明

此服务器需要直接访问您的Twitter API凭据。始终确保您的令牌和凭据安全,切勿与不受信任的方共享。

许可证

有关详细信息,请参阅LICENSE文件。