mcpField
L
LLM Provider MCP

LLM Provider MCP

本地服务
github.com/manishiitgAI 与智能体1今天更新

关于 LLM Provider MCP

LLM Provider MCP 是 Go 库及可选的本地 stdio MCP 服务,用于统一调用托管模型 API 与本地编码 Agent。其 MCP 部分可将异步编码任务委派给其他 CLI Agent,并通过 SQLite 保存任务状态。

主要功能

  1. 01统一的 Go 模型接口
  2. 02支持托管 API 与本地编码 Agent
  3. 03异步任务委派与状态查询
  4. 04SQLite 持久化任务
  5. 05管理任务取消与输出

适用场景

  1. 01在 Go 应用中切换模型 API 与本地 Agent
  2. 02让一个编码 Agent 委派任务给另一个 CLI
  3. 03稍后查看异步编码任务进度与结果

MCP 相关

可选的 llm-provider-mcp 以本地 stdio MCP 服务形式运行,提供列出 Agent 与模型、启动异步任务、查询任务和取消任务的工具。任务通过 tmux 会话执行,并保存在 SQLite 中。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbllm-provider-mcp_darwin_amd64.mcpb
mcpbllm-provider-mcp_darwin_arm64.mcpb
mcpbllm-provider-mcp_linux_amd64.mcpb
mcpbllm-provider-mcp_linux_arm64.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Go 多 LLM 提供商

CI Release License: BSL 1.1

multi-llm-provider-go 是一个 Go 库,可通过一组统一的提供商接口使用托管 LLM API 和本地编码 Agent。

它支持两种互补的模型运行方式:

  • API 提供商通过常规 SDK 或 HTTP 传输方式调用托管模型,包括 OpenAI、Anthropic、Bedrock、Vertex AI、Azure 和 OpenRouter。
  • 编码 Agent 提供商通过原生 SDK 或协议会话运行 Claude Code、Codex CLI、Cursor Agent 或 Pi,同时保留其原生工具、订阅、项目上下文和已认证会话。

此代码库还包含 llm-provider-mcp,这是一个可选的 MCP 服务,用于在编码 Agent 之间委派异步工作。它是使用提供商库的一种方式,而不是该库唯一的使用场景。

为什么要构建此项目

应用应该能够为每项任务选择合适的模型和传输方式,而无需重建其编排层。

如果你想要常规的请求/响应集成、可预测的基础设施,或结构化输出、嵌入和媒体生成等模型级功能,请使用直接 API。如果你希望 Agent 能检查代码库、编辑文件、运行命令并复用现有的本地订阅,请使用编码 Agent CLI。两者都可以通过同一个 Go 模型抽象来使用。

flowchart LR
    App[Go application] --> Provider[Shared provider interfaces]
    Provider --> API[API and cloud adapters]
    Provider --> CLI[Local coding-agent adapters]
    API --> Hosted[Hosted models]
    CLI --> Native[SDK / app-server / RPC]
    CLI --> Tmux[Optional tmux sessions]
    Native --> Agents[Claude Code / Codex / Cursor / Pi]
    Tmux --> Agents
    MCP[Optional MCP server] --> CLI

支持的提供商

核心工厂 InitializeLLM 会为文本和编码 Agent 提供商返回相同的 llmtypes.Model 接口:

提供商 ID集成传输方式
openaiOpenAIOpenAI Go SDK
anthropicAnthropicAnthropic Go SDK
openrouterOpenRouter兼容 OpenAI 的 API
bedrockAWS BedrockAWS SDK
vertexGoogle Vertex AI 和 GeminiGoogle Gen AI SDK
azureAzure AI兼容 Azure/OpenAI 的 API
z-aiZ.AI兼容 OpenAI 的 API
kimiKimi/Moonshot兼容 OpenAI 的 API
minimax、minimax-coding-planMiniMax提供商 API
claude-codeClaude CodeAgent SDK;可选 tmux
codex-cliCodex CLIapp-server;可选 tmux
cursor-cliCursor AgentCursor SDK;可选 ACP 或 tmux
pi-cliPiRPC

专用工厂提供文本模型接口无法涵盖的能力:

