项目简介

该仓库提供了一套独立的 Model Context Protocol (MCP) 服务器实现,旨在为AI代理和大型语言模型 (LLM) 提供强大的外部能力。每个服务器都专注于特定的功能领域,通过标准化的JSON-RPC协议与MCP客户端通信,允许LLM安全、高效地访问和操作外部系统及数据。

该集合包含以下MCP服务器:

  • Wasabi MCP 服务器: 用于管理Wasabi S3兼容云存储中的文件。
  • Elasticsearch MCP 服务器: 用于在Elasticsearch中进行文档索引、搜索和管理。
  • ASR MCP 服务器: 用于将视频URL中的语音内容自动转录为文本。
  • Speak-Identification (Metadata) MCP 服务器: 用于从社交媒体视频中提取元数据并识别说话人,支持数据持久化到MySQL。

主要功能点

  • Wasabi云存储管理:
    • 上传和删除指定S3存储桶中的文件。
    • 生成文件的预签名URL,实现临时、安全的访问。
    • 列出存储桶中的所有文件键。
    • 读取多种格式(如DOCX, PDF, TXT)文件的内容。
  • Elasticsearch文档管理:
    • 创建新的Elasticsearch索引。
    • 添加、删除文档到指定索引。
    • 按关键词在文档内容中进行搜索。
    • 按文件名检索特定文档的内容。
    • 列出索引中的所有文档ID。
  • 自动语音识别 (ASR):
    • 从YouTube、Facebook、TikTok等社交媒体平台下载视频。
    • 利用外部ASR服务对视频的语音内容进行高精度转录。
  • 社交媒体视频元数据与说话人识别:
    • 从YouTube、Facebook、TikTok视频URL中提取丰富的元数据(如标题、描述、观看量、作者、发布日期等)。
    • 利用Google Gemini等AI模型分析视频描述或评论,智能识别其中提及的说话人或关键人物。
    • 支持将提取的视频元数据持久化到MySQL数据库,并提供查询能力。

安装步骤

每个MCP服务器都需要单独配置和运行。以下是通用的安装和启动流程:

  1. 克隆仓库: 首先,将整个仓库克隆到您的本地机器上:

    git clone https://github.com/sentient-io/AI-Agents.git
    cd AI-Agents
  2. 安装Python依赖: 进入您想要运行的MCP服务器的对应子目录(例如 'mcp-servers/Wasabi'),然后安装该服务器所需的Python依赖。 例如,安装Wasabi MCP服务器的依赖:

    cd mcp-servers/Wasabi
    pip install -r requirements.txt

    请对您计划使用的每个服务器重复此步骤,进入相应的 'mcp-servers/ASR', 'mcp-servers/Elasticsearch', 'mcp-servers/Speak-Identification' 目录并运行 'pip install -r requirements.txt'。

  3. 配置环境变量: 每个MCP服务器都依赖特定的环境变量来配置其API密钥、服务终端URL或数据库连接信息。您需要根据服务器目录下的 'config.py' 文件中定义的变量,设置相应的环境变量。

    示例 (Wasabi MCP Server):

    export WASABI_ENDPOINT_URL="https://s3.us-east-1.wasabisys.com" # 替换为您的Wasabi服务终端URL
    export WASABI_ACCESS_KEY="YOUR_WASABI_ACCESS_KEY" # 替换为您的Wasabi访问密钥
    export WASABI_SECRET_KEY="YOUR_WASABI_SECRET_KEY" # 替换为您的Wasabi秘密密钥

    请确保为所有您计划运行的MCP服务器设置了正确的环境变量。 例如:

    • Elasticsearch服务器: 需要 'ES_HOST', 'ES_USERNAME', 'ES_PASSWORD'。
    • ASR服务器: 需要 'SENTIENT_X_API_KEY', 'ASR_UPLOAD_ENDPOINT', 'ASR_STATUS_ENDPOINT', 'RAPID_API_ENDPOINT', 'RAPID_API_KEY', 'RAPID_HOST'。
    • Speak-Identification (Metadata) 服务器: 需要 'X_RAPIDAPI_KEY' (用于RapidAPI), 'GOOGLE_GEMINI_API_KEY' (用于Gemini模型), 'DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_NAME' (用于MySQL数据库)。
  4. 运行MCP服务器: 在设置好环境变量并安装完依赖后,进入对应MCP服务器的目录,然后运行 'server.py' 文件来启动服务器。 例如,启动Wasabi MCP服务器:

    python server.py

    每个服务器默认会在 'http://0.0.0.0:8080' 监听请求,并将其MCP接口挂载在 '/mcp' 路径下。

服务器配置

