GLM Subagent
БесплатноНе проверенUses GLM (Zhipu/Z.ai) as a ~10x cheaper file-editing subagent for AI coding agents.
Описание
Uses GLM (Zhipu/Z.ai) as a ~10x cheaper file-editing subagent for AI coding agents.
README
GLM (Zhipu / Z.ai) as a ~10x cheaper delegate for your AI coding agent. Your expensive
main model — Claude Opus, Copilot's default, or Codex — orchestrates and reviews; GLM does
the actual work, billed on cheap GLM tokens. GLM exposes an Anthropic-compatible /v1/messages
endpoint, so it drops into anything that already speaks Anthropic. This repo wraps it as an
MCP server with four tools, plus one-command installers for Claude Code, GitHub Copilot,
and Codex. The same server powers every edition.
How it works
flowchart TD
You["You"]
Main["Main agent (Claude Opus / Copilot / Codex)<br/>orchestrates + reviews"]
Srv["glm MCP server (stdio)<br/>4 tools"]
Rt["Router<br/>peak-aware model pick + cost bias"]
Zai[/"Z.ai Anthropic endpoint<br/>POST /v1/messages"/]
Loop["glm_agent tool loop<br/>read_file / write_file / edit_file<br/>list_dir / run_bash — on your repo"]
Led[("usage.jsonl<br/>every GLM call: model + tokens")]
Repo[("your repo")]
You --> Main -->|"glm_agent(task, workdir)"| Srv
Srv --> Rt --> Zai
Zai -->|"tool calls"| Loop
Loop -->|"tool results"| Zai
Loop -->|"reads / writes / runs"| Repo
Zai --> Led
Srv -->|"summary + GLM STATS<br/>(model, tokens, est. cost)"| Main
Main -->|"review · diff · revert"| You
Plain-English walkthrough:
- You ask the main agent for work.
- The main agent delegates via
glm_agent— it passes a goal plus an absoluteworkdir. - The server's router picks a GLM model (peak-aware) and calls the Z.ai
/v1/messagesendpoint; the cost bias keeps GLM the default. - GLM runs its own agent loop (
read_file/write_file/edit_file/list_dir/run_bash) directly against your repo, then stops with a summary. - The server returns a concise summary + a
GLM STATSblock (model, tokens, est. cost) to the main agent. - The main agent reviews; every GLM call is also appended to the
usage.jsonlledger.
Token economics. Delegated work bills GLM tokens (~10x cheaper). The main model only pays for orchestration + review. A near-100% GLM share requires the full-GLM launcher (claude/glm-code.mjs), because a hybrid main agent always carries per-turn session context — that context is the floor on its token share.
The four tools
| Tool | Cost | What it does |
|---|---|---|
glm_agent |
GLM tokens | GLM as a real coding agent in your repo (read/write/edit/run). dry_run: true previews a diff and writes nothing; after a real run a git-checkpoint revert line is printed. |
glm_delegate |
GLM tokens (opt-in) | Pure text generation — text in, text out. Hidden by default (glm_agent handles text-only tasks too); set GLM_DELEGATE=on to expose it. |
glm_recommend |
free (local) | GLM-vs-main-model advisory: which engine, which GLM model, confidence, and reasons. No GLM call. |
glm_status |
free (local) | Peak window, active model, usage-ledger totals (proof of GLM spend), and config health. No GLM call. |
Live progress. glm_agent streams MCP progress notifications while it runs —
current iteration, token count, and tok/s — shown live in Claude Code and mapped to
tool.execution_progress in VS Code Copilot. This heartbeat also keeps long calls alive on clients that
reset their timeout on progress, and cancelling a run stops GLM promptly (partial changes are shown
and revertable). max_tokens defaults to auto (uncapped/generous; the orchestrating agent may
pass a number to cap a call). The server uses an idle/stall timeout (GLM_STALL_TIMEOUT_MS, 2 min),
so an actively-streaming turn is never cut off. If a very long run is still cancelled by your client's
tool-call timeout, raise it with MCP_TOOL_TIMEOUT / CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT.
Install
(a) Claude Code
npx glm-mcp-claude --key YOUR_ZAI_KEY
Installs globally by default (user-scoped): the MCP server, a full-tool glm subagent, a
PreToolUse auto-routing hook, and an optional glm-code full-GLM launcher. Restart
Claude Code, then run glm_status to confirm api_key_loaded: true.
Full details: claude/README.md.
(b) GitHub Copilot / VS Code
npx glm-mcp-copilot --key YOUR_ZAI_KEY # current workspace
npx glm-mcp-copilot --global --key YOUR_ZAI_KEY # every workspace
Installs the MCP server in agent mode, a GLM custom agent (subagent), a PreToolUse
auto-routing hook, and delegation instructions files. Reload the VS Code window, open
Copilot Chat in Agent mode, start the glm server.
Full details: copilot/README.md.
(c) Codex
Install the published Codex package:
npx glm-mcp-codex --key YOUR_ZAI_KEY
Installs a Codex MCP registration, a glm custom agent, the glm-delegate skill, and an advisory
UserPromptSubmit/PreToolUse hook. The config gives GLM tools a 30-minute timeout and prompts before
mutating calls. Restart Codex, review the hook with /hooks, and run glm_status.
Full details: codex/README.md.
(d) Any MCP client / Glama / Docker
The standalone glm-mcp package — no installer needed for Cursor, Windsurf, Claude Desktop, Glama, etc.:
{
"mcpServers": {
"glm": {
"command": "npx",
"args": ["-y", "glm-mcp"],
"env": { "GLM_API_KEY": "YOUR_ZAI_KEY" }
}
}
}
For containers, the repo-root Dockerfile runs the same server:
docker build -t glm-mcp .
docker run --rm -i -e GLM_API_KEY=YOUR_ZAI_KEY glm-mcp
The server boots and answers MCP introspection without a key — set GLM_API_KEY only for
actual GLM calls.
Editions at a glance
| Claude Code -> claude/ | GitHub Copilot (VS Code) -> copilot/ | Codex -> codex/ | |
|---|---|---|---|
| npm package | glm-mcp-claude |
glm-mcp-copilot |
glm-mcp-codex |
| Install | npx glm-mcp-claude --key ... |
npx glm-mcp-copilot --key ... (+ --global) |
npx glm-mcp-codex --key ... |
| MCP server | user-scoped (claude mcp add glm -s user) |
VS Code agent mode (mcp.json) |
~/.codex/config.toml (or trusted project config) |
| Subagent | glm subagent (~/.claude/agents/glm.md) |
GLM custom agent (glm.agent.md) |
glm custom agent (~/.codex/agents/glm.toml) |
| Auto-routing hook | PreToolUse, Task matcher (glm_subagent_router.mjs) |
PreToolUse, fires on all calls (glm_router_hook.mjs) |
UserPromptSubmit + PreToolUse, advisory only |
| Delegation policy | appended to ~/.claude/CLAUDE.md |
.instructions.md files |
glm-delegate skill + optional AGENTS.md snippet |
| Full-GLM launcher | glm-code.mjs (Claude only) |
— | |
| Docs | claude/README.md | copilot/README.md | codex/README.md |
Parity. All three editions expose the same four tools and a subagent while using the same
server underneath. Codex uses its native custom-agent, skill, and hook surfaces; its hook is advisory
only and must be trusted by the user. Only Claude ships the standalone glm-code full-GLM launcher.
Configuration
All knobs live in .env (git-ignored). Location per edition: Claude
~/.claude/glm-mcp/.env (set during install); Copilot ~/.glm-mcp/glm-mcp/.env; Codex
~/.codex/glm-mcp/.env. Codex sets tool_timeout_sec = 1800 because its default MCP tool timeout is
60 seconds. Full reference with comments: claude/glm-mcp/.env.example.
| Var | Default | Meaning |
|---|---|---|
GLM_API_KEY |
— | Your Z.ai / Zhipu GLM Coding Plan key. Required for GLM calls. |
GLM_BASE_URL |
https://api.z.ai/api/anthropic |
Anthropic-compatible endpoint (/v1/messages). |
GLM_USE_HAIKU |
off |
off calls GLM directly so all tokens stay on GLM; on allows the Haiku-orchestrated subagent (spends some Claude tokens). |
GLM_COST_BIAS |
7 |
How hard to favor GLM. 7 ≈ 98–100% of eligible tasks to GLM. Lower (e.g. 1.5) to send more hard tasks to the main model; 0 = capability only. |
GLM_MAX_CONCURRENT |
1 |
GLM caps in-flight requests (~1); keep at 1 unless your tier allows more. |
GLM_CAP |
off |
off = generous (up to GLM_MAX_TOKENS_CEILING); on enforces GLM_MAX_TOKENS. |
GLM_MAX_TOKENS |
32768 |
Hard per-call limit applied only when GLM_CAP=on. |
GLM_MAX_TOKENS_CEILING |
131072 |
Generous default used when the cap is off. |
GLM_MAX_RETRIES |
4 |
Retries on 429 / concurrency / 5xx with exponential backoff. |
GLM_TIMEOUT_MS |
300000 |
Per GLM HTTP request timeout (5 min). |
GLM_AGENT_MAX_ITERS |
30 |
Max tool-loop turns for glm_agent before it stops. |
GLM_AGENT_BASH_TIMEOUT_MS |
120000 |
Per-run_bash command timeout inside glm_agent. |
GLM_OFFPEAK_MODEL |
glm-5.2 |
Candidate model(s) for auto off-peak. Comma list allowed; router auto-picks. |
GLM_PEAK_MODEL |
glm-5.2 |
Candidate model(s) for auto at peak. Comma list allowed; include a no-surcharge model (e.g. glm-4.7) to dodge the peak tax. |
GLM_CHEAP_MODEL |
glm-4.5-air |
The cheap model (used in the full-GLM launcher's Haiku slot). |
GLM_PEAK_START_CN |
14 |
Peak window start, China hour (UTC+8). |
GLM_PEAK_END_CN |
18 |
Peak window end (exclusive), China hour (UTC+8). |
Peak-aware routing & cost
China peak window is 14:00–18:00 (UTC+8). The glm-5.x family carries a surcharge at peak
(~3x peak / ~2x off-peak), so when auto lands on a glm-5.x model at peak the router routes
less work to GLM; if you list a no-surcharge model (e.g. GLM_PEAK_MODEL=glm-5.2,glm-4.7) the
router prefers it at peak and GLM stays fine to use. The cost bias keeps GLM the default either
way — even at peak it is cheaper than the main model.
What stays on the main model: sensitive / secret code, vision input, parallel fan-out,
128K context, latency-tight loops, and heavy dependent tool-loops (the router's hard overrides).
Proof it's really GLM
usage.jsonlledger — every GLM call is appended on disk withmodel+input_tokens+output_tokens. Claude:~/.claude/glm-mcp/usage.jsonl; Copilot:~/.glm-mcp/glm-mcp/usage.jsonl. Independent of the Z.ai dashboard.glm_status— prints the cumulative ledger totals (calls, tokens, per-model counts).=== GLM STATS ===block — printed after everyglm_agentrun: model, tokens delegated, iterations, files changed, est. cost vs Opus.
If the ledger is empty, GLM was never called — the work ran on the main model.
Oversight & safety
dry_run: trueonglm_agent— GLM proposes a full diff and writes nothing; approve before applying.- Git checkpoint revert line — printed after every real
glm_agentrun (when the workdir is a git repo), so you can undo in one command. - Key isolation —
GLM_API_KEYlives only in the git-ignored.env; it is never baked into the npm packages (scripts/publish-server.mjsscans every pack for.env/usage.jsonl/node_modulesand fails loudly). - Data residency — GLM traffic goes to Z.ai servers in China. Keep secrets and regulated code
on the main model; the router's
sensitiveflag forces it there.
Development / CI
CI (see .github/workflows/ci.yml) runs: syntax checks on the server
and every installer/hook/script, the keyless stdio smoke (scripts/smoke-stdio.mjs)
that asserts the four-tool MCP handshake with no key on disk, a Docker introspection test
(initialize piped into the built image), and an npm-pack secret scan
(scripts/publish-server.mjs). PRs welcome — see
CONTRIBUTING.md.
License
MIT © djerok · Canonical repo: https://github.com/djerok/glm-mcp
Установить GLM Subagent в Claude Desktop, Claude Code, Cursor
unyly install glm-subagentСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add glm-subagent -- npx -y glm-mcpПошаговые гайды: как установить GLM Subagent
FAQ
GLM Subagent MCP бесплатный?
Да, GLM Subagent MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для GLM Subagent?
Нет, GLM Subagent работает без API-ключей и переменных окружения.
GLM Subagent — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить GLM Subagent в Claude Desktop, Claude Code или Cursor?
Открой GLM Subagent на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare GLM Subagent with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
