Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Qiaomu Llm

БесплатноНе проверен

A local MCP gateway that unifies multiple LLM providers, API keys, routing, and multi-model discussions into a single tool surface.

GitHubEmbed

Описание

A local MCP gateway that unifies multiple LLM providers, API keys, routing, and multi-model discussions into a single tool surface.

README

把多个 LLM Provider、API Key、模型路由和多模型讨论统一成一个本地 MCP 网关。
A local MCP gateway that turns many LLM providers, API keys, routing rules, and multi-model discussions into one tool surface.

中文 | English

适合这些场景:

  • 你同时使用 Z.ai Coding Plan、DeepSeek、OpenAI-compatible API、Anthropic-compatible API、Claude Code CLI 等多套模型。
  • 你不想把 API Key 写进提示词、脚本或 Codex 配置里。
  • 你希望在 Codex / Claude / 其他 MCP 客户端里用同一组工具完成:单模型调用、多模型对比、流水线、HeavySkill 式多轮讨论。
  • 你需要让最强的主控模型主持讨论,而不是把全部判断交给某一个 Provider。

本项目是本地优先工具:Provider 注册表保存在 ~/.config/qiaomu-llm/registry.json,密钥默认放在 macOS Keychain,MCP server 只暴露“密钥是否存在”,不会返回明文 Key。

你能得到什么

安装后,MCP 客户端会看到这些工具:

工具 作用
qllm_list_providers 列出本地配置的 Provider,并安全显示密钥状态
qllm_show_provider 查看单个 Provider 的非敏感配置
qllm_list_models 查看本地配置或远程 /models 返回的模型
qllm_route_task 不花 token,根据任务类型选择 Provider / Model
qllm_chat 调用单个 Provider
qllm_compare 用同一个问题对比多个 Provider
qllm_pipeline 串联多个模型步骤完成任务
qllm_heavy_discuss 多视角、多模型讨论,可由模型或 Codex 主持
qllm_heavy_render 把 Codex 主持后的讨论渲染成 Markdown / HTML 报告
qllm_claude_code_* 通过 MCP 安全调用本机 Claude Code CLI

推荐工作流

用户问题
  |
  +-- qllm_route_task 选择模型
  |
  +-- qllm_chat / qllm_compare / qllm_pipeline
  |
  +-- 复杂议题: qllm_heavy_discuss
        |
        +-- 多模型独立给观点
        +-- Codex 或指定模型主持
        +-- qllm_heavy_render 输出 Markdown / HTML

这套设计的核心不是“多叫几个模型凑热闹”,而是让不同模型承担不同角色:快速模型做初稿,强推理模型做审查,写作模型做表达,Codex 作为当前工作区里的主持人整合上下文和行动方案。

快速开始

1. 准备环境

要求:

  • macOS 或 Linux
  • Python 3.10+
  • 一个支持 MCP 的客户端,例如 Codex、Claude Desktop、Claude Code、Cursor 等
  • 至少一个 LLM Provider 的 API Key

克隆项目:

git clone https://github.com/joeseesun/qiaomu-llm-mcp.git
cd qiaomu-llm-mcp

如果你还没有 GitHub 版本,也可以先在本地目录安装:

cd /path/to/qiaomu-llm-mcp

2. 安装 Python 依赖

python3 -m venv .venv
.venv/bin/python -m pip install -U pip
.venv/bin/python -m pip install -e .

确认可执行文件存在:

test -x .venv/bin/qiaomu-llm-mcp && echo "qiaomu-llm-mcp installed"
.venv/bin/python -c "import qiaomu_llm_mcp; print(qiaomu_llm_mcp.__version__)"

MCP server 通常通过 stdio 被客户端启动。直接运行时它会等待 MCP 客户端消息,这是正常现象。

3. 创建 Provider 注册表

复制示例配置:

mkdir -p ~/.config/qiaomu-llm
cp examples/registry.example.json ~/.config/qiaomu-llm/registry.json

编辑 ~/.config/qiaomu-llm/registry.json,保留你要用的 Provider,删除不用的 Provider。

示例中的 Z.ai Coding Plan 使用专用 Coding endpoint:

{
  "base_url": "https://api.z.ai/api/coding/paas/v4",
  "default_model": "glm-5.2"
}

注意:Z.ai Coding Plan 要使用 https://api.z.ai/api/coding/paas/v4,不要误用通用 endpoint https://api.z.ai/api/paas/v4

4. 把 API Key 放进 Keychain

推荐使用 Keychain,不要把明文 Key 写入配置文件。

Z.ai:

security add-generic-password -U \
  -s qiaomu-llm \
  -a zai-glm \
  -w "$ZAI_API_KEY"

DeepSeek:

security add-generic-password -U \
  -s qiaomu-llm \
  -a deepseek \
  -w "$DEEPSEEK_API_KEY"

Anthropic-compatible Provider:

security add-generic-password -U \
  -s qiaomu-llm \
  -a anthropic \
  -w "$ANTHROPIC_API_KEY"

注册表里对应写法:

{
  "secret_ref": "keychain:qiaomu-llm/zai-glm"
}

