mcp-linter 1.0.0 → 1.0.1

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/README.md CHANGED
@@ -4,14 +4,16 @@
4
4
 
5
5
  **Zero-dependency security auditor and protocol linter for Model Context Protocol (MCP) servers.**
6
6
 
7
- [![CI](https://github.com/bakhtiyor-aminzoda/mcp-doctor/actions/workflows/ci.yml/badge.svg)](https://github.com/bakhtiyor-aminzoda/mcp-doctor/actions/workflows/ci.yml)
7
+ [![npm version](https://img.shields.io/npm/v/mcp-linter.svg)](https://www.npmjs.com/package/mcp-linter)
8
+ [![Marketplace](https://img.shields.io/badge/GitHub_Marketplace-mcp--linter-blue?logo=github)](https://github.com/marketplace/actions/mcp-linter)
9
+ [![CI](https://github.com/bakhtiyor-aminzoda/mcp-linter/actions/workflows/ci.yml/badge.svg)](https://github.com/bakhtiyor-aminzoda/mcp-linter/actions/workflows/ci.yml)
8
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
9
11
  [![Node.js Version](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org/)
10
12
  [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-success.svg)](package.json)
11
13
  [![MCP Spec](https://img.shields.io/badge/MCP%20Spec-2024--11--05-blueviolet.svg)](https://modelcontextprotocol.io/)
12
14
  [![SARIF Support](https://img.shields.io/badge/SARIF-v2.1.0-orange.svg)](https://sarifweb.azurewebsites.net/)
13
15
 
14
- [Quick Start](#-quick-start) • [Why mcp-linter](#-why-mcp-doctor) • [Rules Catalog](#-rules-catalog) • [Autofix](#-autofix-engine) • [Mock Server](#-built-in-mock-server) • [GitHub Action](#-github-action--sarif-integration) • [Audit Report](AUDIT_REPORT.md) • [Roadmap](ROADMAP.md)
16
+ [Quick Start](#-quick-start) • [GitHub Action](https://github.com/marketplace/actions/mcp-linter) • [npm Package](https://www.npmjs.com/package/mcp-linter) • [Live Proofs](#-empirical-verification--live-proofs) • [Rules Catalog](#-rules-catalog) • [Autofix](#-autofix-engine) • [Mock Server](#-built-in-mock-server) • [Roadmap](ROADMAP.md)
15
17
 
16
18
  </div>
17
19
 
@@ -34,22 +36,30 @@ The **Model Context Protocol (MCP)** connects frontier LLMs (such as Claude and
34
36
 
35
37
  ## 🚀 Quick Start
36
38
 
37
- Run instantly without installing via `npx`:
38
-
39
+ ### 1. Instant execution with `npx` (no install required)
39
40
  ```bash
40
41
  # Audit an MCP server (Node.js, Python, Go, Rust, or binary)
41
42
  npx mcp-linter -- npx -y @modelcontextprotocol/server-filesystem .
42
43
 
43
- # Audit built-in reference mock server (zero setup required)
44
+ # Audit built-in reference mock server
44
45
  npx mcp-linter -- npx mcp-linter mock clean
45
46
 
46
47
  # Run with automated fix suggestions
47
48
  npx mcp-linter --fix -- node dist/index.js
48
49
 
49
- # Audit and output GitHub Flavored Markdown report
50
+ # Output GitHub Flavored Markdown report (ideal for CI summaries)
50
51
  npx mcp-linter --format markdown -- node dist/index.js
51
52
  ```
52
53
 
54
+ ### 2. Global installation via `npm`
55
+ ```bash
56
+ npm install -g mcp-linter
57
+
58
+ # Both binary aliases are available globally:
59
+ mcp-linter -- node dist/index.js
60
+ mcp-doctor -- node dist/index.js
61
+ ```
62
+
53
63
  ### CLI Output Example
54
64
 
55
65
  ```text
@@ -73,6 +83,33 @@ note protocol/instructions-missing (1 occurrence)
73
83
 
74
84
  ---
75
85
 
86
+ ## 🔬 Empirical Verification & Live Proofs
87
+
88
+ `mcp-linter` has been benchmarked against official reference packages maintained by Anthropic in the Model Context Protocol organization. Any reviewer or developer can replicate these findings locally in seconds:
89
+
90
+ | Official Server Audited | Protocol | Tools Discovered | Health Scorecard | Real Findings Identified | Verification Report |
91
+ | :--- | :---: | :---: | :---: | :--- | :---: |
92
+ | `@modelcontextprotocol/server-everything` | `2025-06-18` | 17 (7 res, 2 tmpl, 4 prompts) | **`90/100` (Grade B)** | 1 parameter missing description (`resourceType`) | [View Report](examples/reports/server-everything.md) |
93
+ | `@modelcontextprotocol/server-memory` | `2025-06-18` | 9 (1 resource) | **`66/100` (Grade C)** | 4 parameters missing descriptions, missing `instructions` | [View Report](examples/reports/server-memory.md) |
94
+ | `@modelcontextprotocol/server-filesystem` | `2025-06-18` | 14 | **`38/100` (Grade D)** | 18 parameters missing descriptions (`write_file`, `edit_file`) | [View Report](examples/reports/server-filesystem.md) |
95
+ | Built-in Clean Mock | `2024-11-05` | 2 | **`100/100` (Grade A+)** | Zero issues, perfect protocol conformance | *Native* |
96
+ | Built-in Vulnerable Mock | `2024-11-05` | 2 | **`0/100` (Grade F)** | Catches Prompt Injection, Stdout Pollution, Destructive hint omission | [View SARIF](examples/reports/vulnerable-server.sarif) |
97
+
98
+ ### 🚀 Instant 5-Second Verification Commands
99
+
100
+ ```bash
101
+ # Verify official memory server audit locally (zero install):
102
+ npx mcp-linter -- npx -y @modelcontextprotocol/server-memory
103
+
104
+ # Verify with automated remediation patch synthesis:
105
+ npx mcp-linter --fix -- npx -y @modelcontextprotocol/server-memory
106
+
107
+ # Audit and output Markdown report with Shields.io badges:
108
+ npx mcp-linter --format markdown -- npx -y @modelcontextprotocol/server-everything
109
+ ```
110
+
111
+ ---
112
+
76
113
  ## 🛠️ CLI Options
77
114
 
78
115
  ```text
@@ -123,14 +160,14 @@ npx mcp-linter --fix -- node ./server.js
123
160
 
124
161
  ## 🧪 Built-in Mock Server
125
162
 
126
- `mcp-doctor` includes an internal reference mock server, enabling instant testing without external dependencies:
163
+ `mcp-linter` includes an internal reference mock server, enabling instant testing without external dependencies:
127
164
 
128
165
  ```bash
129
166
  # Test clean compliant server (Grade A+)
130
- mcp-doctor -- mcp-doctor mock clean
167
+ npx mcp-linter -- npx mcp-linter mock clean
131
168
 
132
169
  # Test vulnerable server demonstrating prompt injection & destructive bugs (Grade F)
133
- mcp-doctor -- mcp-doctor mock vulnerable
170
+ npx mcp-linter -- npx mcp-linter mock vulnerable
134
171
  ```
135
172
 
136
173
  ---
@@ -224,7 +261,7 @@ jobs:
224
261
  run: npm ci && npm run build
225
262
 
226
263
  - name: Audit MCP Server
227
- uses: bakhtiyor-aminzoda/mcp-doctor@v1
264
+ uses: bakhtiyor-aminzoda/mcp-linter@v1
228
265
  with:
229
266
  command: 'node dist/index.js'
230
267
  format: 'sarif'
@@ -260,10 +297,10 @@ Customize rule severities or suppress rules by adding a `.mcp-doctor.json` in yo
260
297
 
261
298
  ## 📦 Programmatic API
262
299
 
263
- You can run `mcp-doctor` inside your own test suite without spawning external shell processes:
300
+ You can run `mcp-linter` inside your own test suite without spawning external shell processes:
264
301
 
265
302
  ```typescript
266
- import { auditServer, buildReport, runRules, formatPretty } from "mcp-doctor";
303
+ import { auditServer, buildReport, runRules, formatPretty } from "mcp-linter";
267
304
 
268
305
  const report = await auditServer({
269
306
  command: "node",
@@ -283,7 +320,7 @@ Contributions are warmly welcomed!
283
320
 
284
321
  ```bash
285
322
  # Clone the repository
286
- git clone https://github.com/bakhtiyor-aminzoda/mcp-doctor.git
323
+ git clone https://github.com/bakhtiyor-aminzoda/mcp-linter.git
287
324
  cd mcp-doctor
288
325
 
289
326
  # Install development dependencies
package/action.yml CHANGED
@@ -1,8 +1,8 @@
1
- name: 'mcp-doctor'
2
- description: 'Audit a Model Context Protocol (MCP) server for protocol conformance, tool safety annotations, schema quality, and prompt injection heuristics.'
1
+ name: 'mcp-linter'
2
+ description: 'Zero-dependency security auditor and protocol linter for Model Context Protocol (MCP) servers.'
3
3
  author: 'Bakhtior Aminzoda'
4
4
  branding:
5
- icon: 'shield-check'
5
+ icon: 'shield'
6
6
  color: 'blue'
7
7
 
8
8
  inputs:
package/dist/cli/main.js CHANGED
@@ -57,7 +57,7 @@ export async function run(argv, environment) {
57
57
  return EXIT_ERROR;
58
58
  }
59
59
  const starterConfig = {
60
- $schema: "https://raw.githubusercontent.com/bakhtiyor-aminzoda/mcp-doctor/main/docs/schema.json",
60
+ $schema: "https://raw.githubusercontent.com/bakhtiyor-aminzoda/mcp-linter/main/docs/schema.json",
61
61
  timeout: 15000,
62
62
  failOn: "error",
63
63
  rules: {
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,EACL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA+CzB;AAuDD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAI/D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAO3D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGlE"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,EACL,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAqDzB;AAuDD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAI/D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAO3D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAGlE"}
@@ -1,14 +1,23 @@
1
1
  import { asArray, asRecord, asString } from "../util/json.js";
2
2
  import { parseInitializeResult, parsePrompt, parseResource, parseResourceTemplate, parseTool, } from "./parse.js";
3
+ import { InitializeRejectedError } from "../transport/errors.js";
3
4
  import { RpcError } from "../transport/jsonrpc.js";
4
5
  import { VERSION } from "../version.js";
5
6
  const CLIENT_INFO = { name: "mcp-doctor", version: VERSION };
6
7
  export async function collectSnapshot(client, command, options) {
7
- const initializeRaw = await client.request("initialize", {
8
- protocolVersion: options.requestedProtocolVersion,
9
- capabilities: { roots: { listChanged: false } },
10
- clientInfo: CLIENT_INFO,
11
- });
8
+ let initializeRaw;
9
+ try {
10
+ initializeRaw = await client.request("initialize", {
11
+ protocolVersion: options.requestedProtocolVersion,
12
+ capabilities: { roots: { listChanged: false } },
13
+ clientInfo: CLIENT_INFO,
14
+ });
15
+ }
16
+ catch (error) {
17
+ if (error instanceof RpcError)
18
+ throw new InitializeRejectedError(error.code, error.message);
19
+ throw error;
20
+ }
12
21
  const initialize = parseInitializeResult(initializeRaw);
13
22
  client.notify("notifications/initialized");
14
23
  const capabilities = initialize.capabilities ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export function formatMarkdown(report) {
33
33
  }
34
34
  lines.push("");
35
35
  }
36
- lines.push("---", `*Generated by [mcp-doctor](https://github.com/bakhtiyor-aminzoda/mcp-doctor) v${report.toolVersion}*`);
36
+ lines.push("---", `*Generated by [mcp-linter](https://github.com/bakhtiyor-aminzoda/mcp-linter) v${report.toolVersion}*`);
37
37
  return lines.join("\n");
38
38
  }
39
39
  function getGradeBadgeUrl(grade) {
@@ -71,9 +71,9 @@ function formatFooter(report, palette) {
71
71
  ? palette.yellow
72
72
  : palette.red;
73
73
  const parts = [
74
- palette.red(`${error} ${plural(error, "error")}`),
75
- palette.yellow(`${warn} ${plural(warn, "warning")}`),
76
- palette.blue(`${info} ${plural(info, "note")}`),
74
+ palette.red(plural(error, "error")),
75
+ palette.yellow(plural(warn, "warning")),
76
+ palette.blue(plural(info, "note")),
77
77
  palette.dim("•"),
78
78
  `${gradeColor(`[Grade: ${report.scorecard.grade}]`)} ${palette.bold(`${report.scorecard.score}/100`)} (${report.scorecard.status})`,
79
79
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"pretty.js","sourceRoot":"","sources":["../../src/report/pretty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pretty.js","sourceRoot":"","sources":["../../src/report/pretty.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ALL_RULES } from "../rules/registry.js";
2
2
  const SARIF_VERSION = "2.1.0";
3
3
  const SARIF_SCHEMA = "https://json.schemastore.org/sarif-2.1.0.json";
4
- const REPOSITORY_BASE_URI = "https://github.com/bakhtiyor-aminzoda/mcp-doctor";
4
+ const REPOSITORY_BASE_URI = "https://github.com/bakhtiyor-aminzoda/mcp-linter";
5
5
  const DOCS_BASE_URI = `${REPOSITORY_BASE_URI}/blob/main/docs/rules`;
6
6
  const LEVEL = {
7
7
  error: "error",
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/rules/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,4DAA4D;AAC5D,eAAO,MAAM,YAAY,QAA0B,CAAC;AAEpD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAyC3C,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAcrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAyCzD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAEtE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,EAAE,CAgBjF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,gFAAiF,CAAC;AAEtH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAkBxF"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/rules/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,4DAA4D;AAC5D,eAAO,MAAM,YAAY,QAA0B,CAAC;AAEpD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AA0C3C,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEjE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAcrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAyCzD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAEtE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,EAAE,CAgBjF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,qFAAqF;AACrF,eAAO,MAAM,uBAAuB,gFAAiF,CAAC;AAEtH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAkBxF"}
@@ -42,7 +42,6 @@ const READ_ONLY_TOKENS = new Set([
42
42
  "lookup",
43
43
  "stat",
44
44
  "export",
45
- "download",
46
45
  "preview",
47
46
  ]);
48
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/rules/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/rules/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools-safety.d.ts","sourceRoot":"","sources":["../../src/rules/tools-safety.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,IAAI,EAqI1C,CAAC"}
1
+ {"version":3,"file":"tools-safety.d.ts","sourceRoot":"","sources":["../../src/rules/tools-safety.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,IAAI,EAsI1C,CAAC"}
@@ -49,7 +49,8 @@ export const toolSafetyRules = [
49
49
  spec: "server/tools#tool-annotations",
50
50
  check: ({ snapshot }) => snapshot.tools
51
51
  .filter((tool) => tool.name !== undefined && classifyName(tool.name) === "read-only")
52
- .filter((tool) => tool.annotations?.readOnlyHint !== true)
52
+ // An explicit readOnlyHint: false is a deliberate choice (e.g. the tool can also write files).
53
+ .filter((tool) => tool.annotations?.readOnlyHint === undefined)
53
54
  .map((tool) => issue({
54
55
  message: `tool "${tool.name}" looks read-only but does not set readOnlyHint`,
55
56
  subject: tool.name,
@@ -1 +1 @@
1
- {"version":3,"file":"tools-safety.js","sourceRoot":"","sources":["../../src/rules/tools-safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools-safety.js","sourceRoot":"","sources":["../../src/rules/tools-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAa,MAAM,WAAW,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,UAAU,CAAC;QACT,EAAE,EAAE,2BAA2B;QAC/B,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,MAAM;QACvB,OAAO,EAAE,gCAAgC;QACzC,SAAS,EACP,0LAA0L;QAC5L,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACtB,QAAQ,CAAC,KAAK;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;aAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,KAAK,CAAC;YACJ,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,WAAW,sBAAsB;YAChE,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,4FAA4F;SACnG,CAAC,CACH;KACN,CAAC;IAEF,UAAU,CAAC;QACT,EAAE,EAAE,gCAAgC;QACpC,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,OAAO;QACxB,OAAO,EAAE,uEAAuE;QAChF,SAAS,EACP,gMAAgM;QAClM,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACtB,QAAQ,CAAC,KAAK;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC;aACtF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,KAAK,IAAI,CAAC;aAC5D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,KAAK,CAAC;YACJ,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,sDAAsD;YACjF,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,sFAAsF;SAC7F,CAAC,CACH;KACN,CAAC;IAEF,UAAU,CAAC;QACT,EAAE,EAAE,8BAA8B;QAClC,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,MAAM;QACvB,OAAO,EAAE,kEAAkE;QAC3E,SAAS,EACP,6KAA6K;QAC/K,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACtB,QAAQ,CAAC,KAAK;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;YACrF,+FAA+F;aAC9F,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,KAAK,SAAS,CAAC;aAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,KAAK,CAAC;YACJ,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,iDAAiD;YAC5E,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,kFAAkF;SACzF,CAAC,CACH;KACN,CAAC;IAEF,UAAU,CAAC;QACT,EAAE,EAAE,2BAA2B;QAC/B,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,OAAO;QACxB,OAAO,EAAE,kDAAkD;QAC3D,SAAS,EACP,uLAAuL;QACzL,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACtB,QAAQ,CAAC,KAAK;aACX,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,KAAK,IAAI,CACxF;aACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,KAAK,CAAC;YACJ,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,WAAW,kDAAkD;YAC5F,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,qFAAqF;SAC5F,CAAC,CACH;KACN,CAAC;IAEF,UAAU,CAAC;QACT,EAAE,EAAE,6BAA6B;QACjC,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,OAAO;QACxB,OAAO,EAAE,+DAA+D;QACxE,SAAS,EACP,8PAA8P;QAChQ,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACtB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,IAAI,WAAW,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YACzC,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxD,KAAK,CAAC;gBACJ,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,WAAW,iBAAiB,OAAO,CAAC,KAAK,EAAE;gBAC1E,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,wGAAwG;aAC/G,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;KACL,CAAC;IAEF,UAAU,CAAC;QACT,EAAE,EAAE,qBAAqB;QACzB,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,MAAM;QACvB,OAAO,EAAE,kCAAkC;QAC3C,SAAS,EACP,mKAAmK;QACrK,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACtB,QAAQ,CAAC,KAAK;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,SAAS,CAAC;aACnF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,KAAK,CAAC;YACJ,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,WAAW,gBAAgB;YAC1D,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,8CAA8C;SACrD,CAAC,CACH;KACN,CAAC;CACH,CAAC"}
@@ -22,6 +22,12 @@ export declare class RequestTimeoutError extends DoctorError {
22
22
  readonly timeoutMs: number;
23
23
  constructor(method: string, timeoutMs: number);
24
24
  }
25
+ /** The server answered `initialize` with a JSON-RPC error, so there is no session to audit. */
26
+ export declare class InitializeRejectedError extends DoctorError {
27
+ readonly code: number;
28
+ readonly reason: string;
29
+ constructor(code: number, reason: string);
30
+ }
25
31
  /**
26
32
  * @deprecated Empty capabilities are evaluated as an audit finding by rule `protocol/no-capabilities`
27
33
  * and reported in `AuditReport` rather than thrown as a fatal transport exception.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/transport/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,WAAW;IAE7C,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,KAAK;gBADb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,KAAK;CAMzB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAE5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAFlB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,UAAU,EAAE,MAAM;CAO9B;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM;gBADjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;CAQ7B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;;CAQnD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/transport/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,WAAW;IAE7C,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,KAAK;gBADb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,KAAK;CAMzB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAE5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAFlB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,UAAU,EAAE,MAAM;CAO9B;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAEhD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM;gBADjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM;CAQ7B;AAED,+FAA+F;AAC/F,qBAAa,uBAAwB,SAAQ,WAAW;IAEpD,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAQ1B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;;CAQnD"}
@@ -45,6 +45,18 @@ export class RequestTimeoutError extends DoctorError {
45
45
  this.name = "RequestTimeoutError";
46
46
  }
47
47
  }
48
+ /** The server answered `initialize` with a JSON-RPC error, so there is no session to audit. */
49
+ export class InitializeRejectedError extends DoctorError {
50
+ code;
51
+ reason;
52
+ constructor(code, reason) {
53
+ super(`The server rejected \`initialize\` (JSON-RPC error ${code}): ${reason}\n` +
54
+ `Check the server's required configuration — API keys, tokens or environment variables.`);
55
+ this.code = code;
56
+ this.reason = reason;
57
+ this.name = "InitializeRejectedError";
58
+ }
59
+ }
48
60
  /**
49
61
  * @deprecated Empty capabilities are evaluated as an audit finding by rule `protocol/no-capabilities`
50
62
  * and reported in `AuditReport` rather than thrown as a fatal transport exception.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/transport/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAEpC;IACA;IAFX,YACW,OAAe,EACf,MAAa;QAEtB,KAAK,CAAC,qBAAqB,OAAO,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAHlD,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAO;QAGtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAEnC;IACA;IACA;IAHX,YACW,IAAmB,EACnB,MAAqB,EACrB,UAAkB;QAE3B,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,SAAS,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,KAAK,CAAC,8BAA8B,GAAG,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAN5D,SAAI,GAAJ,IAAI,CAAe;QACnB,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAQ;QAK3B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAEvC;IACA;IAFX,YACW,MAAc,EACd,SAAiB;QAE1B,KAAK,CACH,KAAK,MAAM,6BAA6B,SAAS,sCAAsC;YACrF,gEAAgE,CACnE,CAAC;QANO,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAQ;QAM1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD;QACE,KAAK,CACH,uFAAuF;YACrF,4BAA4B,CAC/B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/transport/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAEpC;IACA;IAFX,YACW,OAAe,EACf,MAAa;QAEtB,KAAK,CAAC,qBAAqB,OAAO,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAHlD,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAO;QAGtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAEnC;IACA;IACA;IAHX,YACW,IAAmB,EACnB,MAAqB,EACrB,UAAkB;QAE3B,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,SAAS,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,KAAK,CAAC,8BAA8B,GAAG,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAN5D,SAAI,GAAJ,IAAI,CAAe;QACnB,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAQ;QAK3B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAEvC;IACA;IAFX,YACW,MAAc,EACd,SAAiB;QAE1B,KAAK,CACH,KAAK,MAAM,6BAA6B,SAAS,sCAAsC;YACrF,gEAAgE,CACnE,CAAC;QANO,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAQ;QAM1B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,+FAA+F;AAC/F,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAE3C;IACA;IAFX,YACW,IAAY,EACZ,MAAc;QAEvB,KAAK,CACH,sDAAsD,IAAI,MAAM,MAAM,IAAI;YACxE,wFAAwF,CAC3F,CAAC;QANO,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QAMvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD;QACE,KAAK,CACH,uFAAuF;YACrF,4BAA4B,CAC/B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Kept in sync with package.json by test/version.test.ts. */
2
- export declare const VERSION = "1.0.0";
2
+ export declare const VERSION = "1.0.1";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Kept in sync with package.json by test/version.test.ts. */
2
- export const VERSION = "1.0.0";
2
+ export const VERSION = "1.0.1";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-linter",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Audit a Model Context Protocol server: protocol conformance, tool safety annotations, schema quality and prompt-injection heuristics. Zero runtime dependencies.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -20,11 +20,11 @@
20
20
  "author": "Bakhtior Aminzoda <bakhtiyor.aminzoda@gmail.com>",
21
21
  "repository": {
22
22
  "type": "git",
23
- "url": "https://github.com/bakhtiyor-aminzoda/mcp-doctor.git"
23
+ "url": "https://github.com/bakhtiyor-aminzoda/mcp-linter.git"
24
24
  },
25
- "homepage": "https://github.com/bakhtiyor-aminzoda/mcp-doctor#readme",
25
+ "homepage": "https://github.com/bakhtiyor-aminzoda/mcp-linter#readme",
26
26
  "bugs": {
27
- "url": "https://github.com/bakhtiyor-aminzoda/mcp-doctor/issues"
27
+ "url": "https://github.com/bakhtiyor-aminzoda/mcp-linter/issues"
28
28
  },
29
29
  "license": "MIT",
30
30
  "type": "module",