使用说明
Go Zero MCP工具
一种模型上下文协议(MCP)工具,可帮助开发人员轻松快速构建和生成零项目。
快速开始
新加入mcp zero? 查看我们的 快速入门指南 获取入门的分步教程!
快速入门包括:
- 安装与配置
- 创建您的第一个API服务
- 常见用例和工作流程
- 与Claude Desktop集成
特性
核心服务生成
- 创建API服务:使用可自定义的端口和样式生成新的REST API服务
- 创建RPC服务:从protobuf定义生成gRPC服务
- 生成API代码:将API规范文件转换为Go代码
- 生成模型:从各种来源(MySQL、PostgreSQL、MongoDB、DDL)创建数据库模型
- 创建API规范:生成示例API规范文件
高级功能
- 分析项目:分析现有的归零项目,以了解结构和依赖关系
- 管理配置:生成具有适当结构验证的配置文件
- 生成模板:创建中间件、错误处理程序和部署模板
- 查询文档:从其他框架中获取零排放概念和迁移指南
- 验证输入:API规范、原型定义和配置的全面验证
先决条件
-
去 (1.19或更高版本)
-
go zero命令行界面(goctl):安装
go install github.com/zeromicro/go-zero/tools/goctl@latest -
克劳德桌面版 (或其他MCP兼容客户端)
有关详细的安装说明,请参阅 快速入门指南.
安装
-
为您的MCP工具创建一个新目录:
mkdir go-zero-mcp && cd go-zero-mcp -
初始化Go模块:
go mod init go-zero-mcp -
安装依赖项:
go get github.com/modelcontextprotocol/go-sdk go get gopkg.in/yaml.v3 -
将主工具代码另存为
main.go -
构建工具:
go build -o go-zero-mcp main.go
Claude桌面配置
将此配置添加到您的Claude Desktop MCP设置中:
macOS
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-zero": {
"command": "/path/to/your/mcp-zero",
"env": {
"GOCTL_PATH": "/Users/yourname/go/bin/goctl"
}
}
}
}
Linux
编辑 ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-zero": {
"command": "/path/to/your/mcp-zero",
"env": {
"GOCTL_PATH": "/usr/local/bin/goctl"
}
}
}
}
视窗
编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"mcp-zero": {
"command": "C:\\path\\to\\your\\mcp-zero.exe",
"env": {
"GOCTL_PATH": "C:\\Go\\bin\\goctl.exe"
}
}
}
}
可用工具
1.create_api_service
创建一个新的gozero API服务。
参数:
service_name(必需):API服务的名称port(可选):端口号(默认值:8888)style(可选):代码样式-“go_zero”或“gozero”(默认值:“go_zero”)output_dir(可选):输出目录(默认:当前目录)
2.create_rpc_service
从protobuf定义创建新的零RPC服务。
参数:
service_name(必需):RPC服务的名称proto_content(必填):Protobuf定义内容output_dir(可选):输出目录(默认:当前目录)
3.generate_api_from_spec
从API规范文件生成gozero API代码。
参数:
api_file(必填):.api规范文件的路径output_dir(可选):输出目录(默认:当前目录)style(可选):代码样式-“go_zero”或“gozero”(默认值:“go_zero”)
4.generate_model
从数据库架构生成数据库模型代码。
参数:
source_type(必填):源类型-“mysql”、“postgresql”、“mongo”或“ddl”source(必需):数据库连接字符串或DDL文件路径table(可选):特定表名(用于数据库源)output_dir(可选):输出目录(默认:“./model”)
5.create_api_spec
创建示例API规范文件。
参数:
service_name(必需):API服务的名称endpoints(必需):包含方法、路径和处理程序的端点对象数组output_file(可选):输出文件路径(默认:service_name.api)
6.分析项目
分析现有的归零项目结构和依赖关系。
参数:
project_dir(必填):项目目录的路径analysis_type(可选):分析类型-“api”、“rpc”、“模型”或“完整”(默认值:“完整”)
7.generate_config
为归零服务生成配置文件。
参数:
service_name(必填):服务名称service_type(必填):服务类型-“api”或“rpc”config_type(可选):配置类型-“dev”、“test”或“prod”(默认值:“dev)output_file(可选):输出文件路径(默认:etc/{service_name}.yaml)
8.生成模板
为go zero服务生成通用代码模板。
参数:
template_type(必填):模板类型-“中间件”、“error_handler”、“dockerfile”、“Dockercompose”或“kubernetes”service_name(必填):服务名称output_path(可选):输出文件路径(根据模板类型使用默认值)
9.query_docs
查询零文档和迁移指南。
参数:
query(必填):关于go zero概念或迁移的自然语言查询doc_type(可选):文档类型-“概念”、“迁移”或“两者”(默认值:“两者”)
10.validate_input
验证API规范、原型定义或配置文件。
参数:
input_type(必填):输入类型-“api_spec”、“proto”或“config”content(必填):要验证的内容strict(可选):启用严格验证模式(默认值:false)
用法示例
创建新的API服务
Please create a new go-zero API service called "user-service" on port 8080
创建RPC服务
Create a new go-zero RPC service called "auth-service" with this protobuf definition:
syntax = "proto3";
package auth;
option go_package = "./auth";
service AuthService {
rpc Login(LoginRequest) returns (LoginResponse);
rpc Logout(LogoutRequest) returns (LogoutResponse);
}
message LoginRequest {
string username = 1;
string password = 2;
}
message LoginResponse {
string token = 1;
int64 expires_at = 2;
}
message LogoutRequest {
string token = 1;
}
message LogoutResponse {
bool success = 1;
}
从数据库生成模型
Generate go-zero models from my MySQL database with connection string "user:password@tcp(localhost:3306)/mydb"
创建API规范
Create an API specification for a "blog-service" with these endpoints:
- GET /api/posts (handler: GetPostsHandler)
- POST /api/posts (handler: CreatePostHandler)
- GET /api/posts/:id (handler: GetPostHandler)
- PUT /api/posts/:id (handler: UpdatePostHandler)
- DELETE /api/posts/:id (handler: DeletePostHandler)
分析项目
Analyze my go-zero project in /path/to/myproject to understand its structure
正在生成配置
Generate a production configuration file for my "order-service" API service
生成模板
Generate a middleware template for my "auth-service"
查询文档
How do I implement JWT authentication in go-zero?
How do I migrate from Express.js to go-zero?
验证输入
Validate this API spec file at /path/to/service.api with strict mode enabled
项目结构
构建后,您的MCP服务器将具有以下结构:
mcp-zero/
├── main.go # Entry point and tool registration
├── tools/ # Tool implementations
│ ├── create_api_service.go
│ ├── create_rpc_service.go
│ ├── generate_api.go
│ ├── generate_model.go
│ ├── create_api_spec.go
│ ├── analyze_project.go
│ ├── generate_config.go
│ ├── generate_template.go
│ ├── query_docs.go
│ └── validate_input.go
├── internal/ # Internal packages
│ ├── analyzer/ # Project analysis
│ ├── validation/ # Input validation
│ ├── security/ # Credential handling
│ ├── templates/ # Code templates
│ ├── docs/ # Documentation database
│ ├── logging/ # Structured logging
│ └── metrics/ # Performance metrics
└── tests/ # Test suites
├── integration/
└── unit/
建筑
MCP服务器由以下组件构建:
- MCP-SDK:使用github/modelcontextprotocol/go-sdk实现协议
- 运输:与Claude Desktop进行基于stdio的通信
- 代码生成:利用go zero的goctl CLI工具生成生产就绪代码
- 验证:安全性和正确性的全面输入验证
- 安全:使用环境变量替换进行安全凭证处理
- 可观测性:用于监控工具性能的内置日志记录和指标
最佳实践
- 服务命名:使用带连字符的小写字母(例如,“用户服务”、“auth-api”)
- 端口配置:为每种服务选择唯一的端口(建议使用8080-8090范围)
- 代码风格:坚持“go_zero”风格,与官方惯例保持一致
- 配置:使用特定于环境的配置(开发、测试、产品)
- 文档:定期查询文档,以保持与零排放最佳实践的一致性
- 验证:始终在生成之前验证输入,以便及早发现错误
故障排除
常见问题
- 找不到goctl命令:确保goctl已安装并位于您的PATH中
- 权限不足:确保MCP工具可执行文件具有适当的权限
- 数据库连接错误:验证连接字符串和数据库可访问性
调试模式
要启用调试日志记录,请设置环境变量:
export MCP_DEBUG=1
贡献
您可以随时使用其他归零功能扩展此工具,例如:
- Docker文件生成
- Kubernetes清单生成
- Docker编写文件
- API文档生成
- 测试模板创建
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
版权所有(c)2025归零团队