项目简介

VT.ai 是一个多模态AI聊天应用项目,支持多种AI模型和提供商。本项目仓库中包含了一个独立的Model Context Protocol (MCP) 服务器实现,该服务器基于官方FastMCP SDK构建,旨在以标准化的方式向兼容MCP的LLM客户端提供功能和上下文。

主要功能点

该MCP服务器主要提供以下标准化功能:

  • 工具注册与执行: 提供预定义的工具(如天气查询、网页搜索、图像生成)供LLM调用,并执行相应的逻辑。
  • JSON-RPC通信: 通过标准JSON-RPC协议与MCP客户端进行交互。
  • 能力声明: 向客户端声明其提供的工具及相关定义。
  • 会话管理: 支持与客户端进行会话状态的维护。

安装步骤

该项目及其MCP服务器部分可以通过Python包管理器 'uv' 或 'pip' 进行安装。

  1. 安装uv(推荐): 如果你还没有安装uv,可以按官方文档安装。通常使用 'curl -LsSf https://astral.sh/uv/install.sh | sh'。
  2. 克隆仓库:
    git clone https://github.com/vinhnx/VT.ai.git
    cd VT.ai
  3. 设置API密钥: MCP服务器的某些工具(如图像生成、网页搜索)可能需要依赖于特定AI服务提供商的API密钥。请在项目根目录下创建 '.env' 文件,并添加所需的API密钥,例如:
    OPENAI_API_KEY='sk-your-openai-key'
    TAVILY_API_KEY='tvly-your-tavily-key' # 可选,用于网页搜索
  4. 安装依赖:
    uv pip install -e .
    # 或者使用 pip install -e .

服务器配置 (供MCP客户端连接使用)

该MCP服务器通常作为独立进程运行,并通过标准输入/输出(Stdio)或网络端口与客户端通信。MCP客户端需要以下配置信息才能连接并使用此服务器:

{
  "name": "VT.ai MCP Server",
  "command": [
    "/path/to/your/cloned/repo/VT.ai/run_vtai_server.sh"
  ],
  "args": [],
  "note": "该配置用于通过Stdio连接并启动VT.ai MCP服务器进程。请将 '/path/to/your/cloned/repo/VT.ai/' 替换为你实际克隆仓库的路径。",
  "env_vars_needed": "OPENAI_API_KEY, TAVILY_API_KEY (可选) 等,需在运行环境中配置",
  "default_port": 9393,
  "communication_protocol": "Stdio (默认, 当command方式启动时) 或 WebSocket/SSE (如果配置并作为独立服务启动)"
}
  • 'name': 服务器的友好名称,供客户端显示。
  • 'command': 用于启动MCP服务器进程的命令行及其参数列表。在此项目中,是执行 'run_vtai_server.sh' 脚本。
  • 'args': 传递给启动命令的额外参数列表。根据项目脚本,主机和端口通过环境变量控制,这里通常为空。
  • 'note': 提醒用户替换实际的项目路径。
  • 'env_vars_needed': 指出服务器运行所需的关键环境变量。
  • 'default_port': 服务器默认监听的端口(如果作为网络服务运行)。
  • 'communication_protocol': 指出支持的通信协议。当客户端通过 'command' 方式启动服务器脚本时,通常默认为 Stdio 协议;如果服务器被配置为监听特定端口(例如通过设置 'MCP_PORT' 环境变量并使用支持网络传输的FastMCP配置),则可能是 WebSocket 或 SSE 等。

基本使用方法

作为MCP服务器,它本身通常不提供直接的用户界面。它通过命令行脚本启动,等待MCP客户端连接并发送请求。

  1. 启动MCP服务器: 打开终端,进入项目目录,执行以下命令启动服务器:
    ./run_vtai_server.sh
    # 服务器默认监听 localhost:9393,但通过 ./run_vtai_server.sh 脚本启动时,常用于Stdio模式与客户端交互
    # 可以通过设置环境变量 MCP_HOST 和 MCP_PORT 来指定监听地址和端口 (需FastMCP及服务器代码支持)
    # export MCP_PORT="9393"
    # ./run_vtai_server.sh
  2. 连接MCP客户端: 使用任何兼容Model Context Protocol的LLM客户端,并配置客户端连接到上述启动的服务器(根据客户端的连接方式,可能需要配置Stdio命令或WebSocket/SSE地址)。
  3. 客户端交互: LLM客户端通过MCP协议向服务器发送请求,例如:
    • 请求服务器能力 (Declare Capabilities)
    • 调用服务器提供的工具 (Call Tool),如请求网页搜索、图像生成。
    • 请求Prompt模板 (Get Prompt) 等(本项目当前代码示例主要展示工具调用能力)。 服务器将处理这些请求并返回JSON-RPC响应。

例如,一个客户端可能会发送一个JSON-RPC请求来调用 'web_search' 工具:

{
  "jsonrpc": "2.0",
  "method": "tool.call",
  "params": {
    "tool_name": "web_search",
    "tool_args": {"query": "latest news on AI"}
  },
  "id": "req-123"
}

服务器将执行网页搜索并返回结果作为JSON-RPC响应。

注意事项

  • 确保运行环境已设置必要的API密钥。
  • 'run_vtai_server.sh' 脚本需要执行权限 ('chmod +x run_vtai_server.sh')。
  • 具体的工具功能(如网页搜索、图像生成)依赖于配置的API密钥是否有效。

信息

分类

AI与计算