# Env Linter — REST API endpoint `env-linter`

Lint a dotenv file for duplicate keys, unquoted spaces, export prefixes, secret-looking values (masked), and drift against an optional .env.example. Returns issues and a masked key table. Does not execute the file.

- Category: developer
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, no API keys, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/env-linter/execute (no API keys, 60 req/min per IP)
- Reference page: https://findutils.com/api/env-linter/
- Same tool on the other surface: https://findutils.com/mcp/env-linter/

## Call the endpoint (verified example)

```bash
curl -X POST https://api.findutils.com/api/tools/env-linter/execute \
  -H "Content-Type: application/json" \
  -d '{
    "env": "FOO=1\nFOO=2\n",
    "example": "FOO=\nBAR=\n"
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/env-linter
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `env` | string | yes | Contents of a .env file. |
| `example` | string | no | Optional .env.example contents for key drift checks. |

Example arguments (verified):

```json
{
  "env": "FOO=1\nFOO=2\n",
  "example": "FOO=\nBAR=\n"
}
```

OpenAPI 3.1 spec: https://findutils.com/api/openapi.json · Interactive docs: https://findutils.com/api/docs/

## Also an MCP tool

```bash
claude mcp add findutils --transport http https://mcp.findutils.com/
```

Then ask the client to call `findutils:env_linter`. Full MCP reference: https://findutils.com/mcp/env-linter/

---
Full catalog: GET https://api.findutils.com/api/tools · https://findutils.com/api/ · https://findutils.com/llms.txt