能力提供商
嵌入OpenAI、OpenRouter、Vertex AI、Bedrock
图像生成Vertex AI、MiniMax Coding Plan、Codex CLI
视频生成Vertex AI(Veo 和 Gemini Omni)
文本转语音Vertex AI、MiniMax、ElevenLabs、Deepgram
音频转录Deepgram
音乐生成ElevenLabs、MiniMax

可通过 Vertex AI 使用 Gemini 模型,以直接访问 API;也可通过 Pi 将其作为编码 Agent 使用。旧版 Gemini CLI 适配器已移除。

常见能力

各提供商的支持情况不同,但统一接口涵盖:

  • 文本生成和流式传输
  • 工具调用和结构化输出
  • Token 用量、模型元数据、日志记录和事件发出
  • 嵌入
  • 图像输入和生成
  • 视频生成和对话式视频编辑
  • 音频生成和转录
  • 音乐生成
  • 有状态的编码 Agent 会话、续接和终端进度

快速入门:Go 库

安装模块:

go get github.com/manishiitg/multi-llm-provider-go@latest

当前模块要求 Go 1.25.12 或更高版本。

初始化提供方,并使用返回的 llmtypes.Model:

package main

import (
    "context"
    "fmt"
    "log"

    llmproviders "github.com/manishiitg/multi-llm-provider-go"
    "github.com/manishiitg/multi-llm-provider-go/llmtypes"
)

func main() {
    model, err := llmproviders.InitializeLLM(llmproviders.Config{
        Provider: llmproviders.ProviderOpenAI,
        ModelID:  "gpt-4.1-mini",
    })
    if err != nil {
        log.Fatal(err)
    }

    response, err := model.GenerateContent(
        context.Background(),
        []llmtypes.MessageContent{
            llmtypes.TextParts(llmtypes.ChatMessageTypeHuman, "Explain tmux in one sentence."),
        },
    )
    if err != nil {
        log.Fatal(err)
    }

    if len(response.Choices) == 0 {
        log.Fatal("provider returned no choices")
    }
    fmt.Println(response.Choices[0].Content)
}

设置所选提供方所需的凭据,例如 OpenAI 使用 OPENAI_API_KEY。也可以通过 Config.APIKeys 显式提供凭据。有关流式处理、工具调用、自定义日志记录、Bedrock 和 Vertex AI,请参阅示例。

配置

llmproviders.Config 用于控制提供方初始化:

字段用途
Provider选择 API、云平台或编码 CLI
ModelID选择模型;支持时将使用提供方默认值
Temperature设置支持此项的提供方的采样温度
APIKeys显式提供凭据,而非使用环境变量
MaxRetries配置所选模型的重试次数
Logger / EventEmitter接入宿主日志记录、跟踪和模型事件
Context控制初始化生命周期和取消

常见凭据来源包括:

提供方环境变量或原生身份验证
OpenAIOPENAI_API_KEY
AnthropicANTHROPIC_API_KEY
OpenRouterOPENROUTER_API_KEY
AWS Bedrock标准 AWS 凭据链和 AWS_REGION
Vertex AIVERTEX_API_KEY、GOOGLE_API_KEY 或 Google 应用凭据
Azure AIAZURE_AI_ENDPOINT 和 AZURE_AI_API_KEY
Z.AI / KimiZAI_API_KEY、KIMI_API_KEY
MiniMaxMINIMAX_API_KEY 或 MINIMAX_CODING_PLAN_API_KEY
ElevenLabs / DeepgramELEVENLABS_API_KEY、DEEPGRAM_API_KEY
编码 Agent CLI现有的原生 CLI 登录信息或提供方配置

常见提供方凭据请参阅 .env.example。模型、端点、回退和测试专用变量的文档,位于使用这些变量的提供方适配器和测试旁。

更改传输方式时,从更改提供方开始:

config.Provider = llmproviders.ProviderAnthropic  // direct API
config.Provider = llmproviders.ProviderBedrock    // cloud API
config.Provider = llmproviders.ProviderCodexCLI   // local coding agent
config.Provider = llmproviders.ProviderCursorCLI  // local coding agent

