Env Validator について
Env Validatorは、ローカルの開発環境を調べるGo製MCPサーバーです。不足・旧版のCLIツール、環境変数の不備、設定ファイルの欠落や検証エラーをMCP対応アシスタントに報告します。
主な機能
- 01CLIツールの導入とバージョン確認
- 02環境変数の検証
- 03ファイルとディレクトリの確認
- 04JSONと必須キーの検証
- 05構造化レポートの生成
活用シーン
- 01プロジェクト開始前にツールを確認
- 02必須環境変数を検証
- 03設定ファイルの欠落や不備を特定
- 04環境全体を一括チェック
MCP 対応
stdioトランスポートで環境確認ツールをMCPクライアントに提供します。Claude Desktop、Cursor、Gemini CLIなどに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
env-validator-mcp
ローカルの開発環境を検査し、不足している依存関係、バージョンの不一致、設定に誤りのある環境変数を、MCP 互換の AI アシスタントに報告する MCP(Model Context Protocol)サーバーです。
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 | バージョンが完全に一致する必要があります |
| (空) | "" | 任意のバージョン。インストールされているかどうかだけを確認します |
開発
前提条件
- 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。