glm试剂mcp
连接Claude Code和GLM-4-plus的MCP服务器
 ](https://github.com/hwandam77/glm-agent-mcp/actions/workflows/docker-publish.yml) 
概要
glm-agent-mcp是一款模型上下文协议(MCP)服务器,可以与GLM-4-plus(Z.AI)合作,同时节省Claude Code的令牌。
主要功能
- 节省代币:将简单的任务委托给GLM以降低Claude令牌的成本
- 11个工具:问题委派、文件操作、内存管理、操作日志
- 自动备份:支持文件修改/删除前的自动备份和还原
- 动态项目设置:可按项目设置PROJECT_ROOT
- FastAPI服务:Docker容器内基于HTTP的通信
架构
┌─────────────────┐ ┌──────────────────────────────────┐
│ Claude Code │────▶│ glm-agent-mcp (MCP) │
│ (호스트) │ │ - 파일 작업 (호스트에서 직접) │
└─────────────────┘ │ - 메모리 관리 │
│ - 작업 로그 │
└──────────────┬───────────────────┘
│ HTTP (port 8080)
┌──────────────▼───────────────────┐
│ Docker Container (glm-claude) │
│ - FastAPI 서비스 │
│ - Claude Code CLI │
│ - Z.AI (GLM-4-plus) 백엔드 │
└──────────────────────────────────┘安装
1.存储库克隆
git clone https://github.com/hwandam77/glm-agent-mcp.git
cd glm-agent-mcp2.首选参数
cp .env.example .env.env 修改文件:
ZHIPU_API_KEY=your-zhipu-api-key
PROJECT_ROOT=/your/project/path3.运行Docker容器
方法1:All-in-One(建议)
# 단일 컨테이너로 모든 기능 실행
docker compose -f docker-compose.all-in-one.yml up -d方法2:独立(微服务)
# glm-claude + mcp-gateway 분리 실행
docker compose up -d4.在Claude Code中注册MCP
项目的 .mcp.json 文件:
{
"mcpServers": {
"glm-agent-mcp": {
"command": "/path/to/glm-agent-mcp/run-mcp.sh",
"env": {
"PROJECT_ROOT": "/your/project/path"
}
}
}
}MCP工具(11个)
委托问题
| 工具 | 说明 |
|---|---|
ask_glm | 将任务委派给GLM-4-plus |
使用文件
| 工具 | 说明 |
|---|---|
glm_file_read | 读取文件(自动检测编码) |
glm_file_create | 创建文件 |
glm_file_edit | 修改文件(替换字符串) |
glm_file_delete | 删除文件 |
glm_file_rollback | 从备份恢复文件 |
内存管理
| 工具 | 说明 |
|---|---|
glm_memory_save | 保存上下文(按类别) |
glm_memory_get | 查看保存的上下文 |
glm_memory_list | 查看内存列表 |
glm_memory_delete | 删除内存 |
日志
| 工具 | 说明 |
|---|---|
glm_action_log | 查看任务日志 |
使用示例
将问题委托给GLM
mcp__glm-agent-mcp__ask_glm({
"task_description": "Python에서 리스트 컴프리헨션 사용법 설명해줘",
"context": "초보자 대상"
})创建文件
mcp__glm-agent-mcp__glm_file_create({
"path": "/home/user/project/hello.py",
"content": "print('Hello, World!')"
})修改文件
mcp__glm-agent-mcp__glm_file_edit({
"path": "/home/user/project/hello.py",
"old_string": "Hello, World!",
"new_string": "안녕하세요!"
})存储内存
mcp__glm-agent-mcp__glm_memory_save({
"key": "project_context",
"value": "FastAPI 기반 REST API 개발 중",
"category": "context"
})动态PROJECT_ROOT设置
可以为每个项目设置不同的工作路径:
// workspace/project-a/.mcp.json
{
"mcpServers": {
"glm-agent-mcp": {
"command": "/path/to/run-mcp.sh",
"env": {
"PROJECT_ROOT": "/home/user/workspace/project-a"
}
}
}
}// workspace/project-b/.mcp.json
{
"mcpServers": {
"glm-agent-mcp": {
"command": "/path/to/run-mcp.sh",
"env": {
"PROJECT_ROOT": "/home/user/workspace/project-b"
}
}
}
}备份和还原文件
修改/删除文件时自动备份:
{PROJECT_ROOT}/.glm_backups/
├── filename.txt.20260126_120000.1.bak
├── filename.txt.20260126_120500.2.bak
└── ...恢复:
mcp__glm-agent-mcp__glm_file_rollback({
"path": "/path/to/file.txt",
"version": -1 # 최신 백업
})配置Docker
检查容器状态
docker compose ps
docker compose logs glm-claude服务健康检查
curl http://localhost:8080/health重新启动容器
docker compose restart glm-claude开发
本地开发环境
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"测试
pytest tests/ -v --cov=src目录结构
glm-agent-mcp/
├── .github/
│ └── workflows/
│ ├── ci.yml # CI 파이프라인
│ └── docker-publish.yml # Docker 이미지 배포
├── src/
│ ├── api/ # FastAPI 서비스
│ │ └── main.py
│ ├── core/ # 핵심 로직
│ │ └── glm_executor.py
│ ├── tools/ # MCP 도구들
│ │ ├── ask_glm.py
│ │ ├── file_ops.py
│ │ ├── memory.py
│ │ └── action_log.py
│ └── server.py # MCP 서버 진입점
├── docker/
│ ├── Dockerfile.glm-claude
│ ├── Dockerfile.mcp-gateway
│ └── claude-config/
├── tests/
├── docker-compose.yml
├── run-mcp.sh
└── pyproject.toml要求
- Python 3.10+
- Docker&Docker编写
- Z.AI API密钥(GLM-4-plus)
CI/CD
GitHub Actions工作流
| 工作流 | 触发器 | 功能 |
|---|---|---|
| 持续集成 | push、PR | 测试、Lint、Docker构建验证 |
| Docker发布 | 标签,发行版 | 将图像推送到GHCR |
CI管道
# .github/workflows/ci.yml
# 자동 실행: push (main, develop), PR (main)
jobs:
test: # Python 3.11, 3.12 테스트
docker-build: # Docker 이미지 빌드 검증
integration: # Docker Compose 통합 테스트部署Docker映像
# 태그 푸시로 자동 배포
git tag v1.0.0
git push origin v1.0.0
# 수동 배포 (GitHub Actions > Docker Publish > Run workflow)使用分布式映像
# All-in-One (권장) - 단일 이미지로 모든 기능
docker pull ghcr.io/hwandam77/glm-agent-mcp:latest
docker run -d -p 8080:8080 -p 9090:9090 \
-e ZHIPU_API_KEY=your-key \
ghcr.io/hwandam77/glm-agent-mcp:latest
# 분리형 - 마이크로서비스 아키텍처
docker pull ghcr.io/hwandam77/glm-agent-mcp-claude:latest
docker pull ghcr.io/hwandam77/glm-agent-mcp-gateway:latest用作Docker Compose:
# All-in-One
services:
glm-agent:
image: ghcr.io/hwandam77/glm-agent-mcp:latest
ports:
- "8080:8080" # FastAPI
- "9090:9090" # MCP Gateway
# 분리형
services:
glm-claude:
image: ghcr.io/hwandam77/glm-agent-mcp-claude:latest
mcp-gateway:
image: ghcr.io/hwandam77/glm-agent-mcp-gateway:latest运行本地CI
# 테스트
pip install -e ".[dev]"
pytest tests/ -v --cov=src
# 린트
ruff check src/ tests/
# Docker 빌드 검증
docker compose build
docker compose up -d
curl http://localhost:8080/health
docker compose downGitHub Secrets设置
运行CI/CD所需的secrets:
| Secret | 必需的 | 说明 |
|---|---|---|
GITHUB_TOKEN | 自动 | 用于GHCR推送(自动提供) |
ZHIPU_API_KEY | 选择 | 用于集成测试 |
CODECOV_TOKEN | 选择 | 上传封面报告 |
许可证
MIT许可证
贡献
欢迎话题和PR!
- 克隆该仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