有界的编码 Agent 调用可以自动使用进程工作目录和临时会话。长期运行的宿主应用应显式传入 CodingAgentWorkingDirOption、CodingAgentInteractiveSessionOption 和 CodingAgentPersistentInteractiveOption。提供方专用选项还可控制模型、审批策略、恢复 ID、工具和流式处理行为。

编码 Agent 传输方式

编码 Agent 适配器可将原生编码 CLI 转换为提供方,而无需重新实现其 Agent 循环。它们使用各 CLI 现有的登录和模型访问方式,并在本地项目中通过该 CLI 的原生文件和 Shell 工具运行。

原生 SDK 和协议传输方式是默认选项。需要终端会话时,请显式使用 tmux:

提供方默认值环境变量覆盖项
Claude CodeSDKCLAUDE_CODE_TRANSPORT=sdk 或 tmux
Codexapp-serverCODEX_CLI_TRANSPORT=app-server 或 tmux
CursorSDKCURSOR_CLI_TRANSPORT=sdk、acp 或 tmux
PiRPC无终端传输方式

在后端设置这些变量,然后重启后端。原生启动失败时,不会自动切换到 tmux。SDK 模式需要 Node.js 和对应的 @anthropic-ai/claude-agent-sdk 或 @cursor/sdk 包。适配器会先在受管理的 CLI 安装前缀中查找,再查找全局 npm 前缀;也支持显式设置 CLAUDE_AGENT_SDK_PATH 和 CURSOR_SDK_PATH 覆盖路径。

CLI提供方 ID身份验证
Claude Codeclaude-code现有 Claude Code 登录或限定范围的 OAuth 令牌
Codex CLIcodex-cli现有 Codex 登录
Cursor Agentcursor-cli现有 Cursor 登录
Pi CLIpi-cli现有 Pi/提供方配置

可选 tmux 传输方式的要求:

  • macOS 或 Linux
  • tmux 3.x 或更高版本
  • 至少安装并完成身份验证的一个编码 CLI

该库提供会话生命周期、恢复、输入、中断、窗格捕获和清理辅助函数,方便宿主应用将编码 Agent 纳入自身工作流进行管理。

模块布局

multi-llm-provider-go/
├── providers.go                 # Provider IDs, configuration, initialization
├── provider_*.go                # Shared provider behavior and media factories
├── interfaces/                  # Logging, events, and public support contracts
├── llmtypes/                    # Messages, responses, tools, streams, options
├── pkg/adapters/                # API, cloud, media, and coding-CLI adapters
├── pkg/codingagentjob/          # Durable asynchronous job execution
├── pkg/codingagentmcp/          # Optional MCP tool surface
├── pkg/tmuxcapture/             # Terminal progress capture and cleanup
├── cmd/llm-chat/                # Local provider chat client
├── cmd/llm-test/                # Manual provider contract runner
└── cmd/llm-provider-mcp/        # Optional delegation MCP server

llmtypes.Model 是文本请求/响应的核心接口。其他接口涵盖嵌入、图像生成、视频生成、音频生成与转录,以及音乐生成。

可选:通过 MCP 进行异步委派

llm-provider-mcp 将编码 Agent 提供方打包为本地 stdio MCP 服务。Codex 或 Claude Code 宿主可以在另一个编码 CLI 中排入任务,继续工作,之后再获取结果。任务会持久化到 SQLite 中,并在分离的 tmux 会话中执行。

在需要进行委派的项目中安装:

curl -fsSL https://raw.githubusercontent.com/manishiitg/llm-provider-mcp/main/scripts/install-mcp.sh | sh

设置过程会检测已安装的 CLI,为当前项目注册所选的宿主和目标,验证身份验证,并安装委派技能。该服务也已发布在官方 MCP Registry,名称为 io.github.manishiitg/llm-provider-mcp。

它提供五个工具:

工具用途
list_coding_agents列出已启用的目标及其功能
list_coding_agent_models探测可用的模型选择器
delegate_coding_agent启动异步编码任务
get_coding_agent_job查看进度、终端输出或最终结果
cancel_coding_agent_job停止已排队或正在运行的任务

完整的 MCP 工作流请参阅安装和委派工作流。

