mcp-scorecard 0.1.2 → 0.1.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.3 — 2026-05-29
4
+
5
+ ### Docs
6
+
7
+ - **README now shows a real captured run.** Added a `## Demo` section with the
8
+ verbatim output of `npx mcp-scorecard @modelcontextprotocol/server-everything`
9
+ — the official MCP reference server scores 44/100, demonstrating the
10
+ conventions checks against a real, well-known public server (no hand-edited
11
+ output).
12
+
13
+ ### Fixed
14
+
15
+ - **`SERVER_VERSION` constant synced to the published version.** It had drifted
16
+ to `0.1.1` while package.json shipped `0.1.2`, so the report footer
17
+ (`_Generated by mcp-scorecard vX_`) printed a stale version. All four sources
18
+ (package.json, server.json ×2, `src/constants.ts`) are now `0.1.3`.
19
+
3
20
  ## 0.1.1 — 2026-05-23
4
21
 
5
22
  ### Fixed
package/README.md CHANGED
@@ -34,6 +34,50 @@ npx -y mcp-scorecard my-mcp --min-score 80
34
34
  npx -y mcp-scorecard my-mcp --json
35
35
  ```
36
36
 
37
+ ## Demo
38
+
39
+ Real captured run auditing the official MCP reference server
40
+ [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything)
41
+ — nothing here is hand-edited, this is exactly what the CLI printed:
42
+
43
+ ```console
44
+ $ npx -y mcp-scorecard @modelcontextprotocol/server-everything
45
+
46
+ # mcp-scorecard - @modelcontextprotocol/server-everything @2026.1.26
47
+
48
+ **Agent-readiness score:** 44/100
49
+
50
+ - [PASS] Schema validity (13/13 tools have valid input schema)
51
+ - [FAIL] Tool naming convention (12/13 tools violate snake_case)
52
+ - [FAIL] Privacy modes documented (only 1 tool(s) mention privacy modes)
53
+ - [PASS] Mutation gating (no write tools — n/a)
54
+ - [FAIL] Agent manifest (no agent_manifest tool)
55
+ - [FAIL] Smoke test (no smoke script and no test script)
56
+ - [PASS] Resources advertised (7 resources registered)
57
+ - [PASS] Tool descriptions (avg 88 chars across 13 tools)
58
+ - [FAIL] Annotations (0/13 read tools annotated)
59
+ - [FAIL] Manifest discoverability (no discovery tools)
60
+
61
+ ## Details
62
+ ### Tool naming convention
63
+ - Non-snake_case names: get-annotated-message, get-env, get-resource-links, get-resource-reference, get-structured-content, get-sum, get-tiny-image, gzip-file-as-resource, toggle-simulated-logging, toggle-subscriber-updates
64
+ ### Annotations
65
+ - Missing readOnlyHint: echo, get-annotated-message, get-env, get-resource-links, get-resource-reference, get-structured-content, get-sum, get-tiny-image, gzip-file-as-resource, toggle-simulated-logging
66
+
67
+ ## Suggested fixes
68
+ - Rename tools to lowercase snake_case (a-z, 0-9, _).
69
+ - Add a `privacy_mode` parameter (summary | structured | raw) on read tools so agents can request only what they need.
70
+ - Expose a `<prefix>_agent_manifest` tool that returns { recommended_first_calls, standard_tools, ... } so agents can self-onboard.
71
+ - Add `scripts/smoke-tools.mjs` that boots the server via StdioClientTransport and asserts the tool list.
72
+ - Add `annotations: { readOnlyHint: true, openWorldHint: false }` to every read tool definition.
73
+ - Expose discovery tools so agents can self-onboard: `*_agent_manifest`, `*_data_inventory`, `*_capabilities`, `*_connection_status`.
74
+ ```
75
+
76
+ The reference server is a feature showcase, not a production integration — a 44 is
77
+ expected and is exactly why the conventions checks exist. Agent-oriented servers
78
+ that adopt snake_case naming, a manifest tool, and read-only annotations land in
79
+ the 80s and 90s.
80
+
37
81
  ## What it checks
38
82
 
39
83
  Ten quality dimensions, each scored 0-10. Final score is the sum, capped at 100.
@@ -3,7 +3,7 @@
3
3
  * same string. Bumping this without updating package.json is intentional during
4
4
  * dev (keep src as source of truth); a release script can sync them.
5
5
  */
6
- export declare const SERVER_VERSION = "0.1.1";
6
+ export declare const SERVER_VERSION = "0.1.3";
7
7
  /** Identifier used when the probe connects to a target MCP server. */
8
8
  export declare const PROBE_CLIENT_NAME = "mcp-scorecard";
9
9
  /** Env var set on the spawned target so MCP authors can detect we are probing
package/dist/constants.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * same string. Bumping this without updating package.json is intentional during
4
4
  * dev (keep src as source of truth); a release script can sync them.
5
5
  */
6
- export const SERVER_VERSION = '0.1.1';
6
+ export const SERVER_VERSION = '0.1.3';
7
7
  /** Identifier used when the probe connects to a target MCP server. */
8
8
  export const PROBE_CLIENT_NAME = 'mcp-scorecard';
9
9
  /** Env var set on the spawned target so MCP authors can detect we are probing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-scorecard",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "mcpName": "io.github.davidmosiah/mcp-scorecard",
5
5
  "description": "Agent-readiness scorecard for any MCP server. Probes a target, runs 10 checks, outputs a 0-100 score with actionable findings.",
6
6
  "type": "module",