MCP客户端需要以下配置信息才能与这些MCP服务器建立连接并调用其功能。请将以下JSON结构作为示例,并根据您的实际部署路径和环境变量进行调整。

[
  {
    "name": "WasabiTools",
    "description": "提供Wasabi S3兼容云存储的上传、删除、预签名URL和文件内容读取功能。",
    "command": "python",
    "args": ["/absolute/path/to/AI-Agents/mcp-servers/Wasabi/server.py"],
    "port": 8080,
    "environment_variables": {
      "WASABI_ENDPOINT_URL": "您的Wasabi服务终端URL,例如:https://s3.us-east-1.wasabisys.com",
      "WASABI_ACCESS_KEY": "您的Wasabi访问密钥",
      "WASABI_SECRET_KEY": "您的Wasabi秘密密钥"
    },
    "path": "/mcp"
  },
  {
    "name": "ElasticsearchTools",
    "description": "提供Elasticsearch索引创建、文档增删改查和关键词搜索功能。",
    "command": "python",
    "args": ["/absolute/path/to/AI-Agents/mcp-servers/Elasticsearch/server.py"],
    "port": 8080,
    "environment_variables": {
      "ES_HOST": "您的Elasticsearch主机地址,例如:http://localhost:9200",
      "ES_USERNAME": "您的Elasticsearch用户名",
      "ES_PASSWORD": "您的Elasticsearch密码"
    },
    "path": "/mcp"
  },
  {
    "name": "ASRTools",
    "description": "提供视频URL的自动语音转文本 (ASR) 功能。",
    "command": "python",
    "args": ["/absolute/path/to/AI-Agents/mcp-servers/ASR/server.py"],
    "port": 8080,
    "environment_variables": {
      "SENTIENT_X_API_KEY": "您的Sentient-X API密钥",
      "ASR_UPLOAD_ENDPOINT": "ASR文件上传服务终端,例如:https://api.sentient.io/asr/upload",
      "ASR_STATUS_ENDPOINT": "ASR状态查询服务终端前缀,例如:https://api.sentient.io/asr/status/",
      "RAPID_API_ENDPOINT": "视频下载RapidAPI终端,例如:https://youtube-downloader-scraper.p.rapidapi.com/dl",
      "RAPID_API_KEY": "视频下载RapidAPI密钥",
      "RAPID_HOST": "视频下载RapidAPI主机,例如:youtube-downloader-scraper.p.rapidapi.com"
    },
    "path": "/mcp"
  },
  {
    "name": "MetadataTools",
    "description": "提供社交媒体视频元数据获取、说话人识别和元数据存储功能。",
    "command": "python",
    "args": ["/absolute/path/to/AI-Agents/mcp-servers/Speak-Identification/server.py"],
    "port": 8080,
    "environment_variables": {
      "X_RAPIDAPI_KEY": "您的RapidAPI密钥 (用于社交媒体数据获取)",
      "GOOGLE_GEMINI_API_KEY": "您的Google Gemini API密钥",
      "DB_HOST": "您的MySQL数据库主机,例如:localhost",
      "DB_USER": "您的MySQL数据库用户名",
      "DB_PASSWORD": "您的MySQL数据库密码",
      "DB_NAME": "您的MySQL数据库名称,例如:video_database"
    },
    "path": "/mcp"
  }
]

配置字段说明:

  • 'name' (字符串): MCP客户端中用于识别此服务器的唯一名称。
  • 'description' (字符串): 该MCP服务器功能的简要描述。
  • 'command' (字符串): 启动服务器所需的命令行程序,通常是'python'。
  • 'args' (字符串数组): 传递给'command'的参数。第一个参数应是您的'server.py'脚本的绝对路径。请务必将 '/absolute/path/to/AI-Agents/' 替换为您的实际仓库路径。
  • 'port' (整数): 服务器监听的端口号。默认配置为8080。
  • 'environment_variables' (对象): 一个键值对集合,包含服务器运行所需的环境变量及其值。MCP客户端会负责在启动服务器进程时注入这些变量。
  • 'path' (字符串): MCP接口在服务器基础URL上的子路径。在此仓库中,所有MCP接口都挂载在'/mcp'路径下。

基本使用方法

当MCP服务器成功运行,并且其配置信息已提供给MCP客户端后,AI代理便可以通过JSON-RPC协议调用这些服务器上注册的工具。例如,一个LLM客户端可以向“WasabiTools”服务器发送请求,调用其'upload_file'工具,并提供文件名、文件内容和存储桶名称作为参数,从而实现文件上传到Wasabi云存储。具体如何从您使用的MCP客户端调用这些工具,请参考该MCP客户端的官方文档。

信息

分类

数据库与文件