
LLM Gateway MCP Server
一个 MCP 原生服务器,能够实现从 Claude 等高级 AI 代理到更具成本效益的 LLM 的智能任务委派,在优化成本的同时保持输出质量。
README
LLM Gateway MCP 服务器
<div align="center">
一个模型上下文协议 (MCP) 服务器,支持从高能力 AI 代理到高性价比 LLM 的智能委派
</div>
什么是 LLM Gateway?
LLM Gateway 是一个 MCP 原生服务器,它支持从像 Claude 3.7 Sonnet 这样的高级 AI 代理智能地委派任务给像 Gemini Flash 2.0 Lite 这样更具成本效益的模型。它提供了一个统一的接口来连接多个大型语言模型 (LLM) 提供商,同时优化成本、性能和质量。
MCP 原生架构
该服务器构建于 模型上下文协议 (MCP) 之上,专门设计用于与像 Claude 这样的 AI 代理协同工作。所有功能都通过 MCP 工具公开,这些工具可以被这些代理直接调用,从而为 AI 到 AI 的委派创建一个无缝的工作流程。
主要用例:AI 代理任务委派
LLM Gateway 的主要设计目标是允许像 Claude 3.7 Sonnet 这样复杂的 AI 代理智能地将任务委派给成本较低的模型:
委派给
┌─────────────┐ ────────────────────────► ┌───────────────────┐ ┌──────────────┐
│ Claude 3.7 │ │ LLM Gateway │ ───────►│ Gemini Flash │
│ (代理) │ ◄──────────────────────── │ MCP 服务器 │ ◄───────│ DeepSeek │
└─────────────┘ 返回结果 └───────────────────┘ │ GPT-4o-mini │
└──────────────┘
示例工作流程:
- Claude 识别出需要总结一份文档(使用 Claude 进行此操作成本很高)
- Claude 通过 MCP 工具将此任务委派给 LLM Gateway
- LLM Gateway 将摘要任务路由到 Gemini Flash(比 Claude 便宜 10-20 倍)
- 摘要返回给 Claude 以进行更高级别的推理和决策
- 然后,Claude 可以将其能力集中在真正需要其智能的任务上
这种委派模式可以节省 70-90% 的 API 成本,同时保持输出质量。
为什么使用 LLM Gateway?
🔄 AI 到 AI 的任务委派
最强大的用例是使高级 AI 代理能够将例行任务委派给更便宜的模型:
- 让 Claude 3.7 使用 GPT-4o-mini 进行初始文档摘要
- 让 Claude 使用 Gemini 2.0 Flash light 进行数据提取和转换
- 允许 Claude 协调跨不同提供商的多阶段工作流程
- 使 Claude 能够为每个特定子任务选择合适的模型
💰 成本优化
高级模型的 API 成本可能很高。LLM Gateway 通过以下方式帮助降低成本:
- 将适当的任务路由到更便宜的模型(例如,0.01 美元/1K tokens vs 0.15 美元/1K tokens)
- 实施高级缓存以避免冗余 API 调用
- 跟踪和优化跨提供商的成本
- 启用具有成本意识的任务路由决策
🔄 提供商抽象
通过统一的接口避免提供商锁定:
- OpenAI、Anthropic (Claude)、Google (Gemini) 和 DeepSeek 的标准 API
- 一致的参数处理和响应格式
- 无需更改应用程序代码即可更换提供商的能力
- 防止特定于提供商的中断和限制
📄 大规模文档处理
高效处理大型文档:
- 将文档分解为语义上有意义的块
- 跨多个模型并行处理块
- 从非结构化文本中提取结构化数据
- 从大型文本中生成摘要和见解
主要特性
MCP 协议集成
- 原生 MCP 服务器:构建于模型上下文协议之上,用于 AI 代理集成
- MCP 工具框架:所有功能都通过标准化的 MCP 工具公开
- 工具组合:工具可以组合用于复杂的工作流程
- 工具发现:支持工具列表和能力发现
智能任务委派
- 任务路由:分析任务并路由到适当的模型
- 提供商选择:根据任务要求选择提供商
- 成本-性能平衡:优化成本、质量或速度
- 委派跟踪:监控委派模式和结果
高级缓存
- 多级缓存:多种缓存策略:
- 精确匹配缓存
- 语义相似性缓存
- 任务感知缓存
- 持久缓存:基于磁盘的持久性,具有快速的内存访问
- 缓存分析:跟踪节省和命中率
文档工具
- 智能分块:多种分块策略:
- 基于 Token 的分块
- 语义边界检测
- 结构分析
- 文档操作:
- 摘要
- 实体提取
- 问题生成
- 批量处理
结构化数据提取
- JSON 提取:提取具有模式验证的结构化 JSON
- 表格提取:以多种格式提取表格
- 键值提取:从文本中提取键值对
- 语义模式推断:从文本生成模式
使用示例
Claude 使用 LLM Gateway 进行文档分析
此示例展示了 Claude 如何使用 LLM Gateway 通过将任务委派给更便宜的模型来处理文档:
import asyncio
from mcp.client import Client
async def main():
# Claude 将使用此客户端连接到 LLM Gateway
client = Client("http://localhost:8000")
# Claude 可以识别需要处理的文档
document = "... large document content ..."
# 步骤 1:Claude 委派文档分块
chunks_response = await client.tools.chunk_document(
document=document,
chunk_size=1000,
method="semantic"
)
print(f"Document divided into {chunks_response['chunk_count']} chunks")
# 步骤 2:Claude 将摘要委派给更便宜的模型
summaries = []
total_cost = 0
for i, chunk in enumerate(chunks_response["chunks"]):
# 使用 Gemini Flash(比 Claude 便宜得多)
summary = await client.tools.summarize_document(
document=chunk,
provider="gemini",
model="gemini-2.0-flash-lite",
format="paragraph"
)
summaries.append(summary["summary"])
total_cost += summary["cost"]
print(f"Processed chunk {i+1} with cost ${summary['cost']:.6f}")
# 步骤 3:Claude 将实体提取委派给另一个便宜的模型
entities = await client.tools.extract_entities(
document=document,
entity_types=["person", "organization", "location", "date"],
provider="openai",
model="gpt-4o-mini"
)
total_cost += entities["cost"]
print(f"Total delegation cost: ${total_cost:.6f}")
# Claude 现在将使用其高级功能处理这些摘要和实体
# 完成后关闭客户端
await client.close()
if __name__ == "__main__":
asyncio.run(main())
用于决策的多提供商比较
# Claude 可以比较来自不同提供商的输出以进行关键任务
responses = await client.tools.multi_completion(
prompt="Explain the implications of quantum computing for cryptography.",
providers=[
{"provider": "openai", "model": "gpt-4o-mini", "temperature": 0.3},
{"provider": "anthropic", "model": "claude-3-haiku-20240307", "temperature": 0.3},
{"provider": "gemini", "model": "gemini-2.0-pro", "temperature": 0.3}
]
)
# Claude 可以分析这些响应并决定哪个最准确
for provider_key, result in responses["results"].items():
if result["success"]:
print(f"{provider_key} Cost: ${result['cost']}")
成本优化工作流程
# Claude 可以定义和执行复杂的多阶段工作流程
workflow = [
{
"name": "Initial Analysis",
"operation": "summarize",
"provider": "gemini",
"model": "gemini-2.0-flash-lite",
"input_from": "original",
"output_as": "summary"
},
{
"name": "Entity Extraction",
"operation": "extract_entities",
"provider": "openai",
"model": "gpt-4o-mini",
"input_from": "original",
"output_as": "entities"
},
{
"name": "Question Generation",
"operation": "generate_qa",
"provider": "deepseek",
"model": "deepseek-chat",
"input_from": "summary",
"output_as": "questions"
}
]
# 执行工作流程
results = await client.tools.execute_optimized_workflow(
documents=[document],
workflow=workflow
)
print(f"Workflow completed in {results['processing_time']:.2f}s")
print(f"Total cost: ${results['total_cost']:.6f}")
快速开始
安装
# 克隆存储库
git clone https://github.com/yourusername/llm_gateway_mcp_server.git
cd llm_gateway_mcp_server
# 使用 pip 安装
pip install -e .
# 或者安装可选依赖项
pip install -e .[all]
环境设置
创建一个包含 API 密钥的 .env
文件:
# 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=8000
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
运行后,服务器将在 http://localhost:8000
上可用。
通过委派节省成本
使用 LLM Gateway 进行委派可以显著节省成本:
任务 | Claude 3.7 直接 | 委派给更便宜的 LLM | 节省 |
---|---|---|---|
总结 100 页文档 | $4.50 | $0.45 (Gemini Flash) | 90% |
从 50 条记录中提取数据 | $2.25 | $0.35 (GPT-4o-mini) | 84% |
生成 20 个内容创意 | $0.90 | $0.12 (DeepSeek) | 87% |
处理 1,000 个客户查询 | $45.00 | $7.50 (混合委派) | 83% |
通过让 Claude 专注于高级推理和协调,同时将机械任务委派给具有成本效益的模型,从而在保持高质量输出的同时实现这些节省。
架构
MCP 集成如何工作
LLM Gateway 本机构建于模型上下文协议之上:
- MCP 服务器核心:网关实现了一个完整的 MCP 服务器
- 工具注册:所有功能都作为 MCP 工具公开
- 工具调用:Claude 和其他 AI 代理可以直接调用这些工具
- 上下文传递:结果以 MCP 的标准格式返回
这确保了与 Claude 和其他 MCP 兼容代理的无缝集成。
组件图
┌─────────────┐ ┌───────────────────┐ ┌──────────────┐
│ Claude 3.7 │ ────────► LLM Gateway MCP │ ────────► LLM 提供商│
│ (代理) │ ◄──────── 服务器 & 工具 │ ◄──────── (多个) │
└─────────────┘ └───────┬───────────┘ └──────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Completion │ │ Document │ │ Extraction │ │
│ │ Tools │ │ Tools │ │ Tools │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Optimization │ │ Core MCP │ │ Analytics │ │
│ │ Tools │ │ Server │ │ Tools │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Cache │ │ Vector │ │ Prompt │ │
│ │ Service │ │ Service │ │ Service │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
委派的请求流程
当 Claude 将任务委派给 LLM Gateway 时:
- Claude 发送一个 MCP 工具调用请求
- 网关通过 MCP 协议接收请求
- 适当的工具处理请求
- 缓存服务检查结果是否已被缓存
- 如果未缓存,优化服务将选择适当的提供商/模型
- 提供商层将请求发送到选定的 LLM API
- 响应被标准化、缓存,并记录指标
- MCP 服务器将结果返回给 Claude
详细功能文档
提供商集成
-
多提供商支持:对以下提供商的一流支持:
- OpenAI (GPT-4o-mini, GPT-4o, GPT-4o mini)
- Anthropic (Claude 3.7 系列)
- Google (Gemini Pro, Gemini Flash, Gemini Flash Light)
- DeepSeek (DeepSeek-Chat, DeepSeek-Reasoner)
- 用于添加新提供商的可扩展架构
-
模型管理:
- 基于任务要求的自动模型选择
- 模型性能跟踪
- 提供商中断的后备机制
成本优化
-
智能路由:根据以下因素自动选择模型:
- 任务复杂性要求
- 预算限制
- 性能优先级
- 历史性能数据
-
高级缓存系统:
- 多种缓存策略(精确、语义、基于任务)
- 每个任务类型可配置的 TTL
- 具有快速内存查找的持久缓存
- 缓存统计信息和成本节省跟踪
文档处理
-
智能文档分块:
- 多种分块策略(基于 Token、语义、结构)
- 用于上下文保留的重叠配置
- 高效处理非常大的文档
-
文档操作:
- 摘要(具有可配置的格式)
- 实体提取
- 问答对生成
- 具有并发控制的批量处理
数据提取
- 结构化数据提取:
- 具有模式验证的 JSON 提取
- 表格提取(JSON、CSV、Markdown 格式)
- 键值对提取
- 语义模式推断
向量操作
-
嵌入服务:
- 高效的文本嵌入生成
- 嵌入缓存以降低 API 成本
- 用于提高性能的批量处理
-
语义搜索:
- 查找语义上相似的内容
- 可配置的相似度阈值
- 快速向量操作
系统功能
-
丰富的日志记录:
- 使用 Rich 的美观控制台输出
- 不同操作的表情符号指示器
- 详细的上下文信息
- 日志条目中的性能指标
-
流式传输支持:
- 跨所有提供商的一致流式传输接口
- 逐个 Token 交付
- 流式传输期间的成本跟踪
真实世界的用例
AI 代理编排
Claude 或其他高级 AI 代理可以使用 LLM Gateway 来:
- 将例行任务委派给更便宜的模型
- 并行处理大型文档
- 从非结构化文本中提取结构化数据
- 生成草稿以供审查和改进
企业文档处理
高效处理大型文档集合:
- 将文档分解为有意义的块
- 跨最佳模型分配处理
- 大规模提取结构化数据
- 在文档中实施语义搜索
研究与分析
研究团队可以使用 LLM Gateway 来:
- 比较来自不同模型的输出
- 高效处理研究论文
- 从研究中提取结构化信息
- 跟踪 Token 使用情况并优化研究预算
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。