项目简介

Narad MCP Server 旨在作为一个 Model Context Protocol (MCP) 服务器,为大型语言模型 (LLM) 应用提供上下文信息和功能扩展。它通过集成多种 Agent(如 GitHubAgent, EmailAgent, WhatsAppAgent),使得 LLM 客户端能够安全、便捷地调用外部服务,实现更复杂的工作流程和任务自动化。该服务器通过 HTTP 协议与客户端通信,接收指令并返回结果。

主要功能点

  • 多Agent集成: 内置 GitHub, Email, WhatsApp 三种 Agent,可扩展集成更多服务。
  • 命令路由: 通过预定义的命令前缀(如 'github:', 'email:', 'whatsapp:')将指令路由到相应的 Agent 执行。
  • 本地LLM支持: 集成本地 LLM 模型 (通过 'gpt4all') 作为默认能力,处理通用指令或作为 Agent 功能的补充。
  • HTTP API: 提供简单的 HTTP POST 接口 '/command' 接收客户端指令。
  • 环境配置: 使用 '.env' 文件管理敏感信息,如 GitHub Token, Email 账户等。

安装步骤

  1. 克隆仓库

    git clone https://github.com/Edge-Explorer/Narad-MCP-Server.git
    cd Narad-MCP-Server
  2. 安装依赖

    pip install -r requirements.txt
  3. 配置环境变量

    • 在项目根目录下创建 '.env' 文件。
    • 根据需要配置以下环境变量 (示例):
      GITHUB_TOKEN=your_github_token
      [email protected]
      EMAIL_PASSWORD=your_email_password
      SMTP_SERVER=smtp.gmail.com
      SMTP_PORT=587
      TWILIO_PHONE_NUMBER=+1234567890  # (WhatsApp Agent 可能需要,但 pywhatkit 主要依赖 WhatsApp Web)
      注意: 请替换为您的实际 GitHub Token 和 Email 账户信息。WhatsApp Agent 的配置可能需要您根据 'whatsapp_agent.py' 中的代码逻辑进行调整。

服务器配置

对于 MCP 客户端,您需要配置连接到 Narad MCP Server 的信息。以下是一个 JSON 格式的配置示例,您可以将其添加到 MCP 客户端的服务器配置中:

{
  "serverName": "NaradServer",
  "command": "python",
  "args": ["mcp_server.py"],
  "host": "http://localhost",
  "port": 5000,
  "protocol": "http",
  "description": "Narad MCP Server 提供 GitHub, Email, WhatsApp 功能"
}

参数注释:

  • '"serverName"': 服务器的名称,您可以自定义。
  • '"command"': 启动服务器的命令,这里是使用 'python' 解释器。
  • '"args"': 启动命令的参数,这里指定运行 'mcp_server.py' 文件。
  • '"host"': 服务器的主机地址,'localhost' 表示本地运行。如果服务器部署在远程,请修改为服务器的 IP 地址或域名。
  • '"port"': 服务器监听的端口,默认为 '5000',与 'mcp_server.py' 中 'app.run(port=5000)' 的配置一致。
  • '"protocol"': 服务器使用的协议,这里是 'http'。
  • '"description"': 服务器的简要描述,方便客户端用户了解服务器功能。

MCP 客户端需要配置此 JSON,以便能够连接到 Narad MCP Server 并发送指令。 客户端会根据此配置启动服务器(如果需要),并使用 HTTP 协议与服务器的 '/command' 接口进行通信。

基本使用方法

  1. 启动服务器 在 Narad-MCP-Server 仓库目录下,运行:

    python mcp_server.py

    服务器默认会在 'http://0.0.0.0:5000' 启动。

  2. 发送指令 使用 HTTP 客户端(如 'curl' 或 Postman)向服务器的 '/command' 接口发送 POST 请求,请求体为 JSON 格式,包含 'command' 字段。

    示例指令:

    • GitHub Agent:

      curl -X POST -H "Content-Type: application/json" -d '{"command": "github: list commits for repo \'repo-name\' by owner \'owner-name\'"}' http://localhost:5000/command

      (请替换 'repo-name' 和 'owner-name' 为实际仓库名和所有者)

    • Email Agent:

      curl -X POST -H "Content-Type: application/json" -d '{"command": "email: send \"Hello from Narad!\" to \'[email protected]\'"}' http://localhost:5000/command

      (请替换 '[email protected]' 为实际收件人邮箱)

    • WhatsApp Agent:

      curl -X POST -H "Content-Type: application/json" -d '{"command": "whatsapp: send \"Hello from Narad via MCP Server!\" to \'+919768817033\'"}' http://localhost:5000/command

      (请替换 '+919768817033' 为实际 WhatsApp 接收号码,注意包含国家代码)

    • 本地 LLM:

      curl -X POST -H "Content-Type: application/json" -d '{"command": "请介绍一下你自己"}' http://localhost:5000/command

    服务器会返回 JSON 格式的响应,包含 'response' 字段,表示指令执行结果。

注意: 实际使用时,MCP 客户端会负责构建和发送这些 HTTP 请求,您只需要配置好服务器信息并理解可用的指令格式即可。

信息

分类

通信与社交