
LLM Gateway MCP Server

2025.04.18
17
PythonAI 任务委派成本优化多模型集成开发效率
LLM Gateway MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,旨在实现从高能力 AI 代理(如 Claude 3.7 Sonnet)到成本效益更高的 LLM(如 Gemini Flash 2.0 Lite)的智能任务委派。它提供了一个统一的接口,支持多个大型语言模型(LLM)提供商,同时优化成本、性能和质量。
View on GitHub
Overview
产品定位
LLM Gateway MCP Server 是一个智能任务委派平台,专为 AI 代理设计,使其能够高效地委派任务到成本更低的模型,从而优化资源使用和降低成本。
核心功能
- MCP 协议集成:
- 原生 MCP 服务器,支持 AI 代理集成
- 所有功能通过标准化 MCP 工具暴露
-
支持工具组合和发现
-
智能任务委派:
- 任务路由和提供商选择
- 成本-性能平衡
-
委派跟踪
-
高级缓存:
- 多级缓存策略(精确匹配、语义相似、任务感知)
- 持久化缓存
-
缓存分析
-
文档处理工具:
- 智能分块(基于令牌、语义边界、结构分析)
-
文档操作(摘要、实体提取、问题生成、批量处理)
-
结构化数据提取:
- JSON 提取(带模式验证)
- 表提取
- 键值对提取
-
语义模式推断
-
锦标赛模式:
- 代码和文本竞赛
- 多模型比较
-
性能指标评估
-
高级向量操作:
- 语义搜索
- 向量存储和检索
- 混合搜索(关键字 + 语义)
适用场景
- AI 代理编排:
- 高级 AI 代理(如 Claude 3.7)委派任务到低成本模型
- 大规模文档处理
-
结构化数据提取
-
企业文档处理:
- 文档分块和并行处理
- 结构化数据提取
-
语义搜索
-
研究与分析:
- 比较不同模型的输出
- 高效处理研究论文
-
优化研究预算
-
模型基准测试与选择:
- 运行模型竞赛
- 生成性能指标
- 数据驱动的模型选择
使用教程
安装依赖
# 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
安装步骤
# 克隆仓库
git clone https://github.com/yourusername/llm_gateway_mcp_server.git
cd llm_gateway_mcp_server
# 使用 uv 创建虚拟环境并安装依赖
uv venv --python 3.13
source .venv/bin/activate
uv pip install -e ".[all]"
环境设置
创建 .env
文件并配置 API 密钥:
# API 密钥(至少需要一个提供商)
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_PORT=8013
SERVER_HOST=127.0.0.1
# 日志配置
LOG_LEVEL=INFO
USE_RICH_LOGGING=true
# 缓存配置
CACHE_ENABLED=true
CACHE_TTL=86400
启动服务器
# 启动 MCP 服务器
python -m llm_gateway.cli.main run
# 或使用 Docker
docker compose up
调试方式
服务器启动后,可以通过以下命令测试基本功能:
# 检查服务器健康状态
curl http://localhost:8013/healthz
# 列出可用工具(假设有 /tools 端点)
curl http://localhost:8013/tools
工具列表
- completion:基础文本补全工具
- summarize_document:文档摘要工具
- extract_entities:实体提取工具
- execute_optimized_workflow:优化工作流执行工具
- list_tools:列出可用工具的元工具
- chunk_document:文档分块工具
- multi_completion:多提供商补全比较工具
- extract_json:结构化 JSON 提取工具
- rag_query:检索增强生成查询工具
- fused_search:混合搜索工具
- process_local_text:本地文本处理工具
- run_model_tournament:模型竞赛工具
常见问题解答
- 如何减少 API 成本?
- 使用智能任务委派,将任务路由到成本更低的模型
-
启用缓存以避免冗余 API 调用
-
如何扩展支持新的 LLM 提供商?
-
服务器设计为可扩展,可以添加新的提供商集成
-
如何处理大文档?
- 使用文档分块工具将大文档分解为更小的部分
-
并行处理分块
-
如何监控服务器性能?
- 使用健康检查端点 (
/healthz
) -
配置日志级别为
DEBUG
以获取详细日志 -
如何确保数据安全?
- 使用环境变量管理 API 密钥
- 配置防火墙和反向代理以限制访问
- 定期轮换 API 密钥