LLM统一接口服务

一个提供与任何LLM后端交互的通用抽象层的MCP服务器,通过单一稳定接口实现本地或云端LLM的调用。

  • by JoshuaRamirez
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 JoshuaRamirez/llm-api-facade

使用说明

llm-api外观

一个MCP服务器,它提供了一个通用的抽象层,用于通过一个稳定的接口与任何LLM后端(本地或云)进行交互。

它的作用

一个MCP服务器表面。它背后的任何LLM。消费者使用规范化的词汇表发送生成请求。facade将其路由到配置的后端,根据需要转换参数和响应形状。

该架构有两层:

  • 第1层(通用): 标准化类型,与提供者无关。消息、内容块、令牌使用、生成参数、错误分类。在不知道哪个提供商为请求提供服务的情况下工作。
  • 第2层(扩展): 结构化、类型化、可发现的特定于提供商的功能。缓存控制、安全设置、推理配置、结构化输出保证、令牌故障。

快速开始

npm install
npm run build

服务器通过stdio进行通信。将其添加到MCP客户端配置中:

{
  "mcpServers": {
    "server": {
      "command": "node",
      "args": ["/path/to/llm-api-facade/dist/index.js"]
    }
  }
}

或者从以下网址安装为Claude Code插件 RedJay市场.

提供程序配置

设置环境变量后,提供程序会自动注册。Ollama总是在。

提供程序 环境变量 适配器
Ollama(本地) 始终在线 OpenAI兼容
OpenAI OPENAI_API_KEY OpenAI兼容性
人类学 ANTHROPIC_API_KEY 专用
谷歌双子座 GEMINI_API_KEY 专用
科恩 COHERE_API_KEY 专用
米斯特拉尔 MISTRAL_API_KEY OpenAI兼容性
xAI(格罗克) XAI_API_KEY OpenAI兼容性
vLLM VLLM_BASE_URL OpenAI兼容性
LM工作室 LMSTUDIO_BASE_URL OpenAI兼容性
llama.cpp LLAMACPP_BASE_URL OpenAI兼容性

MCP工具

工具 说明
complete 向任何LLM发送消息,接收完成。支持工具、结构化输出、所有采样参数。
stream_complete 流媒体变体。返回使用情况下的累积块。
list_models 列出已配置的提供程序。

接缝

该架构强制执行一个干净的边界—— 接缝 --在两个区域之间:

  Consumer Side          |  THE SEAM  |          Provider Side

  Layer 1: Universal     | Normalizes |  Provider-specific SDKs
  Layer 2: Extensions    | Organizes  |  Native API formats
  Typed errors           |            |  Raw error responses
  Capability discovery   |            |  Feature negotiation

第1层进行规范化(将多个形状合并为一个)。第2层组织(将特定于提供者的功能组织成类型化的、可发现的扩展)。基础设施问题(身份验证、重试、传输)永远不会交叉。

当前状态

已实施和测试(Ollama+OpenAI的50个场景):

  • 文本完成(批处理和流式传输)
  • 所有采样参数(温度、top_p、频率/存在惩罚、种子、停止序列)
  • 刀具调用(单圈、带结果的多圈、多个刀具、正确的刀具选择)
  • 结构化输出(JSON模式,带约束输出的JSON模式)
  • 内容块模型(文本块、工具使用块、工具结果块、思维块、图像块)
  • 错误分类学(4属14种)

适配器(涵盖所有11个提供商):

  • OpenAI兼容适配器:Ollama、OpenAI、Mistral、xAI、vLLM、LM Studio、llama.cpp
  • 拟人适配器:系统作为参数,内容块,角色压缩,命名为SSE流
  • Gemini适配器:基于部件的内容,“模型”角色,函数调用检测,头中的API键
  • Cohere适配器:扁平响应,大写完成原因,命名SSE事件

尚未实施:

  • 扩展系统(缓存控制、安全设置、推理配置、结构化输出、标记尾部)
  • MCP资源(models://catalog, config://state,会话://{id})
  • validate_request、estimate_tokens、get_model_info工具

文档

Documentation/
  Architecture/
    Principles.md              # 8 governing principles (dual-layer)
    DomainModel.md              # Universal concepts, behavioral contracts, the seam
    McpServerSpec.md             # MCP tools, resources, schemas, error codes (v0.3.0)
    OntologicalTaxonomy.md       # Categorical framework, cross-validated
    TypeSpecification.md         # Formal types, 48+ invariants, state machine
    SoftSpots.md                 # 13 resolved weak points with positions taken
    ToolCallingChoreography.md   # Multi-turn tool flows, 7-dimension provider divergence
    PositionPaper-*.md           # Facade as information architecture
    ExtensionCatalog.md          # 5 extensions with schemas and adapter tables
  Decisions/
    ADR-001 through ADR-007      # Architecture decision records
  Vendors/
    OpenAI, Anthropic, Gemini, Mistral/Cohere/xAI, Local Runtimes

许可证

麻省理工学院