@yawlabs/mcp-compliance 0.15.0 → 0.15.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.
@@ -3209,7 +3209,7 @@ async function runComplianceSuite(target, options = {}) {
3209
3209
  return { passed: true, details: `HTTP ${res.statusCode} (unauthenticated request rejected)` };
3210
3210
  }
3211
3211
  return { passed: false, details: `HTTP ${res.statusCode} \u2014 server accepted unauthenticated request` };
3212
- } catch (err) {
3212
+ } catch (_err) {
3213
3213
  return { passed: true, details: "Connection rejected (acceptable)" };
3214
3214
  }
3215
3215
  }
@@ -3271,7 +3271,7 @@ async function runComplianceSuite(target, options = {}) {
3271
3271
  return { passed: true, details: `HTTP ${res.statusCode} (malformed auth rejected)` };
3272
3272
  }
3273
3273
  return { passed: false, details: `HTTP ${res.statusCode} \u2014 server accepted malformed auth token` };
3274
- } catch (err) {
3274
+ } catch (_err) {
3275
3275
  return { passed: true, details: "Connection rejected (acceptable)" };
3276
3276
  }
3277
3277
  }
@@ -3784,7 +3784,7 @@ async function runComplianceSuite(target, options = {}) {
3784
3784
  if (!toolsListOk) return { passed: true, details: "Skipped: tools/list not available" };
3785
3785
  const tools = cachedToolsList ?? [];
3786
3786
  if (tools.length === 0) return { passed: true, details: "No tools to validate" };
3787
- const missing = tools.filter((t) => !t.inputSchema || t.inputSchema.type !== "object");
3787
+ const missing = tools.filter((t) => t.inputSchema?.type !== "object");
3788
3788
  if (missing.length > 0) {
3789
3789
  return {
3790
3790
  passed: false,
package/dist/index.js CHANGED
@@ -3568,7 +3568,7 @@ async function runComplianceSuite(target, options = {}) {
3568
3568
  return { passed: true, details: `HTTP ${res.statusCode} (unauthenticated request rejected)` };
3569
3569
  }
3570
3570
  return { passed: false, details: `HTTP ${res.statusCode} \u2014 server accepted unauthenticated request` };
3571
- } catch (err) {
3571
+ } catch (_err) {
3572
3572
  return { passed: true, details: "Connection rejected (acceptable)" };
3573
3573
  }
3574
3574
  }
@@ -3630,7 +3630,7 @@ async function runComplianceSuite(target, options = {}) {
3630
3630
  return { passed: true, details: `HTTP ${res.statusCode} (malformed auth rejected)` };
3631
3631
  }
3632
3632
  return { passed: false, details: `HTTP ${res.statusCode} \u2014 server accepted malformed auth token` };
3633
- } catch (err) {
3633
+ } catch (_err) {
3634
3634
  return { passed: true, details: "Connection rejected (acceptable)" };
3635
3635
  }
3636
3636
  }
@@ -4143,7 +4143,7 @@ async function runComplianceSuite(target, options = {}) {
4143
4143
  if (!toolsListOk) return { passed: true, details: "Skipped: tools/list not available" };
4144
4144
  const tools = cachedToolsList ?? [];
4145
4145
  if (tools.length === 0) return { passed: true, details: "No tools to validate" };
4146
- const missing = tools.filter((t) => !t.inputSchema || t.inputSchema.type !== "object");
4146
+ const missing = tools.filter((t) => t.inputSchema?.type !== "object");
4147
4147
  if (missing.length > 0) {
4148
4148
  return {
4149
4149
  passed: false,
@@ -5798,7 +5798,7 @@ Error: ${message}
5798
5798
  }
5799
5799
  }
5800
5800
  );
5801
- program.command("unpublish").description("Remove a previously-published compliance report from mcp.hosting").argument("<url>", "MCP server URL whose report should be removed").action(async (url) => {
5801
+ program.command("unpublish").description("Remove a previously-published compliance report from mcp.hosting").argument("<url>", "MCP server URL whose report should be removed").option("-y, --yes", "Skip the confirmation prompt (for automation)").action(async (url, opts) => {
5802
5802
  try {
5803
5803
  const stored = getTokenForUrl(url);
5804
5804
  if (!stored) {
@@ -5811,6 +5811,13 @@ No delete token found locally for ${url} \u2014 nothing to unpublish from this m
5811
5811
  );
5812
5812
  return;
5813
5813
  }
5814
+ if (!opts.yes) {
5815
+ const ok = await promptYesNo(chalk2.yellow(`Remove the published report for ${url}? This cannot be undone.`));
5816
+ if (!ok) {
5817
+ console.error(chalk2.dim("\nAborted. Re-run with --yes to skip this prompt.\n"));
5818
+ return;
5819
+ }
5820
+ }
5814
5821
  await unpublishReport(stored.hash, stored.entry.deleteToken);
5815
5822
  deleteToken(stored.hash);
5816
5823
  console.log(chalk2.green(`
@@ -3,7 +3,7 @@ import {
3
3
  TEST_DEFINITIONS,
4
4
  readPackageVersion,
5
5
  runComplianceSuite
6
- } from "../chunk-A3UG3J63.js";
6
+ } from "../chunk-B5HSDK4K.js";
7
7
 
8
8
  // src/mcp/server.ts
9
9
  import { realpathSync } from "fs";
package/dist/runner.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  previewTests,
11
11
  runComplianceSuite,
12
12
  urlHash
13
- } from "./chunk-A3UG3J63.js";
13
+ } from "./chunk-B5HSDK4K.js";
14
14
  export {
15
15
  SPEC_BASE,
16
16
  SPEC_VERSION,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yawlabs/mcp-compliance",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "mcpName": "io.github.YawLabs/mcp-compliance",
5
5
  "description": "CLI tool and MCP server that tests MCP servers for spec compliance",
6
6
  "license": "MIT",