使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将 vLLM (vLLM 是一个快速且易于使用的库,用于 LLM 推理和服务) 的基准测试工具集成到 MCP 生态系统中。通过该服务器,LLM 客户端可以远程调用 vLLM 基准测试,获取模型性能数据,例如吞吐量、延迟等。

主要功能点

  • 基准测试工具集成: 将 vLLM 官方提供的基准测试工具封装成 MCP Tool,可以通过 MCP 协议远程调用。
  • 性能评估: 允许用户指定 vLLM 服务地址、模型名称、benchmark 运行次数等参数,执行基准测试并返回详细的性能指标。
  • 数据集支持: 内置 ShareGPT 数据集下载和使用,方便用户进行基准测试。
  • 灵活配置: 支持配置 benchmark 工具的各种参数,例如 prompt 数量等。

安装步骤

  1. 克隆仓库: 首先,你需要克隆该 GitHub 仓库到本地:
    git clone https://github.com/Eliovp-BV/mcp-vllm-benchmark.git
    cd mcp-vllm-benchmark
  2. 安装依赖 (可选): 虽然仓库中没有明确的依赖安装步骤,但根据代码推测,你可能需要安装 'fastmcp', 'vllm' 和 'requests' 等 Python 库。建议在一个 Python 虚拟环境中安装:
    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate for Windows
    pip install fastmcp requests # benchmark_tool.py 依赖 vllm,但 server.py 似乎没有直接依赖,可能 benchmark_tool.py 会动态安装或假设 vllm 已安装。如果运行报错,请根据错误信息安装 vllm 或 benchmark_tool.py 的其他依赖。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令及其参数才能连接。以下是针对该仓库生成的 MCP 服务器配置信息(JSON 格式),请添加到你的 MCP 客户端的服务器配置中:

{
    "mcpServers": {
        "mcp-vllm": {
            "command": "uv",
            "args": [
                "run",
                "/Path/TO/mcp-vllm-benchmark/server.py"  // 将 "/Path/TO/mcp-vllm-benchmark" 替换为你的本地仓库路径
            ]
        }
    }
}

配置参数说明:

  • '"mcp-vllm"': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
  • '"command": "uv"': 启动服务器的命令,这里使用 'uv' (可能是指 'uvicorn',一个 ASGI 服务器)。你需要确保你的环境中安装了 'uvicorn' 或其他可以运行 Python ASGI 应用的服务器,并将其命令替换到这里。如果直接使用 'python' 运行,可以将 command 修改为 '"command": "python"'。
  • '"args": [...]': 启动命令的参数列表。
    • '"run"': 'uv' 命令的子命令,用于运行 ASGI 应用。如果使用 'python' 命令,则不需要此参数。
    • '"/Path/TO/mcp-vllm-benchmark/server.py"': 服务器 Python 脚本的路径。请务必将其替换为你本地 'server.py' 文件的实际路径。

如果你不熟悉 'uv' 命令,或者希望简化配置,可以将 'command' 和 'args' 修改为使用 'python' 直接运行 'server.py':

{
    "mcpServers": {
        "mcp-vllm": {
            "command": "python",
            "args": [
                "/Path/TO/mcp-vllm-benchmark/server.py"  // 同样替换为你的实际路径
            ]
        }
    }
}

基本使用方法

  1. 启动 MCP 服务器: 在配置好 MCP 客户端后,启动 'mcp-vllm' 服务器。根据你选择的配置('uv' 或 'python'),MCP 客户端会自动执行相应的命令来启动服务器。

  2. 使用 LLM 客户端调用 Tool: 在 LLM 客户端中,你可以通过自然语言指令或特定的 MCP 调用方式来使用 'benchmark_vllm' 工具。例如,根据 'README.md' 的示例,你可以向 LLM 客户端发送类似以下的指令:

    Do a vllm benchmark for this endpoint: http://10.0.101.39:8888
    benchmark the following model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
    run the benchmark 3 times with each 32 num prompts, then compare the results, but ignore the first iteration as that is just a warmup.

    LLM 客户端会将这个自然语言指令转换为对 'benchmark_vllm' 工具的 MCP 调用,并将必要的参数(例如 'base_url', 'model', 'num_prompts' 等)传递给服务器。

  3. 获取基准测试结果: MCP 服务器执行 'benchmark_vllm' 工具后,会将基准测试的结果以 JSON-RPC 响应的形式返回给 LLM 客户端。客户端可以解析并展示这些结果,例如吞吐量、延迟等性能指标。

注意:

  • 该项目目前可能还处于 Proof of Concept 阶段,可能存在一些 Bug 或不完善的地方,例如 'README.md' 中提到的 "random outputs by vllm it may show that it found some invalid json"。
  • 你需要确保 vLLM 服务已经运行,并且地址和模型配置在调用 'benchmark_vllm' 工具时是正确的。
  • benchmark 工具的具体参数和使用方式可以参考 'benchmark_tool.py' 和 'benchmark/benchmark_serving.py' 文件中的代码和注释。

信息

分类

开发者工具