@yawlabs/ctxlint 0.9.8 → 0.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MCP_CONFIG_LINT_SPEC.md +17 -2
- package/README.md +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/MCP_CONFIG_LINT_SPEC.md
CHANGED
|
@@ -16,7 +16,7 @@ This specification defines a standard set of lint rules for validating MCP serve
|
|
|
16
16
|
|
|
17
17
|
The specification includes:
|
|
18
18
|
- A complete reference of MCP config file locations, formats, and client-specific behaviors
|
|
19
|
-
-
|
|
19
|
+
- 43 lint rules organized into 8 categories with defined severities
|
|
20
20
|
- A machine-readable rule catalog ([`mcp-config-lint-rules.json`](./mcp-config-lint-rules.json))
|
|
21
21
|
- Auto-fix definitions for rules that support automated correction
|
|
22
22
|
|
|
@@ -24,6 +24,21 @@ The specification includes:
|
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
+
## Related specifications
|
|
28
|
+
|
|
29
|
+
This spec is part of a family of open specifications maintained by Yaw Labs for MCP tooling:
|
|
30
|
+
|
|
31
|
+
| Spec | Scope | Input |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| **mcp-config-lint** (this spec) | Static analysis of MCP client config files | `.cursor/mcp.json`, `.vscode/mcp.json`, `.mcp.json`, etc. |
|
|
34
|
+
| [**mcp-compliance**](https://github.com/YawLabs/mcp-compliance/blob/main/MCP_COMPLIANCE_SPEC.md) | Runtime testing of live MCP servers | A live server URL + transport |
|
|
35
|
+
|
|
36
|
+
The two are **complementary, not overlapping**. `mcp-config-lint` catches problems before deploy by reading JSON on disk; `mcp-compliance` catches problems after deploy by speaking the protocol to a running server. A production setup typically runs both.
|
|
37
|
+
|
|
38
|
+
Both specs target MCP spec version `2025-11-25` and ship machine-readable rule catalogs with stable rule IDs.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
27
42
|
## Table of contents
|
|
28
43
|
|
|
29
44
|
- [1. MCP Config Landscape Reference](#1-mcp-config-landscape-reference)
|
|
@@ -184,7 +199,7 @@ Without this wrapper, the subprocess fails to spawn. This is the most common Win
|
|
|
184
199
|
|
|
185
200
|
## 2. Lint Rules
|
|
186
201
|
|
|
187
|
-
|
|
202
|
+
43 rules organized into 8 categories. Each rule has a unique ID, severity level, trigger condition, and message template.
|
|
188
203
|
|
|
189
204
|
Severity levels:
|
|
190
205
|
- **error** — the config is broken or has a security issue. Should fail CI.
|
package/README.md
CHANGED
|
@@ -171,7 +171,7 @@ Summary: 3 errors, 2 warnings, 1 info
|
|
|
171
171
|
|
|
172
172
|
The full specification for MCP config linting rules, the cross-client config landscape, and a machine-readable rule catalog are published as open specifications:
|
|
173
173
|
|
|
174
|
-
- **[`MCP_CONFIG_LINT_SPEC.md`](./MCP_CONFIG_LINT_SPEC.md)** —
|
|
174
|
+
- **[`MCP_CONFIG_LINT_SPEC.md`](./MCP_CONFIG_LINT_SPEC.md)** — 43 lint rules across 8 categories, the complete client/format reference, and implementation guidance. Tool-agnostic — any linter can implement it.
|
|
175
175
|
- **[`mcp-config-lint-rules.json`](./mcp-config-lint-rules.json)** — Machine-readable rule catalog for programmatic consumption by AI agents, CI systems, and other tools.
|
|
176
176
|
|
|
177
177
|
## Session Linting
|
|
@@ -488,7 +488,7 @@ ctxlint is the reference implementation of three open specifications for linting
|
|
|
488
488
|
| Spec | What it covers |
|
|
489
489
|
| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
490
490
|
| **[AI Context File Linting Spec](./CONTEXT_LINT_SPEC.md)** | 19 rules for validating context files (CLAUDE.md, .cursorrules, AGENTS.md, etc.) across 17 clients. Covers file formats, frontmatter schemas, path/command validation, staleness, token budgets, redundancy, and contradictions. |
|
|
491
|
-
| **[MCP Config Linting Spec](./MCP_CONFIG_LINT_SPEC.md)** |
|
|
491
|
+
| **[MCP Config Linting Spec](./MCP_CONFIG_LINT_SPEC.md)** | 43 rules for validating MCP server configs (.mcp.json, .cursor/mcp.json, .vscode/mcp.json, etc.) across 8 clients. Covers schema validation, hardcoded secrets, env var syntax, deprecated transports, and cross-file consistency. |
|
|
492
492
|
| **[Agent Session Linting Spec](./AGENT_SESSION_LINT_SPEC.md)** | 7 rules for auditing agent session data (history, memory) across 8 agents. Covers cross-project secret consistency, config drift, stale memory, and loop detection. |
|
|
493
493
|
|
|
494
494
|
All specs include machine-readable rule catalogs for programmatic consumption:
|
package/dist/index.js
CHANGED
|
@@ -43842,7 +43842,7 @@ import { readFileSync as readFileSync4 } from "node:fs";
|
|
|
43842
43842
|
import { resolve as resolve8, dirname as dirname3 } from "node:path";
|
|
43843
43843
|
import { fileURLToPath } from "node:url";
|
|
43844
43844
|
function loadVersion() {
|
|
43845
|
-
if (true) return "0.9.
|
|
43845
|
+
if (true) return "0.9.9";
|
|
43846
43846
|
const __dir = dirname3(fileURLToPath(import.meta.url));
|
|
43847
43847
|
const pkgPath = resolve8(__dir, "../package.json");
|
|
43848
43848
|
const pkg = JSON.parse(readFileSync4(pkgPath, "utf-8"));
|