项目简介
该仓库提供了一套独立的 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服务器都需要单独配置和运行。以下是通用的安装和启动流程:
-
克隆仓库: 首先,将整个仓库克隆到您的本地机器上:
git clone https://github.com/sentient-io/AI-Agents.git cd AI-Agents -
安装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'。
-
配置环境变量: 每个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数据库)。
-
运行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客户端的官方文档。
信息
分类
数据库与文件