也支持环境变量:

{
  "secret_ref": "env:ZAI_API_KEY"
}

但公开仓库、团队配置和长期使用建议优先 Keychain。

接入 Codex

编辑 Codex 配置文件,例如 ~/.codex/config.toml

[mcp_servers.qiaomu-llm]
command = "/absolute/path/to/qiaomu-llm-mcp/.venv/bin/qiaomu-llm-mcp"

本机示例:

[mcp_servers.qiaomu-llm]
command = "/Users/joe/Documents/qiaomu-llm-mcp/.venv/bin/qiaomu-llm-mcp"

重启 Codex 后,应该可以看到 qllm_* 工具。

接入 Claude Desktop

编辑 Claude Desktop 的 MCP 配置:

{
  "mcpServers": {
    "qiaomu-llm": {
      "command": "/absolute/path/to/qiaomu-llm-mcp/.venv/bin/qiaomu-llm-mcp"
    }
  }
}

重启客户端后,确认工具列表里出现 qllm_list_providers

基础用法

查看 Provider

{
  "params": {
    "response_format": "markdown"
  }
}

调用工具:qllm_list_providers

调用 Z.ai Coding Plan

{
  "params": {
    "provider": "zai-glm",
    "model": "glm-5.2",
    "prompt": "Reply exactly: qiaomu-llm-mcp-ok",
    "thinking_type": "disabled",
    "max_tokens": 64
  }
}

调用工具:qllm_chat

对比多个模型

{
  "params": {
    "prompt": "用三条原则解释如何开始一个可持续的冥想习惯。",
    "task_type": "writing",
    "providers": ["zai-glm", "deepseek", "aigocode-anthropic"],
    "max_providers": 3,
    "response_format": "markdown"
  }
}

调用工具:qllm_compare

多步骤流水线

{
  "params": {
    "input": "写一个面向普通人的冥想 App 产品方向。",
    "steps": [
      {
        "name": "research",
        "task_type": "research",
        "instruction": "提出用户痛点、竞争差异和核心场景。"
      },
      {
        "name": "prd",
        "task_type": "writing",
        "instruction": "把上一步整理成结构化 PRD 摘要。"
      },
      {
        "name": "review",
        "task_type": "review",
        "instruction": "审查 PRD 摘要里的风险、遗漏和过度承诺。"
      }
    ],
    "response_format": "markdown"
  }
}

调用工具:qllm_pipeline

HeavySkill 式讨论

由 Codex 主持

适合当前 Codex 已经掌握工作区、文件、用户偏好和上下文的场景。

{
  "params": {
    "question": "一个普通人如何开始冥想,并长期坚持?",
    "mode": "deliberation",
    "k": 4,
    "host_mode": "codex",
    "write_report": true,
    "write_html": true
  }
}

调用工具:qllm_heavy_discuss

工具会返回:

  • 多个模型的独立观点
  • host_prompt
  • 可选的 Markdown / HTML 初始报告

host_prompt 交给 Codex 综合后,再调用 qllm_heavy_render 输出最终报告。

由模型主持

适合想让某个强模型直接完成主持总结的场景。

{
  "params": {
    "question": "如何设计一个隐私友好的冥想 App?",
    "mode": "deliberation",
    "k": 4,
    "providers": ["zai-glm", "deepseek", "aigocode-anthropic"],
    "host_mode": "model",
    "host_provider": "aigocode-anthropic",
    "rounds": 2,
    "write_report": true,
    "write_html": true
  }
}

Claude Code CLI 工具

如果本机安装了 Claude Code CLI,本项目还提供 qllm_claude_code_* 工具。

常见用途:

  • 查看 Claude Code 能力:qllm_claude_code_capabilities
  • 查看可用模型别名和本地最近使用模型:qllm_claude_code_models
  • 非交互调用 Claude Code:qllm_claude_code_run
  • 查看 Claude Code session:qllm_claude_code_sessions

示例:用 Sonnet 4.6 写一首诗。

{
  "params": {
    "cwd": "/Users/joe/Documents/智谱",
    "prompt": "请用中文写一首 12 行现代诗,只输出诗。",
    "model": "claude-sonnet-4-6",
    "tools": [],
    "user_facing": true,
    "timeout": 300
  }
}

默认不会暴露 --dangerously-skip-permissions。需要文件编辑时,请显式设置 allowed_tools,并限制 cwd

安全与隐私边界

  • API Key 不应该写进 README、Prompt、Git 仓库或 MCP 请求参数。
  • 推荐使用 keychain:<service>/<account>;工具只返回密钥状态,不返回明文。
  • Provider 错误信息会做敏感字段脱敏,但上游服务返回的文本仍应谨慎处理。
  • qllm_claude_code_run 是本机命令执行边界,默认只允许 Read,需要编辑或 Shell 时必须显式放开。
  • HeavySkill 报告可能包含你的问题、模型输出和上下文摘要。公开分享前请人工检查。
  • 本项目不会提供云端代理服务,也不会替你保存 API Key。

故障排查

看不到 MCP 工具

确认 MCP 配置中的 command 是绝对路径:

