@viberaven/mcp 1.5.1 → 1.5.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/README.md CHANGED
@@ -18,11 +18,7 @@ For agent-mode artifacts, use `npx -y viberaven --agent-mode`.
18
18
  npx -y @viberaven/mcp
19
19
  ```
20
20
 
21
- You can also start the MCP server from the main CLI package:
22
-
23
- ```bash
24
- npx -y viberaven mcp
25
- ```
21
+ This package is the only MCP entrypoint in 1.5.3. The main `viberaven` CLI package does not start an MCP server.
26
22
 
27
23
  ## Tools
28
24
 
@@ -30,12 +26,12 @@ npx -y viberaven mcp
30
26
  - `viberaven_verify` -> `npx -y viberaven check --json`
31
27
  - `viberaven_audit` -> `npx -y viberaven audit --vercel-supabase`
32
28
  - `viberaven_init_rules` -> `npx -y viberaven init`
33
- - `viberaven_clean_plan` -> `npx -y viberaven clean --plan`
29
+ - `viberaven_clean_plan` -> `npx -y viberaven clean --plan`: writes and returns a context cleanup review plan; deletes nothing (fixed in 1.5.2)
34
30
  - `viberaven_strict_gate` -> `npx -y viberaven --strict --json`
35
31
  - `viberaven_gate_result` -> `npx -y viberaven --json`
36
32
  - `viberaven_context_map` -> `npx -y viberaven --condense`
37
33
  - `viberaven_actions` -> `npx -y viberaven actions`
38
- - `viberaven_verify_action` -> `npx -y viberaven verify --action <id>`
34
+ - `viberaven_verify_action` -> `npx -y viberaven --verify --action <id>`
39
35
  - `viberaven_heal_plan` -> `npx -y viberaven --heal --plan`
40
36
  - `viberaven_heal_prompt` -> `npx -y viberaven --heal --prompt`
41
37
  - `viberaven_heal_apply` -> `npx -y viberaven --heal --apply`
@@ -52,7 +52,7 @@ function mcpVersion() {
52
52
  } catch {
53
53
  }
54
54
  }
55
- found ??= true ? "1.5.1" : void 0;
55
+ found ??= true ? "1.5.3" : void 0;
56
56
  if (!found || !PLAIN_VERSION.test(found)) {
57
57
  throw new Error(`Could not read a valid ${MCP_PACKAGE} version (got ${JSON.stringify(found)}), so the matching ${CLI_PACKAGE} cannot be pinned.`);
58
58
  }
package/dist/server.js CHANGED
@@ -22,6 +22,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
22
22
  var server_exports = {};
23
23
  __export(server_exports, {
24
24
  ALL_TOOLS: () => ALL_TOOLS,
25
+ INSTRUCTIONS: () => INSTRUCTIONS,
25
26
  SERVER_INFO: () => SERVER_INFO
26
27
  });
27
28
  module.exports = __toCommonJS(server_exports);
@@ -38,7 +39,7 @@ var cwdSchema = {
38
39
  var readinessTools = [
39
40
  {
40
41
  name: "viberaven_check_readiness",
41
- description: "Run BEFORE deploying, shipping to real users, or touching auth, database/RLS, billing, webhooks, or environment variables. Runs the local `viberaven check` (no login, no API key, no telemetry) for launch blockers (missing RLS, leaked secrets, unbounded queries, unsigned webhooks) and writes a prioritized task list to .viberaven/agent-tasklist.md plus a machine verdict to .viberaven/gate-result.json. Calling this first avoids wasted code-generation re-runs by surfacing production risks before you write code.",
42
+ description: "Useful before an AI-built app on Vercel and Supabase launches or is handed off. Runs the local `viberaven check` (no login, no API key, no telemetry), which reads the repository for launch gaps (missing RLS in migrations, leaked secrets, unbounded queries, unsigned webhooks) and writes a prioritized task list to .viberaven/agent-tasklist.md plus a verdict to .viberaven/gate-result.json. This is advice, not a gate: the user decides when to ship. It reads repo files and does not query the live database.",
42
43
  inputSchema: cwdSchema
43
44
  },
44
45
  {
@@ -48,17 +49,17 @@ var readinessTools = [
48
49
  },
49
50
  {
50
51
  name: "viberaven_strict_gate",
51
- description: 'Run the strict production gate and return the machine verdict. Call this right before a deploy or CI pass to confirm gate.status === "clear". Returns JSON suitable for blocking a pipeline.',
52
+ description: "Run `viberaven --strict --json` and return the verdict from .viberaven/gate-result.json (gate.status is clear, warning or not_clear). Useful before a deploy or CI run when the user wants the verdict as JSON. The user decides whether to ship.",
52
53
  inputSchema: cwdSchema
53
54
  },
54
55
  {
55
56
  name: "viberaven_gate_result",
56
- description: "Return the current contents of .viberaven/gate-result.json without re-scanning. Use this to read the last machine verdict before deciding whether to deploy.",
57
+ description: "Run a fresh local scan (`viberaven --json`) and return the verdict it writes to .viberaven/gate-result.json (gate.status is clear, warning or not_clear). It rewrites the .viberaven artifacts; it does not read an older result without scanning.",
57
58
  inputSchema: cwdSchema
58
59
  },
59
60
  {
60
61
  name: "viberaven_context_map",
61
- description: "Refresh and return .viberaven/context-map.json \u2014 a compact summary of the last scan for the next agent step. Use this to load minimal context before acting on a gap.",
62
+ description: "Refresh and return .viberaven/context-map.json, a compact summary of the last scan for the next agent step. Use this to load minimal context before acting on a gap.",
62
63
  inputSchema: cwdSchema
63
64
  }
64
65
  ];
@@ -67,7 +68,7 @@ var readinessTools = [
67
68
  var auditTools = [
68
69
  {
69
70
  name: "viberaven_audit",
70
- description: "Run local Vercel + Supabase production checks: table RLS presence, policy quality, view/function boundaries, service-role boundaries, and Vercel pooler usage. Call this when the project uses Supabase or Vercel and you need a focused infra audit beyond the general readiness gate. Pass json: true for machine-readable output.",
71
+ description: "Run local Vercel + Supabase production checks: table RLS presence, policy quality, view/function boundaries, service-role boundaries, and Vercel pooler usage. Call this when the project uses Supabase or Vercel and you need a focused infra audit beyond the general readiness check. Pass json: true for machine-readable output.",
71
72
  inputSchema: {
72
73
  type: "object",
73
74
  properties: {
@@ -93,7 +94,7 @@ var healSchema = {
93
94
  var healTools = [
94
95
  {
95
96
  name: "viberaven_heal_plan",
96
- description: "Write a non-destructive heal plan for a specific gap or target file. Call this BEFORE viberaven_heal_apply to preview the exact repo-code change. Does not modify files.",
97
+ description: "Write a non-destructive heal plan (.viberaven/heal-plan.md) for a specific gap or target file, to review before viberaven_heal_apply. The plan names the target and the verify command. For rls_disabled it also shows the new migration it would write and its SQL, or why it will not write one; other gaps get no patch preview. Does not modify source files.",
97
98
  inputSchema: healSchema
98
99
  },
99
100
  {
@@ -103,7 +104,7 @@ var healTools = [
103
104
  },
104
105
  {
105
106
  name: "viberaven_heal_apply",
106
- description: "Apply a guarded, low-risk repo-code heal recipe for a supported gap. Only call this after viberaven_heal_plan. Pass yes: true to skip confirmation. Returns the applied change summary.",
107
+ description: "Apply a guarded repo-code heal recipe for a supported gap. Only call this after viberaven_heal_plan. Pass yes: true to skip confirmation. The rls_disabled recipe writes a migration that enables row level security with no policies, so browser reads of those tables return no rows until policies exist: call it only after the user agrees. Its task leaves out yes: true; pass yes: true only once the user agrees. Returns the applied change summary, with any warnings.",
107
108
  inputSchema: healSchema
108
109
  }
109
110
  ];
@@ -112,7 +113,7 @@ var healTools = [
112
113
  var rulesTools = [
113
114
  {
114
115
  name: "viberaven_init_rules",
115
- description: "Install bounded VibeRaven agent-instruction rules into native AI instruction files (CLAUDE.md / AGENTS.md / .cursor/rules). Call this once per project so coding agents pull VibeRaven into the deploy/auth/RLS workflow. Use dryRun: true to preview first.",
116
+ description: "Install bounded VibeRaven agent-instruction rules into native AI instruction files (CLAUDE.md / AGENTS.md / .cursor/rules), so coding agents know when a VibeRaven pass applies. Use dryRun: true to preview first.",
116
117
  inputSchema: {
117
118
  type: "object",
118
119
  properties: {
@@ -125,7 +126,7 @@ var rulesTools = [
125
126
  },
126
127
  {
127
128
  name: "viberaven_clean_plan",
128
- description: "Write a non-destructive cleanup plan for generated .viberaven artifacts and logs. Call this when the .viberaven directory has grown stale. Does not delete anything \u2014 it only produces a reviewable plan.",
129
+ description: "Write a non-destructive cleanup plan for generated .viberaven artifacts and logs. Call this when the .viberaven directory has grown stale. Does not delete anything; it only produces a reviewable plan.",
129
130
  inputSchema: {
130
131
  type: "object",
131
132
  properties: { cwd: { type: "string", description: "Project root. Defaults to current working directory." } },
@@ -161,7 +162,7 @@ var actionTools = [
161
162
  var npmTools = [
162
163
  {
163
164
  name: "viberaven_validate_npm_package",
164
- description: "Check whether an npm package name exists and looks safe before installing it. Call this BEFORE adding any new dependency. After installing, run viberaven_check_readiness to re-gate the change.",
165
+ description: "Look up npm package names on the public registry (registry.npmjs.org). Returns not_found when the registry has no such package or cannot be reached, suspicious when the registry answers with an error other than 404, and suspicious when the package was first published less than 14 days ago and its name is within 2 character edits of a popular package (a typosquat signal), or when it has an empty description, no listed maintainers and 3 or fewer published versions. Anything else is ok, which only means none of these signals fired; it is not a security review of the package. Useful when an agent is about to add a dependency the project has not used before.",
165
166
  inputSchema: {
166
167
  type: "object",
167
168
  properties: {
@@ -191,7 +192,7 @@ function mcpVersion() {
191
192
  } catch {
192
193
  }
193
194
  }
194
- found ??= true ? "1.5.1" : void 0;
195
+ found ??= true ? "1.5.3" : void 0;
195
196
  if (!found || !PLAIN_VERSION.test(found)) {
196
197
  throw new Error(`Could not read a valid ${MCP_PACKAGE} version (got ${JSON.stringify(found)}), so the matching ${CLI_PACKAGE} cannot be pinned.`);
197
198
  }
@@ -361,8 +362,17 @@ async function handleRequest(method, params) {
361
362
  }
362
363
 
363
364
  // src/server.ts
364
- var SERVER_INFO = { name: "viberaven-mcp", version: "1.5.1" };
365
- var server = new import_server.Server(SERVER_INFO, { capabilities: { tools: {} } });
365
+ var SERVER_INFO = { name: "viberaven-mcp", version: "1.5.3" };
366
+ var INSTRUCTIONS = [
367
+ "VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase.",
368
+ "Suggest one viberaven_check_readiness run before such an app launches or is handed off, after a Supabase migration or policy change,",
369
+ "or when the user pastes a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook.",
370
+ "This is advice, not a gate: the user decides when to ship.",
371
+ "It is a repository check, not a live database test. It cannot show which RLS policies are live in production, and a clear result is not a security audit.",
372
+ "Do not use it for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.",
373
+ "After fixes, call viberaven_verify once per batch, not after every edit."
374
+ ].join(" ");
375
+ var server = new import_server.Server(SERVER_INFO, { capabilities: { tools: {} }, instructions: INSTRUCTIONS });
366
376
  server.setRequestHandler(
367
377
  import_types.ListToolsRequestSchema,
368
378
  async (request) => handleRequest("tools/list", request.params)
@@ -384,5 +394,6 @@ if (require.main === module) {
384
394
  // Annotate the CommonJS export names for ESM import in node:
385
395
  0 && (module.exports = {
386
396
  ALL_TOOLS,
397
+ INSTRUCTIONS,
387
398
  SERVER_INFO
388
399
  });
@@ -39,7 +39,7 @@ var cwdSchema = {
39
39
  var readinessTools = [
40
40
  {
41
41
  name: "viberaven_check_readiness",
42
- description: "Run BEFORE deploying, shipping to real users, or touching auth, database/RLS, billing, webhooks, or environment variables. Runs the local `viberaven check` (no login, no API key, no telemetry) for launch blockers (missing RLS, leaked secrets, unbounded queries, unsigned webhooks) and writes a prioritized task list to .viberaven/agent-tasklist.md plus a machine verdict to .viberaven/gate-result.json. Calling this first avoids wasted code-generation re-runs by surfacing production risks before you write code.",
42
+ description: "Useful before an AI-built app on Vercel and Supabase launches or is handed off. Runs the local `viberaven check` (no login, no API key, no telemetry), which reads the repository for launch gaps (missing RLS in migrations, leaked secrets, unbounded queries, unsigned webhooks) and writes a prioritized task list to .viberaven/agent-tasklist.md plus a verdict to .viberaven/gate-result.json. This is advice, not a gate: the user decides when to ship. It reads repo files and does not query the live database.",
43
43
  inputSchema: cwdSchema
44
44
  },
45
45
  {
@@ -49,17 +49,17 @@ var readinessTools = [
49
49
  },
50
50
  {
51
51
  name: "viberaven_strict_gate",
52
- description: 'Run the strict production gate and return the machine verdict. Call this right before a deploy or CI pass to confirm gate.status === "clear". Returns JSON suitable for blocking a pipeline.',
52
+ description: "Run `viberaven --strict --json` and return the verdict from .viberaven/gate-result.json (gate.status is clear, warning or not_clear). Useful before a deploy or CI run when the user wants the verdict as JSON. The user decides whether to ship.",
53
53
  inputSchema: cwdSchema
54
54
  },
55
55
  {
56
56
  name: "viberaven_gate_result",
57
- description: "Return the current contents of .viberaven/gate-result.json without re-scanning. Use this to read the last machine verdict before deciding whether to deploy.",
57
+ description: "Run a fresh local scan (`viberaven --json`) and return the verdict it writes to .viberaven/gate-result.json (gate.status is clear, warning or not_clear). It rewrites the .viberaven artifacts; it does not read an older result without scanning.",
58
58
  inputSchema: cwdSchema
59
59
  },
60
60
  {
61
61
  name: "viberaven_context_map",
62
- description: "Refresh and return .viberaven/context-map.json \u2014 a compact summary of the last scan for the next agent step. Use this to load minimal context before acting on a gap.",
62
+ description: "Refresh and return .viberaven/context-map.json, a compact summary of the last scan for the next agent step. Use this to load minimal context before acting on a gap.",
63
63
  inputSchema: cwdSchema
64
64
  }
65
65
  ];
@@ -68,7 +68,7 @@ var readinessTools = [
68
68
  var auditTools = [
69
69
  {
70
70
  name: "viberaven_audit",
71
- description: "Run local Vercel + Supabase production checks: table RLS presence, policy quality, view/function boundaries, service-role boundaries, and Vercel pooler usage. Call this when the project uses Supabase or Vercel and you need a focused infra audit beyond the general readiness gate. Pass json: true for machine-readable output.",
71
+ description: "Run local Vercel + Supabase production checks: table RLS presence, policy quality, view/function boundaries, service-role boundaries, and Vercel pooler usage. Call this when the project uses Supabase or Vercel and you need a focused infra audit beyond the general readiness check. Pass json: true for machine-readable output.",
72
72
  inputSchema: {
73
73
  type: "object",
74
74
  properties: {
@@ -94,7 +94,7 @@ var healSchema = {
94
94
  var healTools = [
95
95
  {
96
96
  name: "viberaven_heal_plan",
97
- description: "Write a non-destructive heal plan for a specific gap or target file. Call this BEFORE viberaven_heal_apply to preview the exact repo-code change. Does not modify files.",
97
+ description: "Write a non-destructive heal plan (.viberaven/heal-plan.md) for a specific gap or target file, to review before viberaven_heal_apply. The plan names the target and the verify command. For rls_disabled it also shows the new migration it would write and its SQL, or why it will not write one; other gaps get no patch preview. Does not modify source files.",
98
98
  inputSchema: healSchema
99
99
  },
100
100
  {
@@ -104,7 +104,7 @@ var healTools = [
104
104
  },
105
105
  {
106
106
  name: "viberaven_heal_apply",
107
- description: "Apply a guarded, low-risk repo-code heal recipe for a supported gap. Only call this after viberaven_heal_plan. Pass yes: true to skip confirmation. Returns the applied change summary.",
107
+ description: "Apply a guarded repo-code heal recipe for a supported gap. Only call this after viberaven_heal_plan. Pass yes: true to skip confirmation. The rls_disabled recipe writes a migration that enables row level security with no policies, so browser reads of those tables return no rows until policies exist: call it only after the user agrees. Its task leaves out yes: true; pass yes: true only once the user agrees. Returns the applied change summary, with any warnings.",
108
108
  inputSchema: healSchema
109
109
  }
110
110
  ];
@@ -113,7 +113,7 @@ var healTools = [
113
113
  var rulesTools = [
114
114
  {
115
115
  name: "viberaven_init_rules",
116
- description: "Install bounded VibeRaven agent-instruction rules into native AI instruction files (CLAUDE.md / AGENTS.md / .cursor/rules). Call this once per project so coding agents pull VibeRaven into the deploy/auth/RLS workflow. Use dryRun: true to preview first.",
116
+ description: "Install bounded VibeRaven agent-instruction rules into native AI instruction files (CLAUDE.md / AGENTS.md / .cursor/rules), so coding agents know when a VibeRaven pass applies. Use dryRun: true to preview first.",
117
117
  inputSchema: {
118
118
  type: "object",
119
119
  properties: {
@@ -126,7 +126,7 @@ var rulesTools = [
126
126
  },
127
127
  {
128
128
  name: "viberaven_clean_plan",
129
- description: "Write a non-destructive cleanup plan for generated .viberaven artifacts and logs. Call this when the .viberaven directory has grown stale. Does not delete anything \u2014 it only produces a reviewable plan.",
129
+ description: "Write a non-destructive cleanup plan for generated .viberaven artifacts and logs. Call this when the .viberaven directory has grown stale. Does not delete anything; it only produces a reviewable plan.",
130
130
  inputSchema: {
131
131
  type: "object",
132
132
  properties: { cwd: { type: "string", description: "Project root. Defaults to current working directory." } },
@@ -162,7 +162,7 @@ var actionTools = [
162
162
  var npmTools = [
163
163
  {
164
164
  name: "viberaven_validate_npm_package",
165
- description: "Check whether an npm package name exists and looks safe before installing it. Call this BEFORE adding any new dependency. After installing, run viberaven_check_readiness to re-gate the change.",
165
+ description: "Look up npm package names on the public registry (registry.npmjs.org). Returns not_found when the registry has no such package or cannot be reached, suspicious when the registry answers with an error other than 404, and suspicious when the package was first published less than 14 days ago and its name is within 2 character edits of a popular package (a typosquat signal), or when it has an empty description, no listed maintainers and 3 or fewer published versions. Anything else is ok, which only means none of these signals fired; it is not a security review of the package. Useful when an agent is about to add a dependency the project has not used before.",
166
166
  inputSchema: {
167
167
  type: "object",
168
168
  properties: {
@@ -192,7 +192,7 @@ function mcpVersion() {
192
192
  } catch {
193
193
  }
194
194
  }
195
- found ??= true ? "1.5.1" : void 0;
195
+ found ??= true ? "1.5.3" : void 0;
196
196
  if (!found || !PLAIN_VERSION.test(found)) {
197
197
  throw new Error(`Could not read a valid ${MCP_PACKAGE} version (got ${JSON.stringify(found)}), so the matching ${CLI_PACKAGE} cannot be pinned.`);
198
198
  }
package/package.json CHANGED
@@ -1,56 +1,57 @@
1
- {
2
- "name": "@viberaven/mcp",
3
- "version": "1.5.1",
4
- "description": "MCP server for VibeRaven production-readiness: check_readiness, verify, heal, audit, and strict gate tools for Cursor, Claude Code, and Codex.",
5
- "license": "MIT",
6
- "author": "VibeRaven",
7
- "mcpName": "io.github.ohad6k/viberaven",
8
- "homepage": "https://viberaven.dev/mcp.md",
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/ohad6k/VibeRaven.git",
12
- "directory": "packages/mcp"
13
- },
14
- "bugs": {
15
- "url": "https://github.com/ohad6k/VibeRaven/issues"
16
- },
17
- "keywords": [
18
- "viberaven",
19
- "mcp",
20
- "claude-code",
21
- "codex",
22
- "cursor",
23
- "launch-readiness",
24
- "production"
25
- ],
26
- "publishConfig": {
27
- "access": "public",
28
- "tag": "latest"
29
- },
30
- "bin": {
31
- "viberaven-mcp": "dist/server.js"
32
- },
33
- "files": [
34
- "dist",
35
- "README.md"
36
- ],
37
- "engines": {
38
- "node": ">=20"
39
- },
40
- "scripts": {
41
- "build": "node scripts/build.mjs",
42
- "typecheck": "tsc -p tsconfig.json --noEmit",
43
- "presmoke": "npm run build",
44
- "smoke": "node scripts/smoke.mjs",
45
- "pretest": "npm run build",
46
- "test": "vitest run"
47
- },
48
- "dependencies": {
49
- "@modelcontextprotocol/sdk": "^1.0.0"
50
- },
51
- "devDependencies": {
52
- "esbuild": "^0.25.0",
53
- "typescript": "^5.8.0",
54
- "vitest": "^3.2.0"
55
- }
56
- }
1
+ {
2
+ "name": "@viberaven/mcp",
3
+ "version": "1.5.3",
4
+ "description": "MCP server for VibeRaven production-readiness: check_readiness, verify, heal, audit, and strict gate tools for Cursor, Claude Code, and Codex.",
5
+ "license": "MIT",
6
+ "author": "VibeRaven",
7
+ "mcpName": "io.github.ohad6k/viberaven",
8
+ "homepage": "https://viberaven.dev/mcp.md",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/ohad6k/VibeRaven.git",
12
+ "directory": "packages/mcp"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/ohad6k/VibeRaven/issues"
16
+ },
17
+ "keywords": [
18
+ "viberaven",
19
+ "mcp",
20
+ "claude-code",
21
+ "codex",
22
+ "cursor",
23
+ "launch-readiness",
24
+ "production"
25
+ ],
26
+ "publishConfig": {
27
+ "access": "public",
28
+ "tag": "latest"
29
+ },
30
+ "bin": {
31
+ "viberaven-mcp": "dist/server.js"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "README.md"
36
+ ],
37
+ "engines": {
38
+ "node": ">=20"
39
+ },
40
+ "scripts": {
41
+ "build": "node scripts/build.mjs",
42
+ "typecheck": "tsc -p tsconfig.json --noEmit",
43
+ "presmoke": "npm run build",
44
+ "smoke": "node scripts/smoke.mjs",
45
+ "prepublishOnly": "npm run build && npm test",
46
+ "pretest": "npm run build",
47
+ "test": "vitest run"
48
+ },
49
+ "dependencies": {
50
+ "@modelcontextprotocol/sdk": "^1.0.0"
51
+ },
52
+ "devDependencies": {
53
+ "esbuild": "^0.25.0",
54
+ "typescript": "^5.8.0",
55
+ "vitest": "^3.2.0"
56
+ }
57
+ }