项目简介

LLM Gateway MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在实现高能力 AI 代理(如 Claude 3.7)向更经济高效的 LLM 模型(如 Gemini Flash 2.0 Lite)的智能任务委派。它通过统一的 MCP 工具接口,为 AI 代理提供文档处理、数据提取、成本优化等功能,并支持多种 LLM 提供商,帮助用户在保证输出质量的同时显著降低 API 成本。

主要功能点

  • MCP 协议原生支持: 完全基于 Model Context Protocol 构建,与 MCP 客户端无缝集成。
  • 智能任务委派: 允许高级 AI 代理将文档处理、数据提取等任务智能委派给成本更低的 LLM 模型,实现 AI-to-AI 协作。
  • 多LLM模型支持: 统一接口支持 OpenAI、Anthropic (Claude)、Google (Gemini)、DeepSeek 等多家 LLM 提供商,并可灵活扩展。
  • 成本优化: 通过智能路由、模型选择和缓存机制,显著降低 LLM API 的使用成本。
  • 文档处理工具: 提供文档分块、摘要、实体提取等常用文档处理功能。
  • 灵活部署: 支持多种部署方式,包括 pip 安装和 Docker 容器部署。

安装步骤

  1. 克隆仓库

    git clone https://github.com/Dicklesworthstone/llm_gateway_mcp_server.git
    cd llm_gateway_mcp_server
  2. 安装 Python 包

    • 使用 pip 安装基本依赖:

      pip install -e .
    • 或安装包含所有可选依赖(如向量数据库、文档处理等)的版本:

      pip install -e .[all]
  3. 配置环境变量

    • 创建 '.env' 文件,并根据需要配置 API 密钥、服务器端口、日志级别等。以下是一个 '.env' 文件示例:

      # API Keys (至少配置一个)
      OPENAI_API_KEY=your_openai_key
      ANTHROPIC_API_KEY=your_anthropic_key
      GEMINI_API_KEY=your_gemini_key
      DEEPSEEK_API_KEY=your_deepseek_key
      
      # Server Configuration
      SERVER_PORT=8000
      SERVER_HOST=127.0.0.1
      
      # Logging Configuration
      LOG_LEVEL=INFO
      USE_RICH_LOGGING=true
      
      # Cache Configuration
      CACHE_ENABLED=true
      CACHE_TTL=86400

      注意: 请将 'your_openai_key' 等占位符替换为您实际的 API 密钥。

服务器配置

MCP 客户端需要配置 MCP 服务器的连接信息,以下是一个 JSON 格式的配置示例,您需要根据实际情况修改 'command' 和 'args' 字段:

{
  "serverName": "llm_gateway",  // MCP 服务器名称,可自定义
  "command": "python",       // 启动 MCP 服务器的命令
  "args": [
    "-m",
    "llm_gateway.cli.main",
    "run"                    // 启动服务器的子命令
  ],
  "transport": "stdio",      // 传输协议,通常使用 stdio
  "modelContextCapabilities": [  // 服务器声明的模型上下文能力
    "tool-execution",
    "resource-access",
    "prompt-templating"
  ]
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端可以通过此名称识别服务器。
  • 'command': 启动 MCP 服务器的可执行命令,这里假设您已安装 Python 环境,并使用 'python' 命令运行服务器。
  • 'args': 传递给 'command' 的参数列表。
    • '"-m"': Python 的 '-m' 参数用于运行模块,'llm_gateway.cli.main' 指定要运行的模块为 'llm_gateway.cli.main'。
    • '"run"': 'run' 是 'llm_gateway.cli.main' 模块定义的子命令,用于启动 MCP 服务器。
  • 'transport': 指定 MCP 客户端和服务器之间的传输协议,'stdio' 表示使用标准输入输出流进行通信,这是常用的简单协议。
  • 'modelContextCapabilities': 声明服务器支持的 MCP 协议能力。

基本使用方法

  1. 启动 MCP 服务器

    在仓库根目录下,执行以下命令启动 MCP 服务器:

    python -m llm_gateway.cli.main run

    或者使用 Docker 启动:

    docker compose up

    服务器默认监听 'http://localhost:8000'。

  2. 配置 MCP 客户端

    根据 MCP 客户端的具体配置方法,填入上述服务器配置信息。确保客户端能够通过 'stdio' 或其他配置的传输协议与服务器建立连接。

  3. 使用 MCP 客户端调用工具

    MCP 客户端连接成功后,即可通过客户端提供的 API 调用 LLM Gateway MCP 服务器暴露的工具,例如:

    from mcp.client import Client
    
    async def main():
        client = Client("http://localhost:8000")  # 客户端连接 MCP 服务器
    
        # 调用 generate_completion 工具生成文本
        completion_response = await client.tools.generate_completion(
            prompt="请总结一下这篇文章的主要内容。",
            provider="openai",
            model="gpt-4o-mini"
        )
        print(completion_response['text'])
    
        await client.close()
    
    if __name__ == "__main__":
        asyncio.run(main())

    更多工具的使用方法,请参考仓库 README.md 中的 "Usage Examples" 部分。

信息

分类

AI与计算