Skip to main content
Glama
xiaohuxi

Config Drift Guard MCP

by xiaohuxi
README.md
# Config Drift Guard MCP

A read-only Model Context Protocol server for comparing environment configuration without exposing detected secrets.

## Capabilities

- Parse `.env`, YAML, JSON, and Java Properties files.
- Normalize nested configuration into stable key paths.
- Detect added, removed, type-changed, value-changed, and secret-changed entries.
- Mask likely credentials, private keys, bearer tokens, and credential-bearing URLs.
- Restrict file access to explicitly allowed directories.
- Run entirely locally without network requests.

## Tools

### `inspect_config`

Parse one file and return normalized entries, value types, warnings, and protected values.

### `compare_configs`

Compare a baseline file with a target file and return drift items with risk levels.

### `scan_secrets`

Find likely plaintext secrets while returning only masks and SHA-256 fingerprints.

## Install

```bash
npm install
npm run build
```

Node.js 20 or later is required.

## Configure

Set `CONFIG_DRIFT_ALLOWED_ROOTS` to one or more directories. Use the operating system path delimiter (`;` on Windows, `:` on Linux and macOS).

```bash
# Windows PowerShell
$env:CONFIG_DRIFT_ALLOWED_ROOTS='D:\configs\dev;D:\configs\prod'
node dist/index.js
```

```bash
# Linux or macOS
CONFIG_DRIFT_ALLOWED_ROOTS=/srv/config/dev:/srv/config/prod node dist/index.js
```

If the variable is omitted, only the current working directory is allowed.

## MCP Client Configuration

```json
{
  "mcpServers": {
    "config-drift-guard": {
      "command": "node",
      "args": ["/absolute/path/config-drift-guard-mcp/dist/index.js"],
      "env": {
        "CONFIG_DRIFT_ALLOWED_ROOTS": "/absolute/path/configs"
      }
    }
  }
}
```

## Example

The repository includes `examples/dev.yaml` and `examples/prod.yaml`.

```text
compare_configs({
  "baselineFile": "/absolute/path/examples/dev.yaml",
  "targetFile": "/absolute/path/examples/prod.yaml"
})
```

The result distinguishes missing keys, type drift, ordinary value drift, and secret fingerprint changes. Detected secret plaintext is never returned.

## Paired Skill

`skills/config-drift-remediation` converts MCP evidence into:

- Expected-environment differences.
- Prioritized defects.
- Secret-rotation recommendations.
- Key-level patch guidance.
- A post-change verification checklist.

## Security Model

- Read-only tools.
- No network access.
- No expression or script execution.
- Maximum input file size of 5 MiB.
- Allowed-directory enforcement.
- Secret masks and one-way fingerprints only.
- No configuration plaintext logging.

## Development

```bash
npm test
npm run build
npm pack --dry-run
```

## License

MIT

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct operation: scanning for secrets, comparing config files, and inspecting a single config. There is no overlap in their purposes, making it easy for an agent to select the correct tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (scan_secrets, compare_configs, inspect_config) using snake_case. This predictable structure aids in tool discovery and understanding.

Tool Count5/5

With 3 tools, the server is tightly scoped to config drift detection and secret scanning. Each tool serves a clear, essential function without excess or deficiency for the stated purpose.

Completeness5/5

The tool set covers the core workflow: scanning secrets, comparing two configs, and inspecting a single config. No obvious gaps exist for the read-only analysis focus of the server.

Maintenance

ActivitySlowing
ResponsivenessNo issues