ls -la /absolute/path/to/qiaomu-llm-mcp/.venv/bin/qiaomu-llm-mcp

然后重启 MCP 客户端。

Registry not found

创建注册表:

mkdir -p ~/.config/qiaomu-llm
cp examples/registry.example.json ~/.config/qiaomu-llm/registry.json

或设置环境变量:

export QIAOMU_LLM_REGISTRY=/path/to/registry.json

Missing Keychain secret

检查服务名和账号是否一致:

security find-generic-password -s qiaomu-llm -a zai-glm -w

如果没有,重新写入:

security add-generic-password -U -s qiaomu-llm -a zai-glm -w "$ZAI_API_KEY"

Z.ai Coding Plan 请求失败

检查三件事:

  1. base_url 是否是 https://api.z.ai/api/coding/paas/v4
  2. model 是否是你的 Coding Plan 可用模型,例如 glm-5.2
  3. Keychain 中的 zai-glm 是否写入了正确 API Key

模型列表为空

有些 Provider 的 /models endpoint 不可用,或账号不开放模型枚举。可以在 registry.json 里手动写 modelsdefault_model

本地验证

开发者可运行:

.venv/bin/python -m compileall src
.venv/bin/python -m pip install -e .

如果配置了真实 Provider,可在 MCP 客户端中运行:

{
  "params": {
    "provider": "zai-glm",
    "model": "glm-5.2",
    "prompt": "Reply exactly: ok",
    "max_tokens": 16
  }
}

路线图

  • 可选 aisuite adapter:当目标 Provider 覆盖足够稳定时再加入,不影响 Z.ai Coding Plan 专用 endpoint。
  • 更完整的安装 smoke test 脚本。
  • Provider preset 管理命令。
  • 报告模板主题和更多 HTML 输出样式。
  • 更细粒度的成本、token 和超时预算策略。

GitHub 发布

发布前的 GitHub About、topics、social preview 和验证清单见 docs/github-publish-checklist.md

维护者

Copyright (c) 向阳乔木

License

MIT License. See LICENSE.


English

qiaomu-llm-mcp is a local MCP gateway for people who use multiple LLM providers and want one safe tool surface for routing, comparison, pipelines, and multi-model deliberation.

It keeps provider metadata in ~/.config/qiaomu-llm/registry.json and recommends storing secrets in macOS Keychain. The MCP tools expose secret status, not raw API keys.

Why Use It

  • One MCP server for many providers.
  • Bring your own keys; no hosted proxy.
  • Route tasks before spending tokens.
  • Compare providers on the same prompt.
  • Chain models into practical pipelines.
  • Run HeavySkill-style discussions where multiple models produce independent views and Codex or a selected model hosts the synthesis.
  • Optionally call local Claude Code CLI through a controlled MCP wrapper.

Install

git clone https://github.com/joeseesun/qiaomu-llm-mcp.git
cd qiaomu-llm-mcp
python3 -m venv .venv
.venv/bin/python -m pip install -U pip
.venv/bin/python -m pip install -e .

Configure Providers

mkdir -p ~/.config/qiaomu-llm
cp examples/registry.example.json ~/.config/qiaomu-llm/registry.json

Store secrets in Keychain:

security add-generic-password -U -s qiaomu-llm -a zai-glm -w "$ZAI_API_KEY"

For Z.ai Coding Plan, use the Coding endpoint:

https://api.z.ai/api/coding/paas/v4

not the general endpoint:

https://api.z.ai/api/paas/v4

Codex MCP Config

[mcp_servers.qiaomu-llm]
command = "/absolute/path/to/qiaomu-llm-mcp/.venv/bin/qiaomu-llm-mcp"

Restart Codex and look for qllm_* tools.

Example Tools

  • qllm_list_providers: list configured providers and secret status.
  • qllm_chat: call one provider.
  • qllm_compare: compare several providers.
  • qllm_pipeline: run sequential model steps.
  • qllm_heavy_discuss: run multi-model deliberation.
  • qllm_heavy_render: render Codex-hosted synthesis to Markdown / HTML.
  • qllm_claude_code_run: run a bounded non-interactive Claude Code task.

Security Notes

  • Do not commit API keys.
  • Prefer Keychain refs such as keychain:qiaomu-llm/zai-glm.
  • Review generated HeavySkill reports before sharing them publicly.
  • Grant Claude Code file-editing or shell permissions only when the task needs them.

Verification

.venv/bin/python -m compileall src
.venv/bin/python -m pip install -e .

Then call qllm_list_providers from your MCP client.

Maintainer

Created and maintained by 向阳乔木.

MIT License. See LICENSE.

from github.com/joeseesun/qiaomu-llm-mcp

Установка Qiaomu Llm

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/joeseesun/qiaomu-llm-mcp

FAQ

Qiaomu Llm MCP бесплатный?

Да, Qiaomu Llm MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Qiaomu Llm?

Нет, Qiaomu Llm работает без API-ключей и переменных окружения.

Qiaomu Llm — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Qiaomu Llm в Claude Desktop, Claude Code или Cursor?

Открой Qiaomu Llm на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Qiaomu Llm with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai