@mcpx-digital/env-check
Provides tools for comparing .env.example against .env files, detecting missing, extra, or empty environment variables, and generating redacted reports without exposing secret values.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@mcpx-digital/env-checkCompare .env.example to .env and list the missing keys"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@mcpx-digital/env-check
MCP server that compares .env.example vs .env, finds missing/extra/empty keys, and produces redacted reports.
Never echoes secrets. All value reports are redacted (
***redacted***/***present***). Local files only — no uploading env files anywhere.
Install (MCPX / npx)
npx -y @mcpx-digital/env-checkPrepared for npm as
@mcpx-digital/env-check. Until published, run from a local clone.
Related MCP server: env-secret-exposure-analyzer-mcp
Cursor mcp.json example
{
"mcpServers": {
"env-check": {
"command": "npx",
"args": ["-y", "@mcpx-digital/env-check"]
}
}
}Local clone:
{
"mcpServers": {
"env-check": {
"command": "node",
"args": ["/absolute/path/to/env-check-mcp/index.js"]
}
}
}Tools
Tool | What it does |
| Missing / extra / empty keys vs |
| Empty or missing required vars (values redacted) |
| Paste-safe key inventory with all values redacted |
Disclaimer
Use only on env files you own. Do not commit real .env files. This tool helps catch misconfiguration; it does not replace a secrets manager.
Example prompts
“Compare .env.example to .env and list missing keys”
“Which required env vars are empty? (redacted)”
“Give me a redacted inventory of .env for a ticket”
Development
git clone https://github.com/TheoryofShadows/env-check-mcp.git
cd env-check-mcp
npm install
npm test
node index.jsSell / list on MCPX
Suggested listing price: $6.
Install command: npx -y @mcpx-digital/env-check
License
MIT © TheoryofShadows
Available Tools
3 toolscompare_env_filesA
Compare .env.example vs .env for missing and extra keys; list empty required keys. Local .env files only. Reports redact values and never echo secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| envPath | No | Path to .env (default .env). | |
| examplePath | No | Path to .env.example (default .env.example). | |
| includeCommentedExample | No | Treat commented KEY= lines in example as required keys. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It discloses a key safety behavior ('Reports redact values and never echo secrets') and a scope constraint ('Local .env files only'). However, it does not explicitly state whether the tool is read-only, how it handles errors, or what the output format is beyond being a 'report'. The redaction guarantee is valuable, but the description could be more complete about side effects and output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant words. It front-loads the core purpose ('Compare .env.example vs .env for missing and extra keys; list empty required keys'), then adds the constraint and safety guarantee. Every word earns its place, and the structure is clear and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should provide more detail about the tool's return value and behavior. It says 'Reports redact values' but does not specify the structure of the report (e.g., sections for missing, extra, empty keys) or how results are presented. It also omits error-handling behavior. While the description covers the core function and safety, it leaves ambiguity about the exact output an agent would need to interpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all three parameters (envPath, examplePath, includeCommentedExample) with 100% coverage, so the baseline is 3. The tool description does not add any additional parameter-specific meaning beyond what the schema already states; it only reinforces overall tool behavior (e.g., 'list empty required keys') without enriching the understanding of any individual parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: compare two env files for missing and extra keys, and list empty required keys. It uses a specific verb ('Compare') and resource ('.env.example vs .env'), and the mention of 'list empty required keys' differentiates it from sibling tools like detect_empty_required, which likely focuses solely on empty keys, and redact_env_report, which likely produces a redacted report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a constraint ('Local .env files only') but gives no guidance on when to choose this tool over the sibling tools (detect_empty_required, redact_env_report). There is no explicit 'use this instead of X when...' or mention of alternatives, leaving the agent to infer the appropriate context from the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_empty_requiredB
Detect missing or empty required vars (from example or explicit requiredKeys). Values redacted. Local .env files only. Reports redact values and never echo secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| envPath | No | ||
| examplePath | No | ||
| requiredKeys | No | Optional explicit required key list. | |
| includeCommentedExample | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it uses that room to state that values are redacted, reports redact values, and secrets are never echoed. That is important, safety-relevant behavior. It stops short of saying whether the tool writes or modifies files, but 'detect' and 'reports' imply a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the main purpose, but 'Values redacted' is then repeated as 'Reports redact values and never echo secrets', so the redaction point is made three times. It is compact but not maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description needs to explain the tool's behavior, return/report nature, and parameter roles more fully. It covers redaction and the source of required keys, but includeCommentedExample is never explained and the report format is not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, with envPath, examplePath, and includeCommentedExample lacking descriptions. The prose clarifies that required keys can come from an example file or requiredKeys, which helps, but it leaves the meaning of includeCommentedExample and the role of envPath mostly implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation (detect missing or empty required vars) and the two sources that define 'required' (example file or explicit requiredKeys). That is enough to separate it from compare_env_files and redact_env_report, which clearly do different jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description restricts the tool to local .env files but gives no guidance on when to choose this tool over its siblings. It never mentions compare_env_files or redact_env_report, so an agent has to infer the boundary from the names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redact_env_reportA
Produce a paste-safe inventory of keys in an env file with all values redacted. Local .env files only. Reports redact values and never echo secrets.
| Name | Required | Description | Default |
|---|---|---|---|
| envPath | No | Path to env file (default .env). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It explicitly states that values are redacted and that it 'never echo secrets', which is a valuable safety guarantee. However, it does not describe the exact report format or side effects, though the name implies a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the main purpose front-loaded. There is some redundancy between 'all values redacted' and 'Reports redact values', but overall the description is compact and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one optional parameter and no output schema, and the description explains the general behavior and safety guarantees. However, it does not specify the output format, error handling, or conditions under which the tool might fail, leaving some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and envPath is documented in the schema. The description adds only the 'Local .env files only' constraint, which is a minor semantic addition rather than a full description of the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Produce') and a distinct artifact ('paste-safe inventory of keys in an env file with all values redacted'). It clearly differentiates from siblings 'compare_env_files' and 'detect_empty_required', which serve other purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a usage constraint with 'Local .env files only', but does not explicitly explain when to use this tool over alternatives or mention the sibling tools. No when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
compare_env_files - First observed
detect_empty_required - First observed
redact_env_report
TDQS
Scored across 3 tools
compare_env_files and detect_empty_required overlap in identifying missing/empty required keys, though the former is example-based diffing and the latter supports explicit requiredKeys. redact_env_report is clearly distinct.
All three tools use a consistent snake_case verb_noun pattern (compare_env_files, detect_empty_required, redact_env_report). This makes the tool surface predictable and easy to navigate.
Three tools is within the ideal scope for a focused env-check utility, and each tool serves a distinct operation. There is no sense of bloat or a too-thin surface.
The set covers the core env-check lifecycle: comparing env files, validating required variables, and producing redacted output. For the stated local .env-focused purpose, there are no obvious dead ends.
Maintenance
Related MCP Connectors
Scan configs, files, or text for leaked secrets and obvious misconfigurations. Nothing stored.
Compare two JSON files deeply without worrying about key or array order. Detect missing, extra, an…
Detect breaking changes, generate changelogs, diff, and validate OpenAPI specs.
Compare two JSON files deeply, regardless of order. Get a detailed difference report highlighting…
Related MCP Servers
- AlicenseAqualityAmaintenanceChecks your local development environment for common issues like wrong Node version, missing Docker, missing git config, missing .env keys, and busy ports, and provides fixes.614 npm1MIT
- AlicenseAqualityDmaintenanceScans projects for hardcoded secrets, unprotected .env files, and console.log leaks to prevent credential exposure.533 npmMIT
- AlicenseAqualityCmaintenanceScans diffs, files, and snippets for leaked secrets like AWS keys, GitHub tokens, and private keys, returning redacted findings while running fully locally without network calls.1MIT
- AlicenseAqualityCmaintenanceResolves configuration and environment-variable precedence across .env files, Docker Compose, and Kubernetes, showing what a variable actually evaluates to at runtime and why.531 npmMIT