mcpField
E
Env Validator

Env Validator

本地服务
github.com/pouyasadri开发工具022 周前更新

关于 Env Validator

Env Validator 是用于检查本地开发环境的 Go MCP 服务,可向兼容 MCP 的助手报告缺失或过期的命令行工具、环境变量问题及配置文件异常。

主要功能

  1. 01检查命令行工具及版本
  2. 02验证环境变量
  3. 03检查文件和目录
  4. 04验证 JSON 与必需键
  5. 05生成结构化报告

适用场景

  1. 01开始项目之前检查工具
  2. 02核对必需的环境变量
  3. 03查找缺失或无效的配置文件
  4. 04执行完整环境检查

MCP 相关

通过 stdio 传输向 MCP 客户端提供环境检查工具,支持 Claude Desktop、Cursor 和 Gemini CLI 等客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

env-validator-mcp

Go MCP SDK License: MIT

一个 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。