安全与信任

  • 直接 API 凭据保留在宿主进程中,或由提供方的常规凭据链管理。
  • 编码 Agent 凭据由原生 CLI 管理。
  • 由 tmux 承载的 Agent 拥有本地用户的文件系统和进程权限;tmux 是一种传输方式,并非沙盒。
  • 编码 Agent 可以修改工作树并运行命令。接受委派的更改前,请先审查并测试。
  • LLM_PROVIDER_MCP_WORKSPACE_ROOTS 可以限制 MCP 服务接受的目录,但不会创建操作系统沙盒。

在敏感代码仓库中启用无人值守的编码 Agent 执行之前,请阅读安全与信任。在共享 Linux 主机上,请使用每个用户自己的 Linux 账户运行其 CLI:Slot launches。

测试与覆盖率

由于托管 API 和终端 TUI 的故障方式各不相同,仓库采用了多层测试:

层级验证内容常规 CI
单元测试和适配器测试请求转换、事件解析、元数据、定价、选项、清理是
回放和固定数据测试无需网络访问即可测试提供商响应和终端记录是
契约测试API 提供商和编码 Agent 之间的共享行为是
真实 API 测试身份验证、实时响应格式、流式传输、工具、媒体选择性启用
真实编码 Agent 端到端测试tmux 启动、提示词、工具、恢复、实时输入、取消、隔离选择性启用
下游编译检查与 MCP Agent 和 MCP Agent Builder 的公共 API 兼容性是

API 提供商的覆盖情况并不一致。以下清单反映了仓库中目前已有的测试和手动命令:

提供商确定性或回放覆盖选择性启用的实时 Go 测试手动 llm-test 命令
OpenAI是是是
Anthropic是是是
Bedrock是是是
Vertex AI是是是
Azure AI回放尚未提供是
OpenRouter回放尚未提供是
Z.AI有限是是
Kimi模型元数据是尚未提供
MiniMax是需提供凭据是
ElevenLabs / Deepgram尚未提供尚未提供尚未提供

“是”并不表示已覆盖所有功能。 API 提供商测试契约 按功能区分了自动化 Go 测试、回放/手动冒烟测试覆盖、部分覆盖和已知缺口。

编码 Agent 认证套件覆盖了所有四个活跃的 CLI 提供商:

契约领域Claude CodeCodex CLICursor AgentPi CLI
tmux 启动和工作目录✓✓✓✓
原生系统指令和提示词粘贴✓✓✓✓
终端进度和完成检测✓✓✓✓
MCP 桥接和工具策略✓✓✓✓
持久会话和续接✓✓✓✓
实时输入、取消和清理✓✓✓✓
并行/会话隔离✓✓✓✓

编码 Agent 矩阵列出了会阻止发布的契约领域。更广泛的非 P0 认证缺口仍会在 knownCertificationGaps 中明确跟踪。这些检查并不保证所有上游 CLI 版本的行为都一致。真实测试需要通过明确的环境变量启用,并要求登录相应的 CLI 或提供商凭据。

运行离线测试套件并构建手动测试客户端:

go test -p 1 ./...
make build
./bin/llm-test --help

各提供商的详细覆盖情况和真实测试命令见:

代码质量与密钥扫描

项目使用 golangci-lint 进行静态分析,并使用 gitleaks 扫描密钥:

make lint
make scan-secrets

文档

开发

make build
make build-mcp
go test -p 1 ./...
golangci-lint run --timeout=5m ./...

CI 还会针对当前检出版本对 MCP Agent 和 MCP Agent Builder 进行编译检查,以防意外破坏公共 API。

提交拉取请求前,请参阅 CONTRIBUTING.md。安全问题请通过 SECURITY.md 报告,不要提交公开问题。

许可证

multi-llm-provider-go 自 2026-10-09 起依据 Business Source License 1.1 提供源代码。你可以将其用于个人项目、开发、测试、评估、教育和研究,并阅读、修改和运行它。将其用于企业运营或向他人提供,需要商业许可证:请通过 agentworkshq.com/about 联系我们。每个版本都会在许可证中规定的变更日期转换为 Apache License 2.0。2026-10-09 之前发布的版本仍依据 MIT License 提供。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。