关于 Env Validator
Env Validator 是用于检查本地开发环境的 Go MCP 服务,可向兼容 MCP 的助手报告缺失或过期的命令行工具、环境变量问题及配置文件异常。
主要功能
- 01检查命令行工具及版本
- 02验证环境变量
- 03检查文件和目录
- 04验证 JSON 与必需键
- 05生成结构化报告
适用场景
- 01开始项目之前检查工具
- 02核对必需的环境变量
- 03查找缺失或无效的配置文件
- 04执行完整环境检查
MCP 相关
通过 stdio 传输向 MCP 客户端提供环境检查工具,支持 Claude Desktop、Cursor 和 Gemini CLI 等客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
env-validator-mcp
一个 MCP(Model Context Protocol)服务,可检查本地开发环境,并向任何兼容 MCP 的 AI 助手报告缺失的依赖、版本不匹配和配置错误的环境变量。
适用于 Claude Desktop、Cursor、Gemini CLI,以及任何支持 stdio 传输的 MCP 服务的其他客户端。
功能
| MCP 工具 | 功能 |
|---|---|
check_tool_version | 检查是否已安装 CLI 工具;也可验证 semver 约束(例如 >=1.21.0) |
check_env_vars | 验证环境变量是否已设置、非空,和/或符合正则表达式模式 |
check_config_files | 确认文件/目录是否存在;也可验证 JSON 文件并检查必需的键 |
validate_environment | 全面检查:工具 + 环境变量 + 配置文件,并返回结构化 JSON 报告 |
list_checks | 列出此服务可以检查的所有内容 |
支持的 CLI 工具: go、node、npm、docker、git、python3、pip3、make、curl、jq、kubectl、terraform、helm、rustc、java
快速开始
1. 构建
git clone https://github.com/pouyasadri/env-validator-mcp.git
cd env-validator-mcp
make build
# → bin/env-validator-mcp
2. 配置 Claude Desktop
将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"env-validator": {
"command": "/Users/pouyasadri/Desktop/Projects/env-validator-mcp/bin/env-validator-mcp"
}
}
}
重启 Claude Desktop。现在你可以询问:
“检查是否已安装 Go、Docker 和 Node,并确认它们符合我的最低版本要求。”
“我的 DATABASE_URL 环境变量是否已设置?”
“全面验证环境,并告诉我缺少什么。”
3. 配置 Cursor/其他 MCP 客户端
大多数客户端都支持相同的 JSON 配置格式。将 command 指向二进制文件路径。
响应示例
validate_environment
{
"results": [
{
"name": "go",
"status": "ok",
"found_version": "1.24.2",
"expected_range": ">=1.21.0",
"message": "go 1.24.2 is installed and satisfies >=1.21.0"
},
{
"name": "docker",
"status": "missing",
"message": "docker is not found or not executable: executable file not found in $PATH"
},
{
"name": "HOME",
"status": "ok",
"message": "environment variable HOME is set"
}
],
"summary": "6 OK, 2 issue(s) found",
"ok_count": 6,
"issue_count": 2
}
check_tool_version
// Arguments: { "tool": "node", "constraint": ">=18.0.0" }
{
"name": "node",
"status": "outdated",
"found_version": "16.0.0",
"expected_range": ">=18.0.0",
"message": "node 16.0.0 does not satisfy constraint >=18.0.0"
}
Semver 约束语法
| 运算符 | 示例 | 含义 |
|---|---|---|
>= | >=1.21.0 | 版本必须为 1.21.0 或更高 |
> | >1.20.0 | 版本必须严格高于 1.20.0 |
<= | <=3.0.0 | 版本必须为 3.0.0 或更低 |
< | <3.0.0 | 版本必须严格低于 3.0.0 |
= | =1.24.2 | 版本必须完全匹配 |
| (empty) | "" | 任意版本——只检查是否已安装 |
开发
前置要求
- Go 1.24+
命令
make build # Compile binary to bin/
make test # Run all tests
make test-race # Run with race detector
make coverage # Generate HTML coverage report
make lint # Run golangci-lint
make clean # Remove build artifacts
项目结构
env-validator-mcp/
├── cmd/server/ # Entry point (main.go)
├── internal/
│ ├── checker/ # Tool, env, and file checkers (interfaces + implementations)
│ ├── report/ # Result and Report types
│ └── semver/ # Version extraction and constraint checking
├── mcp/ # MCP server setup and tool handlers
├── Makefile
└── go.mod
架构:用于 TDD 的依赖注入
所有外部操作都隐藏在接口之后:
Commander → exec.Command (real) / MockCommander (tests)
EnvReader → os.LookupEnv (real) / MockEnvReader (tests)
FileSystem → os.Stat/ReadFile (real) / MockFileSystem (tests)
这样,每个检查器都可以在完全隔离的环境中进行测试——不会启动进程、不会使用真实环境,也不会进行文件系统 I/O。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。