@mcp-box/mcpscore 0.8.0

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 ADDED
@@ -0,0 +1,30 @@
1
+ # mcpscore
2
+
3
+ **Lighthouse for MCP** — audit any [Model Context Protocol](https://modelcontextprotocol.io)
4
+ server and get a scored, actionable report in seconds.
5
+
6
+ ```bash
7
+ npx @mcp-box/mcpscore https://your-server.example/mcp
8
+ ```
9
+
10
+ This npm package is a thin wrapper around the Python
11
+ [mcpscore](https://pypi.org/project/mcpscore/) CLI, pinned to the matching
12
+ version — `npx @mcp-box/mcpscore` and `uvx mcpscore` behave identically. It requires
13
+ [uv](https://docs.astral.sh/uv/) or [pipx](https://pipx.pypa.io/) on your PATH
14
+ (no packages are installed into your environment).
15
+
16
+ ## What you get
17
+
18
+ - A severity-weighted quality score across protocol compliance, server
19
+ metadata, capabilities, tools, security, and transport — deterministic,
20
+ no API keys, CI-ready (`--json`).
21
+ - A separate readiness score for the upcoming MCP spec revision
22
+ (2026-07-28, stateless lifecycle).
23
+ - Actionable messages: every failed check says what to fix, and every rule
24
+ is anchored to the spec.
25
+
26
+ ## Documentation
27
+
28
+ - [docs.mcpscore.dev](https://docs.mcpscore.dev) — quick start, scoring
29
+ methodology, full rules reference
30
+ - [GitHub](https://github.com/mcp-box/mcpscore) — source, issues, contributing
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env node
2
+ // mcpscore npm wrapper: runs the Python mcpscore CLI at the exact version
3
+ // this package pins (package.json -> mcpscore.pythonVersion), so
4
+ // `npx mcpscore <target>` and `uvx mcpscore <target>` behave identically.
5
+ //
6
+ // Resolution order: uvx (uv) -> pipx. No implicit installs into the user's
7
+ // environment; if neither runner exists, print clear instructions and exit 1.
8
+ "use strict";
9
+
10
+ const { spawnSync } = require("node:child_process");
11
+
12
+ const pkg = require("../package.json");
13
+ const spec = `mcpscore==${pkg.mcpscore.pythonVersion}`;
14
+ const args = process.argv.slice(2);
15
+
16
+ /**
17
+ * Run the CLI through one Python runner; returns only if the runner is absent.
18
+ * @param {string} cmd - runner executable name
19
+ * @param {string[]} prefix - runner arguments placed before the mcpscore args
20
+ */
21
+ function tryRun(cmd, prefix) {
22
+ const result = spawnSync(cmd, [...prefix, ...args], { stdio: "inherit" });
23
+ if (result.error) {
24
+ if (result.error.code === "ENOENT") return; // runner not installed — try the next one
25
+ console.error(`mcpscore: failed to run ${cmd}: ${result.error.message}`);
26
+ process.exit(1);
27
+ }
28
+ // Propagate the CLI's exit code (mcpscore's codes are a documented contract:
29
+ // 0 ok, 1 usage error, 2 connection failure).
30
+ process.exit(result.status === null ? 1 : result.status);
31
+ }
32
+
33
+ tryRun("uvx", [spec]);
34
+ tryRun("pipx", ["run", spec]);
35
+
36
+ console.error(
37
+ [
38
+ `mcpscore is a Python CLI (this npm package is a thin wrapper for ${spec}).`,
39
+ "It needs one of these Python runners on your PATH:",
40
+ "",
41
+ " uv https://docs.astral.sh/uv/ (then this command just works)",
42
+ " pipx https://pipx.pypa.io/",
43
+ "",
44
+ "Or install it directly: pip install mcpscore",
45
+ "Docs: https://docs.mcpscore.dev",
46
+ ].join("\n"),
47
+ );
48
+ process.exit(1);
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@mcp-box/mcpscore",
3
+ "version": "0.8.0",
4
+ "description": "Lighthouse for MCP — audit any MCP server and get a scored, actionable report in seconds. Node wrapper for the Python mcpscore CLI.",
5
+ "bin": {
6
+ "mcpscore": "bin/mcpscore.js"
7
+ },
8
+ "files": [
9
+ "bin/"
10
+ ],
11
+ "engines": {
12
+ "node": ">=18"
13
+ },
14
+ "license": "MIT",
15
+ "author": "Alex Akimov",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/mcp-box/mcpscore.git",
19
+ "directory": "npm"
20
+ },
21
+ "homepage": "https://mcpscore.dev",
22
+ "bugs": "https://github.com/mcp-box/mcpscore/issues",
23
+ "keywords": [
24
+ "mcp",
25
+ "model-context-protocol",
26
+ "mcp-server",
27
+ "audit",
28
+ "quality",
29
+ "lint",
30
+ "cli",
31
+ "score",
32
+ "compliance",
33
+ "developer-tools"
34
+ ],
35
+ "mcpscore": {
36
+ "pythonVersion": "0.8.0"
37
+ },
38
+ "publishConfig": {
39
+ "access": "public"
40
+ }
41
+ }