推特机器人构建工具

一个使用Google Gemini和Twitter API构建动态推特机器人的工具,支持交互式CLI聊天和实时服务器通信。

  • by Zaki-Mohd
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 zaki-mohd/mcp-x-poster

使用说明

🧠 MCP推特机器人

一个示例项目,演示如何构建 模型上下文协议(MCP)服务器和客户端 使用 谷歌双子座 发布推文(以前在推特上,现在是X)并运行动态工具。

🚀 内置:

  • @模型上下文协议/sdk
  • @谷歌/genai
  • 推特-api-v2
  • Node.js、Express、dotenv

✨ 特性

  • 使用Google Gemini理解用户提示的交互式CLI聊天。
  • MCP工具通过Gemini动态列出和调用。
  • 使用Twitter API发布推文。
  • 通过服务器发送事件(SSE)与服务器进行实时通信。
  • 易于扩展:快速添加自己的工具。

📂 项目结构

.
├── client
│ ├── node_modules/
│ ├── .env
│ ├── index.js
│ ├── package-lock.json
│ └── package.json
│
├── server
│ ├── node_modules/
│ ├── .env
│ ├── index.js
│ ├── mcp.tool.js
│ ├── package-lock.json
│ └── package.json
│


🛠 安装

  1. 克隆存储库:
https://github.com/Zaki-Mohd/mcp-x-poster.git
cd mcp-x-poster
  1. 安装依赖项:
npm install
  1. 配置环境变量: 创建一个 .env 在根文件夹中创建文件并添加:
GEMINI_API_KEY=your_google_gemini_api_key

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

⚠️ 确保不要承诺 .env 版本控制。


🚀 运行项目

1.️⃣ 启动MCP服务器:

npx nodemon index.js

2.️⃣ 启动MCP客户端(在单独的终端中):

node index.js

客户端将提示您输入消息;谷歌双子座决定是直接回答还是调用类似的工具 createPost.


⚙️ 运作原理

  • MCP服务器公开了以下工具:

    • createPost:发布推文
    • addTwoNumbers:用于测试的简单数学工具
  • MCP客户端:

    • 列出服务器中的工具
    • 将聊天记录和工具列表发送到Google Gemini
    • 如果Gemini返回 functionCall,客户端调用服务器上的工具,并将结果包含在下一个请求中

这个循环创建了一个动态的、人工智能辅助的工作流程。


🧩 添加自己的工具

在……里面 index.js,添加一个新工具,如下所示:

server.tool(
  "toolName",
  "Tool description",
  {
    param1: z.string(), // validate parameters with zod
    param2: z.number()
  },
  async (args) => {
    // Your logic here
    return {
      content: [
        { type: "text", text: "Result text" }
      ]
    }
  }
)

客户端将通过以下方式自动发现它 listTools().


📦 需求

  • Node.js v18或更新版本
  • Twitter开发人员证书(API密钥和令牌)
  • Google Gemini API密钥

❤️ 贡献

欢迎PR和建议!