Glm Mcp について
Glm Mcpは、Claude Code、Copilot、CodexなどからGLMへコーディング作業を委任するMCPサーバーです。リポジトリ編集、モデル振り分け、変更プレビュー、利用状況の記録に対応します。
主な機能
- 01リポジトリ作業向けGLMエージェント
- 02ピーク時間に応じたモデル振り分け
- 03差分プレビューとGitによる復元
- 04利用記録と実行統計
- 05Claude Code、Copilot、Codex用インストーラー
活用シーン
- 01メインエージェントからコード変更を委任
- 02適用前に変更差分を確認
- 03GLMのトークン使用量と推定費用を追跡
MCP 対応
`glm_agent`、`glm_delegate`、`glm_recommend`、`glm_status`の4つのMCPツールを提供します。作業の委任、ローカルでの振り分け助言、利用状況と設定の確認に使えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
glm-mcp — AI コーディングエージェント向けの低コストな GLM 委任先
GLM(Zhipu / Z.ai)を、AI コーディングエージェント向けの約 10 分の 1 のコストで利用できる委任先として提供します。高価なメインモデル(Claude Opus、Copilotのデフォルトモデル、またはCodex)が調整とレビューを行い、実際の作業は低価格な GLM トークンで利用できるGLMが担当します。GLM は Anthropic 互換の /v1/messages エンドポイントを公開しているため、Anthropic の API に対応するあらゆる環境に組み込めます。このリポジトリでは、4 つのツールを備えたMCP サーバーとして GLM をラップし、Claude Code、GitHub Copilot、Codex向けのワンコマンドインストーラーも提供します。どのエディションでも同じサーバーを使用します。
仕組み
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
わかりやすく説明すると、次のようになります。
- ユーザーがメインエージェントに作業を依頼します。
- メインエージェントが
glm_agentを介して作業を委任します。目標と絶対パスのworkdirを渡します。 - サーバーのルーターが GLM モデルを選択し(ピークを考慮)、Z.ai の
/v1/messagesエンドポイントを呼び出します。コスト優先のバイアスによって、GLM がデフォルトになります。 - GLM はリポジトリに対して直接、独自のエージェントループ(
read_file/write_file/edit_file/list_dir/run_bash)を実行し、要約を作成して停止します。 - サーバーは簡潔な要約と
GLM STATSブロック(モデル、トークン数、推定コスト)をメインエージェントに返します。 - メインエージェントがレビューを行います。すべての GLM 呼び出しは
usage.jsonl台帳にも追記されます。
トークンのコスト効率。 委任した作業にはGLM トークンが課金されるため、コストは約 10 分の 1 です。メインモデルにかかるのは、調整とレビューのコストだけです。GLM の利用比率をほぼ 100%にするには、完全 GLM ランチャー(claude/glm-code.mjs)が必要です。ハイブリッド構成のメインエージェントには、ターンごとにセッションコンテキストが必ず含まれるため、このコンテキストがトークン利用比率の下限となります。
4 つのツール
| ツール | コスト | 機能 |
|---|---|---|
glm_agent | GLM トークン | リポジトリ内で実際に動作するコーディングエージェントとしての GLM(読み取り/書き込み/編集/実行)。dry_run: true を指定すると差分をプレビューし、何も書き込みません。実際に実行した後は、git チェックポイントからの復元コマンドが表示されます。 |
glm_delegate | GLM トークン(オプトイン) | 純粋なテキスト生成です。入力も出力もテキストです。デフォルトでは非表示(テキストのみのタスクも glm_agent が処理します)。公開するには GLM_DELEGATE=on を設定します。 |
glm_recommend | 無料(ローカル) | GLM とメインモデルのどちらを使うか、どの GLM モデルを使うか、信頼度、理由について助言します。GLM は呼び出しません。 |
glm_status | 無料(ローカル) | ピークウィンドウ、アクティブなモデル、使用量台帳の合計(GLM の利用額の証明)、設定の状態を表示します。GLM は呼び出しません。 |
実行状況のリアルタイム表示。 glm_agent は実行中に MCP の進捗通知をストリーミングします。
現在の反復回数、トークン数、tok/s が Claude Code にリアルタイムで表示され、VS Code Copilot では
tool.execution_progress に対応付けられます。このハートビートは、進捗に応じてタイムアウトをリセットするクライアントで
長時間の呼び出しを継続させる役割も果たします。また、実行をキャンセルすると GLM は速やかに停止します
(変更の一部が表示され、元に戻せます)。max_tokens のデフォルトは auto(上限なし/十分な量)です
(オーケストレーションを行うエージェントが数値を渡して呼び出しに上限を設定できます)。サーバーには
アイドル/停止タイムアウト(GLM_STALL_TIMEOUT_MS、2 分)があるため、
ストリーミング中のターンが途中で打ち切られることはありません。クライアントのツール呼び出しタイムアウトによって
非常に長い実行がキャンセルされる場合は、MCP_TOOL_TIMEOUT / CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT を使って
タイムアウトを延長してください。
インストール
(a) Claude Code
npx glm-mcp-claude --key YOUR_ZAI_KEY
デフォルトではグローバル(ユーザースコープ)にインストールされ、MCP サーバー、すべてのツールを備えた
glm サブエージェント、PreToolUse 自動ルーティングフック、オプションの glm-code
GLM フル機能ランチャーが含まれます。Claude Code を再起動し、glm_status を実行して
api_key_loaded: true を確認してください。
詳細については、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
MCP サーバーをエージェントモードでインストールし、GLM カスタムエージェント(サブエージェント)、
PreToolUse 自動ルーティングフック、委任用の指示ファイルを追加します。VS Code ウィンドウを再読み込みし、
Copilot Chat をエージェントモードで開いて、glm サーバーを起動してください。
詳細については、copilot/README.md をご覧ください。
(c) Codex
公開されている Codex パッケージをインストールします。
npx glm-mcp-codex --key YOUR_ZAI_KEY
Codex MCP 登録、glm カスタムエージェント、glm-delegate スキル、助言用の
UserPromptSubmit/PreToolUse フックをインストールします。設定では、GLM ツールのタイムアウトを 30 分にし、
変更を伴う呼び出しの前に確認を求めます。Codex を再起動し、/hooks でフックを確認してから、
glm_status を実行してください。
詳細については、codex/README.md をご覧ください。
(d) 任意の MCP クライアント / Glama / Docker
スタンドアロンの glm-mcp パッケージを使えば、
Cursor、Windsurf、Claude Desktop、Glama などにインストーラーは不要です。
{
"mcpServers": {
"glm": {
"command": "npx",
"args": ["-y", "glm-mcp"],
"env": { "GLM_API_KEY": "YOUR_ZAI_KEY" }
}
}
}
コンテナーでは、リポジトリルートの Dockerfile を使って、同じサーバーを実行できます。
docker build -t glm-mcp .
docker run --rm -i -e GLM_API_KEY=YOUR_ZAI_KEY glm-mcp
サーバーはキーなしでも起動し、MCP のイントロスペクションに応答します。実際に GLM を呼び出す場合のみ
GLM_API_KEY を設定してください。
エディションの概要
Claude Code -> claude/ | GitHub Copilot (VS Code) -> copilot/ | Codex -> codex/ | |
|---|---|---|---|
| npm パッケージ | glm-mcp-claude | glm-mcp-copilot | glm-mcp-codex |
| インストール | npx glm-mcp-claude --key ... | npx glm-mcp-copilot --key ... (+ --global) | npx glm-mcp-codex --key ... |
| MCP サーバー | ユーザースコープ(claude mcp add glm -s user) | VS Code エージェントモード(mcp.json) | ~/.codex/config.toml(または信頼済みプロジェクトの設定) |
| サブエージェント | glm サブエージェント(~/.claude/agents/glm.md) | GLM カスタムエージェント(glm.agent.md) | glm カスタムエージェント(~/.codex/agents/glm.toml) |
| 自動ルーティングフック | PreToolUse、Task マッチャー(glm_subagent_router.mjs) | PreToolUse、すべての呼び出しで実行(glm_router_hook.mjs) | UserPromptSubmit + PreToolUse、アドバイザリーのみ |
| 委譲ポリシー | ~/.claude/CLAUDE.md に追記 | .instructions.md ファイル | glm-delegate スキル + 任意の AGENTS.md スニペット |
| Full-GLM ランチャー | glm-code.mjs(Claude のみ) | — | |
| ドキュメント | claude/README.md | copilot/README.md | codex/README.md |
同等性。 3 つのエディションは、同じサーバーを内部で使用しながら、同じ 4 つのツールとサブエージェントを提供します。Codex はネイティブのカスタムエージェント、スキル、フックの機能を使用します。Codex のフックはアドバイザリーのみで、ユーザーが信頼する必要があります。単独で動作する**glm-code** Full-GLM ランチャーを提供しているのは Claude のみです。
設定
すべての設定項目は .env(Git で無視されます)にあります。エディションごとの場所は、Claude
~/.claude/glm-mcp/.env(インストール時に設定)、Copilot ~/.glm-mcp/glm-mcp/.env、Codex
~/.codex/glm-mcp/.env です。Codex のデフォルトの MCP ツールタイムアウトは 60 秒のため、tool_timeout_sec = 1800 を設定します。コメント付きの完全なリファレンスについては、claude/glm-mcp/.env.example を参照してください。
| 変数 | デフォルト | 意味 |
|---|---|---|
GLM_API_KEY | — | Z.ai / Zhipu の GLM Coding Plan キーです。GLM の呼び出しに必須です。 |
GLM_BASE_URL | https://api.z.ai/api/anthropic | Anthropic 互換のエンドポイント(/v1/messages)です。 |
GLM_USE_HAIKU | off | off の場合、GLM を直接呼び出すため、すべてのトークンが GLM 内にとどまります。on の場合、Haiku がオーケストレーションするサブエージェントを使用できます(Claude のトークンを一部消費します)。 |
GLM_COST_BIAS | 7 | GLM をどの程度優先するかを指定します。7 では、対象タスクの約 98~100% が GLM に送られます。値を小さく(例:1.5)すると、より難しいタスクがメインモデルに送られます。0 は能力のみを基準にします。 |
GLM_MAX_CONCURRENT | 1 | GLM の同時処理リクエスト数は約 1 件です。プランでより多くの同時処理が許可されていない限り、1 のままにしてください。 |
GLM_CAP | off | off = 寛大な上限(最大 GLM_MAX_TOKENS_CEILING)。on = GLM_MAX_TOKENS を適用します。 |
GLM_MAX_TOKENS | 32768 | 呼び出しごとの厳格な上限です。GLM_CAP=on の場合のみ適用されます。 |
GLM_MAX_TOKENS_CEILING | 131072 | 上限がオフの場合に使用される、寛大なデフォルト値です。 |
GLM_MAX_RETRIES | 4 | 429、同時実行、5xx のエラー発生時に、指数バックオフで再試行します。 |
GLM_TIMEOUT_MS | 300000 | GLM への HTTP リクエストごとのタイムアウト(5 分)です。 |
GLM_AGENT_MAX_ITERS | 30 | glm_agent が停止するまでのツールループの最大ターン数です。 |
GLM_AGENT_BASH_TIMEOUT_MS | 120000 | glm_agent 内で実行される run_bash コマンドごとのタイムアウトです。 |
GLM_OFFPEAK_MODEL | glm-5.2 | オフピーク時に auto が選択できるモデル候補です。カンマ区切りのリストを指定できます。ルーターが自動で選択します。 |
GLM_PEAK_MODEL | glm-5.2 | ピーク時に auto が選択できるモデル候補です。カンマ区切りのリストを指定できます。ピーク料金を避けるには、追加料金のないモデル(例:glm-4.7)を含めてください。 |
GLM_CHEAP_MODEL | glm-4.5-air | 低価格モデルです(Full-GLM ランチャーの Haiku スロットで使用されます)。 |
GLM_PEAK_START_CN | 14 | ピーク時間帯の開始時刻(中国時間、UTC+8)です。 |
GLM_PEAK_END_CN | 18 | ピーク時間帯の終了時刻(この時刻は含みません。中国時間、UTC+8)です。 |
ピーク時を考慮したルーティングとコスト
中国のピーク時間帯は14:00–18:00(UTC+8)です。glm-5.x ファミリーにはピーク時の追加料金(ピーク時は約3倍/オフピーク時は約2倍)がかかるため、ピーク時に auto が glm-5.x モデルを選ぶと、ルーターは GLM に割り当てる作業を減らします。追加料金のかからないモデル(例:GLM_PEAK_MODEL=glm-5.2,glm-4.7)をリストすると、ピーク時にはルーターがそのモデルを優先するため、GLM を問題なく利用できます。どちらの場合も、コストを考慮した優先設定により、GLM がデフォルトになります。ピーク時でも、メインモデルより低コストです。
**メインモデルで処理するもの:**機密情報や秘密情報を含むコード、画像入力、並列ファンアウト、>128K のコンテキスト、低レイテンシが求められるループ、依存関係の多い重いツールループ(ルーターによる強制的なオーバーライド)。
実際に GLM が使われたことの確認
usage.jsonl台帳 — GLM の呼び出しはすべて、model、input_tokens、output_tokensとともにディスクに追記されます。Claude:~/.claude/glm-mcp/usage.jsonl、Copilot:~/.glm-mcp/glm-mcp/usage.jsonl。Z.ai ダッシュボードとは独立しています。glm_status— 累積台帳の合計(呼び出し数、トークン数、モデルごとの件数)を出力します。=== GLM STATS ===ブロック —glm_agentの実行後に毎回出力されます。モデル、委任されたトークン数、反復回数、変更されたファイル数、Opus と比較した推定コストが表示されます。
台帳が空の場合、GLM は一度も呼び出されていません。作業はメインモデルで行われました。
監督と安全性
glm_agentのdry_run: true— GLM は完全な差分を提案しますが、何も書き込みません。適用する前に承認してください。- Git チェックポイントの復元コマンド — 実際に
glm_agentを実行するたびに(作業ディレクトリが git リポジトリの場合)、出力されるため、1つのコマンドで取り消せます。 - キーの分離 —
GLM_API_KEYは git の追跡対象外である.envにのみ保存され、npm パッケージに含まれることはありません(scripts/publish-server.mjsは各パッケージ内の.env/usage.jsonl/node_modulesをスキャンし、検出するとエラーで停止します)。 - データの保管場所 — GLM の通信先は中国にある Z.ai のサーバーです。秘密情報や規制対象のコードはメインモデルで処理してください。ルーターの
sensitiveフラグを使うと、メインモデルに強制的にルーティングされます。
開発/CI
CI(.github/workflows/ci.yml を参照)では、サーバーおよび各インストーラー/フック/スクリプトの構文チェック、キーを使わない stdio スモークテスト(scripts/smoke-stdio.mjs)による、ディスク上にキーがない状態での4つのツールを使った MCP ハンドシェイクの検証、ビルド済みイメージに initialize をパイプする Docker 内部検査テスト、および npm パッケージのシークレットスキャン(scripts/publish-server.mjs)を実行します。PR を歓迎します。CONTRIBUTING.md をご覧ください。
ライセンス
MIT © djerok · 正規リポジトリ:https://github.com/djerok/glm-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。