@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 +3 -7
- package/dist/lib/cli-runner.js +1 -1
- package/dist/server.js +24 -13
- package/dist/tools/index.js +11 -11
- package/package.json +57 -56
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
|
-
|
|
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`
|
package/dist/lib/cli-runner.js
CHANGED
|
@@ -52,7 +52,7 @@ function mcpVersion() {
|
|
|
52
52
|
} catch {
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
found ??= true ? "1.5.
|
|
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: "
|
|
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:
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
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
|
|
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: "
|
|
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.
|
|
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.
|
|
365
|
-
var
|
|
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
|
});
|
package/dist/tools/index.js
CHANGED
|
@@ -39,7 +39,7 @@ var cwdSchema = {
|
|
|
39
39
|
var readinessTools = [
|
|
40
40
|
{
|
|
41
41
|
name: "viberaven_check_readiness",
|
|
42
|
-
description: "
|
|
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:
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
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
|
|
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: "
|
|
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.
|
|
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.
|
|
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
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
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
|
+
}
|