@vibecheckai/cli 3.9.1 → 4.0.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 +1 -1
- package/bin/runners/context/generators/cursor-enhanced.js +99 -13
- package/mcp-server/.eslintrc.json +24 -0
- package/mcp-server/README.md +425 -135
- package/mcp-server/SPEC.md +583 -0
- package/mcp-server/configs/README.md +172 -0
- package/mcp-server/configs/claude-desktop-pro.json +31 -0
- package/mcp-server/configs/claude-desktop-with-workspace.json +25 -0
- package/mcp-server/configs/claude-desktop.json +19 -0
- package/mcp-server/configs/cursor-mcp.json +21 -0
- package/mcp-server/configs/windsurf-mcp.json +17 -0
- package/mcp-server/mcp-config.example.json +9 -0
- package/mcp-server/package.json +49 -34
- package/mcp-server/src/cli.ts +185 -0
- package/mcp-server/src/index.ts +85 -0
- package/mcp-server/src/server.ts +1933 -0
- package/mcp-server/src/services/cache-service.ts +466 -0
- package/mcp-server/src/services/cli-service.ts +345 -0
- package/mcp-server/src/services/context-manager.ts +717 -0
- package/mcp-server/src/services/firewall-service.ts +662 -0
- package/mcp-server/src/services/git-service.ts +671 -0
- package/mcp-server/src/services/index.ts +52 -0
- package/mcp-server/src/services/prompt-builder-service.ts +1031 -0
- package/mcp-server/src/services/session-service.ts +550 -0
- package/mcp-server/src/services/tier-service.ts +470 -0
- package/mcp-server/src/types.ts +351 -0
- package/mcp-server/tsconfig.json +16 -27
- package/package.json +6 -6
- package/mcp-server/.guardrail/audit/audit.log.jsonl +0 -2
- package/mcp-server/.specs/architecture.mdc +0 -90
- package/mcp-server/.specs/security.mdc +0 -30
- package/mcp-server/HARDENING_SUMMARY.md +0 -299
- package/mcp-server/agent-checkpoint.js +0 -364
- package/mcp-server/agent-firewall-interceptor.js +0 -500
- package/mcp-server/architect-tools.js +0 -707
- package/mcp-server/audit-mcp.js +0 -206
- package/mcp-server/authority-tools.js +0 -569
- package/mcp-server/codebase-architect-tools.js +0 -838
- package/mcp-server/conductor/conflict-resolver.js +0 -588
- package/mcp-server/conductor/execution-planner.js +0 -544
- package/mcp-server/conductor/index.js +0 -377
- package/mcp-server/conductor/lock-manager.js +0 -615
- package/mcp-server/conductor/request-queue.js +0 -550
- package/mcp-server/conductor/session-manager.js +0 -500
- package/mcp-server/conductor/tools.js +0 -510
- package/mcp-server/consolidated-tools.js +0 -1170
- package/mcp-server/deprecation-middleware.js +0 -282
- package/mcp-server/handlers/index.ts +0 -15
- package/mcp-server/handlers/tool-handler.ts +0 -593
- package/mcp-server/hygiene-tools.js +0 -428
- package/mcp-server/index-v1.js +0 -698
- package/mcp-server/index.js +0 -2940
- package/mcp-server/intelligence-tools.js +0 -664
- package/mcp-server/intent-drift-tools.js +0 -873
- package/mcp-server/intent-firewall-interceptor.js +0 -529
- package/mcp-server/lib/api-client.cjs +0 -13
- package/mcp-server/lib/cache-wrapper.cjs +0 -383
- package/mcp-server/lib/error-envelope.js +0 -138
- package/mcp-server/lib/executor.ts +0 -499
- package/mcp-server/lib/index.ts +0 -29
- package/mcp-server/lib/logger.cjs +0 -30
- package/mcp-server/lib/rate-limiter.js +0 -166
- package/mcp-server/lib/sandbox.test.ts +0 -519
- package/mcp-server/lib/sandbox.ts +0 -395
- package/mcp-server/lib/types.ts +0 -267
- package/mcp-server/logger.js +0 -173
- package/mcp-server/manifest.json +0 -473
- package/mcp-server/mdc-generator.js +0 -298
- package/mcp-server/premium-tools.js +0 -1275
- package/mcp-server/proof-tools.js +0 -571
- package/mcp-server/registry/tool-registry.js +0 -586
- package/mcp-server/registry/tools.json +0 -619
- package/mcp-server/registry.test.ts +0 -340
- package/mcp-server/test-mcp.js +0 -108
- package/mcp-server/test-tools.js +0 -36
- package/mcp-server/tests/tier-gating.test.js +0 -297
- package/mcp-server/tier-auth.js +0 -767
- package/mcp-server/tools/index.js +0 -72
- package/mcp-server/tools-reorganized.ts +0 -244
- package/mcp-server/tools-v3.js +0 -1004
- package/mcp-server/truth-context.js +0 -622
- package/mcp-server/truth-firewall-tools.js +0 -2183
- package/mcp-server/vibecheck-2.0-tools.js +0 -761
- package/mcp-server/vibecheck-mcp-server-3.2.0.tgz +0 -0
- package/mcp-server/vibecheck-tools.js +0 -1075
|
@@ -0,0 +1,583 @@
|
|
|
1
|
+
# VibeCheck MCP Standard Protocol Specification
|
|
2
|
+
|
|
3
|
+
**Version:** 1.0.0
|
|
4
|
+
**Status:** Production
|
|
5
|
+
**Last Updated:** 2026-01-28
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Table of Contents
|
|
10
|
+
|
|
11
|
+
1. [Overview](#overview)
|
|
12
|
+
2. [Protocol Basics](#protocol-basics)
|
|
13
|
+
3. [Authentication](#authentication)
|
|
14
|
+
4. [Tool Categories](#tool-categories)
|
|
15
|
+
5. [Request/Response Schemas](#requestresponse-schemas)
|
|
16
|
+
6. [Error Handling](#error-handling)
|
|
17
|
+
7. [Firewall Protocol](#firewall-protocol)
|
|
18
|
+
8. [Intent Verification](#intent-verification)
|
|
19
|
+
9. [Tier System](#tier-system)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
The VibeCheck MCP Standard defines a secure, intent-based protocol for AI agent interactions with development environments. It extends the Model Context Protocol (MCP) with security-first primitives for hallucination detection, claim verification, and action gating.
|
|
26
|
+
|
|
27
|
+
### Design Principles
|
|
28
|
+
|
|
29
|
+
1. **Intent-First**: Agents must declare intent before making changes
|
|
30
|
+
2. **Verify, Don't Trust**: All AI claims are subject to verification
|
|
31
|
+
3. **Fail-Safe**: Default to blocking when intent is unclear
|
|
32
|
+
4. **Observable**: All actions are logged and auditable
|
|
33
|
+
5. **Tiered Access**: Features are gated by subscription tier
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Protocol Basics
|
|
38
|
+
|
|
39
|
+
### Transport
|
|
40
|
+
|
|
41
|
+
The protocol operates over stdio transport as defined by MCP:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Client (IDE/Agent) <--stdio--> VibeCheck MCP Server
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Message Format
|
|
48
|
+
|
|
49
|
+
All messages follow the MCP JSON-RPC 2.0 format:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
interface MCPRequest {
|
|
53
|
+
jsonrpc: "2.0";
|
|
54
|
+
id: string | number;
|
|
55
|
+
method: string;
|
|
56
|
+
params?: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
interface MCPResponse {
|
|
60
|
+
jsonrpc: "2.0";
|
|
61
|
+
id: string | number;
|
|
62
|
+
result?: unknown;
|
|
63
|
+
error?: MCPError;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
interface MCPError {
|
|
67
|
+
code: number;
|
|
68
|
+
message: string;
|
|
69
|
+
data?: unknown;
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Authentication
|
|
76
|
+
|
|
77
|
+
### API Key Authentication
|
|
78
|
+
|
|
79
|
+
Authentication is performed via the `VIBECHECK_API_KEY` environment variable:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"mcpServers": {
|
|
84
|
+
"vibecheck": {
|
|
85
|
+
"command": "npx",
|
|
86
|
+
"args": ["@vibecheck/mcp-standard"],
|
|
87
|
+
"env": {
|
|
88
|
+
"VIBECHECK_API_KEY": "vck_..."
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Tier Resolution
|
|
96
|
+
|
|
97
|
+
The server resolves the subscription tier at startup:
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
interface TierInfo {
|
|
101
|
+
tier: "free" | "pro";
|
|
102
|
+
limits: {
|
|
103
|
+
scansPerMonth: number; // 100 for free, unlimited for pro
|
|
104
|
+
filesPerScan: number; // 1000 for free, unlimited for pro
|
|
105
|
+
firewallMode: FirewallMode; // "observe" for free, "enforce" for pro
|
|
106
|
+
};
|
|
107
|
+
usage: {
|
|
108
|
+
scansUsed: number;
|
|
109
|
+
resetDate: string;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Tool Categories
|
|
117
|
+
|
|
118
|
+
### Category: CLI Tools
|
|
119
|
+
|
|
120
|
+
Tools that execute VibeCheck CLI commands.
|
|
121
|
+
|
|
122
|
+
| Tool | Tier | Description |
|
|
123
|
+
|------|------|-------------|
|
|
124
|
+
| `vibecheck_doctor` | FREE | Health check on project setup |
|
|
125
|
+
| `vibecheck_audit` | FREE | Comprehensive security audit |
|
|
126
|
+
| `vibecheck_forge` | FREE | Generate AI rules |
|
|
127
|
+
| `vibecheck_packs` | FREE | Generate report bundles |
|
|
128
|
+
| `vibecheck_tier` | FREE | Get subscription info |
|
|
129
|
+
| `vibecheck_ship` | PRO | Get ship verdict |
|
|
130
|
+
| `vibecheck_fix` | PRO | Plan or apply security fixes |
|
|
131
|
+
| `vibecheck_checkpoint` | PRO | Create/restore code snapshots |
|
|
132
|
+
| `vibecheck_reality` | PRO | Browser-based testing |
|
|
133
|
+
|
|
134
|
+
### Category: Firewall Tools
|
|
135
|
+
|
|
136
|
+
Tools for intent-based security enforcement.
|
|
137
|
+
|
|
138
|
+
| Tool | Tier | Description |
|
|
139
|
+
|------|------|-------------|
|
|
140
|
+
| `firewall_status` | FREE | Get current firewall status |
|
|
141
|
+
| `firewall_set_mode` | FREE/PRO | Set firewall mode |
|
|
142
|
+
| `firewall_set_intent` | PRO | Set intent before changes |
|
|
143
|
+
| `firewall_get_intent` | PRO | Get current intent |
|
|
144
|
+
| `firewall_clear_intent` | PRO | Clear current intent |
|
|
145
|
+
| `firewall_check` | PRO | Run comprehensive shield check |
|
|
146
|
+
| `firewall_verify_claim` | PRO | Verify an AI claim |
|
|
147
|
+
| `firewall_gate_action` | PRO | Check if action is allowed |
|
|
148
|
+
| `firewall_get_templates` | PRO | Get intent templates |
|
|
149
|
+
|
|
150
|
+
### Category: Prompt Builder Tools
|
|
151
|
+
|
|
152
|
+
Tools for enhanced prompt generation.
|
|
153
|
+
|
|
154
|
+
| Tool | Tier | Description |
|
|
155
|
+
|------|------|-------------|
|
|
156
|
+
| `prompt_get_templates` | FREE | Get available prompt templates |
|
|
157
|
+
| `prompt_get_categories` | FREE | Get template categories |
|
|
158
|
+
| `prompt_detect_template` | FREE | Detect template from input |
|
|
159
|
+
| `prompt_build` | FREE | Build enhanced prompt |
|
|
160
|
+
| `prompt_get_context` | FREE | Get workspace context |
|
|
161
|
+
| `prompt_get_suggestions` | FREE | Get smart suggestions |
|
|
162
|
+
|
|
163
|
+
### Category: Session Tools
|
|
164
|
+
|
|
165
|
+
Tools for session management and monitoring.
|
|
166
|
+
|
|
167
|
+
| Tool | Tier | Description |
|
|
168
|
+
|------|------|-------------|
|
|
169
|
+
| `session_info` | FREE | Get session info and metrics |
|
|
170
|
+
| `session_metrics` | FREE | Detailed session statistics |
|
|
171
|
+
| `session_history` | FREE | Recent tool call history |
|
|
172
|
+
| `session_health` | FREE | Session health and trust score |
|
|
173
|
+
|
|
174
|
+
### Category: Git Tools
|
|
175
|
+
|
|
176
|
+
Tools for git integration and change analysis.
|
|
177
|
+
|
|
178
|
+
| Tool | Tier | Description |
|
|
179
|
+
|------|------|-------------|
|
|
180
|
+
| `git_status` | FREE | Comprehensive git status |
|
|
181
|
+
| `git_diff` | FREE | Diff analysis with risk assessment |
|
|
182
|
+
| `git_diff_intent_check` | PRO | Check diff against declared intent |
|
|
183
|
+
| `git_commits` | FREE | Recent commit history |
|
|
184
|
+
| `git_branches` | FREE | List all branches |
|
|
185
|
+
| `git_file_history` | FREE | File commit history |
|
|
186
|
+
| `git_snapshot` | PRO | Create git stash snapshot |
|
|
187
|
+
|
|
188
|
+
### Category: Context Tools
|
|
189
|
+
|
|
190
|
+
Tools for intelligent context management.
|
|
191
|
+
|
|
192
|
+
| Tool | Tier | Description |
|
|
193
|
+
|------|------|-------------|
|
|
194
|
+
| `context_project` | FREE | Project structure analysis |
|
|
195
|
+
| `context_window` | FREE | Smart context window for queries |
|
|
196
|
+
| `context_find_files` | FREE | Find files by pattern |
|
|
197
|
+
| `context_related_files` | FREE | Find related files by imports |
|
|
198
|
+
| `context_file_info` | FREE | Detailed file information |
|
|
199
|
+
|
|
200
|
+
### Category: Cache & Health Tools
|
|
201
|
+
|
|
202
|
+
Tools for cache management and health monitoring.
|
|
203
|
+
|
|
204
|
+
| Tool | Tier | Description |
|
|
205
|
+
|------|------|-------------|
|
|
206
|
+
| `cache_stats` | FREE | Cache hit rate and statistics |
|
|
207
|
+
| `cache_clear` | FREE | Clear cache entries |
|
|
208
|
+
| `health_check` | FREE | Comprehensive health check |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Request/Response Schemas
|
|
213
|
+
|
|
214
|
+
### vibecheck_audit
|
|
215
|
+
|
|
216
|
+
**Request:**
|
|
217
|
+
```typescript
|
|
218
|
+
interface AuditRequest {
|
|
219
|
+
format?: "json" | "sarif" | "html" | "md";
|
|
220
|
+
severity?: "critical" | "high" | "medium" | "low";
|
|
221
|
+
category?: string;
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Response:**
|
|
226
|
+
```typescript
|
|
227
|
+
interface AuditResult {
|
|
228
|
+
version: string;
|
|
229
|
+
timestamp: string;
|
|
230
|
+
attackScore: number; // 0-100, lower is better
|
|
231
|
+
findings: AuditFinding[];
|
|
232
|
+
summary: {
|
|
233
|
+
total: number;
|
|
234
|
+
critical: number;
|
|
235
|
+
high: number;
|
|
236
|
+
medium: number;
|
|
237
|
+
low: number;
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
interface AuditFinding {
|
|
242
|
+
id: string;
|
|
243
|
+
type: string;
|
|
244
|
+
severity: "critical" | "high" | "medium" | "low";
|
|
245
|
+
message: string;
|
|
246
|
+
file?: string;
|
|
247
|
+
line?: number;
|
|
248
|
+
column?: number;
|
|
249
|
+
rule?: string;
|
|
250
|
+
howToFix?: string;
|
|
251
|
+
category?: string;
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### vibecheck_ship
|
|
256
|
+
|
|
257
|
+
**Request:**
|
|
258
|
+
```typescript
|
|
259
|
+
interface ShipRequest {
|
|
260
|
+
mode?: "quick" | "full" | "strict";
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Response:**
|
|
265
|
+
```typescript
|
|
266
|
+
interface ShipResult {
|
|
267
|
+
verdict: "SHIP" | "WARN" | "BLOCK";
|
|
268
|
+
score: number; // 0-100, higher is better
|
|
269
|
+
reasons: string[];
|
|
270
|
+
blockers?: string[];
|
|
271
|
+
timestamp: string;
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### firewall_set_intent
|
|
276
|
+
|
|
277
|
+
**Request:**
|
|
278
|
+
```typescript
|
|
279
|
+
interface SetIntentRequest {
|
|
280
|
+
summary: string; // What you intend to do
|
|
281
|
+
constraints: string[]; // Boundaries for the changes
|
|
282
|
+
templateId?: string; // Optional: use a pre-defined template
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Response:**
|
|
287
|
+
```typescript
|
|
288
|
+
interface Intent {
|
|
289
|
+
summary: string;
|
|
290
|
+
constraints: string[];
|
|
291
|
+
timestamp: string;
|
|
292
|
+
sessionId: string;
|
|
293
|
+
hash: string; // SHA-256 hash for verification
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### firewall_verify_claim
|
|
298
|
+
|
|
299
|
+
**Request:**
|
|
300
|
+
```typescript
|
|
301
|
+
interface VerifyClaimRequest {
|
|
302
|
+
claim: string; // What the AI claims it did
|
|
303
|
+
context?: string; // Additional context
|
|
304
|
+
files?: string[]; // Files to check
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Response:**
|
|
309
|
+
```typescript
|
|
310
|
+
interface ClaimVerificationResult {
|
|
311
|
+
verified: boolean;
|
|
312
|
+
confidence: number; // 0-100
|
|
313
|
+
verdict: "VERIFIED" | "SUSPICIOUS" | "REJECTED";
|
|
314
|
+
reasons: string[];
|
|
315
|
+
evidence?: ClaimEvidence[];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
interface ClaimEvidence {
|
|
319
|
+
type: "file" | "code" | "behavior" | "config";
|
|
320
|
+
path?: string;
|
|
321
|
+
content?: string;
|
|
322
|
+
relevance: number; // 0-100
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### firewall_gate_action
|
|
327
|
+
|
|
328
|
+
**Request:**
|
|
329
|
+
```typescript
|
|
330
|
+
interface GateActionRequest {
|
|
331
|
+
action: string; // Description of the action
|
|
332
|
+
actionType: "read" | "write" | "execute" | "sensitive";
|
|
333
|
+
targetFiles?: string[];
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Response:**
|
|
338
|
+
```typescript
|
|
339
|
+
interface FirewallVerdict {
|
|
340
|
+
allowed: boolean;
|
|
341
|
+
verdict: "ALLOW" | "WARN" | "BLOCK";
|
|
342
|
+
violations: FirewallViolation[];
|
|
343
|
+
unblockPlan?: UnblockPlan;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
interface FirewallViolation {
|
|
347
|
+
type: string;
|
|
348
|
+
rule: string;
|
|
349
|
+
message: string;
|
|
350
|
+
file?: string;
|
|
351
|
+
severity: "critical" | "error" | "warning" | "info";
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
interface UnblockPlan {
|
|
355
|
+
reason: string;
|
|
356
|
+
steps: UnblockStep[];
|
|
357
|
+
estimatedTime?: string;
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## Error Handling
|
|
364
|
+
|
|
365
|
+
### Error Codes
|
|
366
|
+
|
|
367
|
+
| Code | Name | Description |
|
|
368
|
+
|------|------|-------------|
|
|
369
|
+
| -32700 | Parse Error | Invalid JSON |
|
|
370
|
+
| -32600 | Invalid Request | Malformed request |
|
|
371
|
+
| -32601 | Method Not Found | Unknown tool |
|
|
372
|
+
| -32602 | Invalid Params | Invalid parameters |
|
|
373
|
+
| -32603 | Internal Error | Server error |
|
|
374
|
+
| 1000 | AUTH_REQUIRED | Authentication required |
|
|
375
|
+
| 1001 | AUTH_FAILED | Authentication failed |
|
|
376
|
+
| 1002 | TIER_REQUIRED | Feature requires higher tier |
|
|
377
|
+
| 1003 | RATE_LIMITED | Rate limit exceeded |
|
|
378
|
+
| 1004 | FIREWALL_BLOCKED | Action blocked by firewall |
|
|
379
|
+
| 1005 | INTENT_REQUIRED | Intent must be set first |
|
|
380
|
+
| 1006 | INTENT_VIOLATION | Action violates declared intent |
|
|
381
|
+
|
|
382
|
+
### Error Response Format
|
|
383
|
+
|
|
384
|
+
```typescript
|
|
385
|
+
interface MCPError {
|
|
386
|
+
code: number;
|
|
387
|
+
message: string;
|
|
388
|
+
data?: {
|
|
389
|
+
tier?: "free" | "pro";
|
|
390
|
+
requiredTier?: "pro";
|
|
391
|
+
unblockPlan?: UnblockPlan;
|
|
392
|
+
violations?: FirewallViolation[];
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Firewall Protocol
|
|
400
|
+
|
|
401
|
+
### Modes
|
|
402
|
+
|
|
403
|
+
| Mode | Tier | Behavior |
|
|
404
|
+
|------|------|----------|
|
|
405
|
+
| `off` | FREE | No enforcement, no logging |
|
|
406
|
+
| `observe` | FREE | Log all actions, warn on violations |
|
|
407
|
+
| `enforce` | PRO | Block actions that violate intent |
|
|
408
|
+
|
|
409
|
+
### Action Types
|
|
410
|
+
|
|
411
|
+
| Type | Description | Default Behavior |
|
|
412
|
+
|------|-------------|------------------|
|
|
413
|
+
| `read` | Reading files, querying state | Always allowed |
|
|
414
|
+
| `write` | Creating or modifying files | Requires intent in enforce mode |
|
|
415
|
+
| `execute` | Running commands, scripts | Requires intent in enforce mode |
|
|
416
|
+
| `sensitive` | Auth, payments, env vars | Always requires intent |
|
|
417
|
+
|
|
418
|
+
### Intent Flow
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
1. Agent calls firewall_set_intent with summary and constraints
|
|
422
|
+
2. Server validates and stores intent with SHA-256 hash
|
|
423
|
+
3. Agent performs actions
|
|
424
|
+
4. Each action is checked against intent constraints
|
|
425
|
+
5. In enforce mode, violating actions are blocked
|
|
426
|
+
6. Agent calls firewall_clear_intent when done
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### Intent Templates
|
|
430
|
+
|
|
431
|
+
Pre-defined templates for common tasks:
|
|
432
|
+
|
|
433
|
+
| Template ID | Name | Constraints |
|
|
434
|
+
|-------------|------|-------------|
|
|
435
|
+
| `add-auth` | Add Authentication | No new env vars, use existing middleware |
|
|
436
|
+
| `add-route` | Add API Route | Follow existing patterns, no auth changes |
|
|
437
|
+
| `bug-fix` | Bug Fix | Minimal changes, no new dependencies |
|
|
438
|
+
| `refactor` | Refactoring | No behavior changes, preserve tests |
|
|
439
|
+
| `add-feature` | Add Feature | Use existing patterns, add tests |
|
|
440
|
+
| `payment-flow` | Payment Integration | No auth changes, add audit logging |
|
|
441
|
+
| `db-migration` | Database Migration | Create rollback, no data deletion |
|
|
442
|
+
| `dep-update` | Dependency Update | One major version, run tests |
|
|
443
|
+
|
|
444
|
+
---
|
|
445
|
+
|
|
446
|
+
## Intent Verification
|
|
447
|
+
|
|
448
|
+
### Verification Flow
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
1. Agent makes a claim: "I only added a new API route"
|
|
452
|
+
2. Server calls firewall_verify_claim
|
|
453
|
+
3. Server analyzes:
|
|
454
|
+
- Git diff to see actual changes
|
|
455
|
+
- File history to detect modifications
|
|
456
|
+
- Code patterns to identify scope
|
|
457
|
+
4. Server returns verdict with confidence score
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Verification Verdicts
|
|
461
|
+
|
|
462
|
+
| Verdict | Confidence | Meaning |
|
|
463
|
+
|---------|------------|---------|
|
|
464
|
+
| `VERIFIED` | 80-100% | Claim matches evidence |
|
|
465
|
+
| `SUSPICIOUS` | 40-79% | Partial match, review recommended |
|
|
466
|
+
| `REJECTED` | 0-39% | Claim contradicts evidence |
|
|
467
|
+
|
|
468
|
+
### Evidence Types
|
|
469
|
+
|
|
470
|
+
| Type | Description |
|
|
471
|
+
|------|-------------|
|
|
472
|
+
| `file` | File was created, modified, or deleted |
|
|
473
|
+
| `code` | Specific code patterns found |
|
|
474
|
+
| `behavior` | Runtime behavior detected |
|
|
475
|
+
| `config` | Configuration changes detected |
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## Tier System
|
|
480
|
+
|
|
481
|
+
### FREE Tier ($0/month)
|
|
482
|
+
|
|
483
|
+
- 100 scans per month
|
|
484
|
+
- 1,000 files per scan maximum
|
|
485
|
+
- Observe mode firewall only
|
|
486
|
+
- Report formats: HTML, MD, JSON
|
|
487
|
+
- 11 CLI tools
|
|
488
|
+
- Session management
|
|
489
|
+
- Git integration (read-only)
|
|
490
|
+
- Prompt builder
|
|
491
|
+
|
|
492
|
+
### PRO Tier ($49/month)
|
|
493
|
+
|
|
494
|
+
- Unlimited scans
|
|
495
|
+
- Unlimited files
|
|
496
|
+
- Enforce mode firewall
|
|
497
|
+
- All report formats: HTML, MD, JSON, SARIF, CSV, PDF
|
|
498
|
+
- 23 CLI tools (all)
|
|
499
|
+
- Intent verification
|
|
500
|
+
- Claim verification
|
|
501
|
+
- Code checkpoints
|
|
502
|
+
- Reality mode (browser testing)
|
|
503
|
+
- Git snapshots
|
|
504
|
+
|
|
505
|
+
### Tier Checking
|
|
506
|
+
|
|
507
|
+
The server validates tier access before executing each tool:
|
|
508
|
+
|
|
509
|
+
```typescript
|
|
510
|
+
// Pseudo-code for tier validation
|
|
511
|
+
async function validateTier(toolName: string, tier: Tier): Promise<void> {
|
|
512
|
+
const required = getRequiredTier(toolName);
|
|
513
|
+
if (required === 'pro' && tier === 'free') {
|
|
514
|
+
throw new MCPError(1002, 'This feature requires PRO tier', {
|
|
515
|
+
tier: 'free',
|
|
516
|
+
requiredTier: 'pro',
|
|
517
|
+
upgradeUrl: 'https://vibecheckai.dev/pricing'
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## Resources
|
|
526
|
+
|
|
527
|
+
MCP Resources provide read-only access to server state:
|
|
528
|
+
|
|
529
|
+
| URI | Description |
|
|
530
|
+
|-----|-------------|
|
|
531
|
+
| `vibecheck://status` | Server status and configuration |
|
|
532
|
+
| `vibecheck://tier` | Subscription tier info |
|
|
533
|
+
| `vibecheck://session` | Current session info |
|
|
534
|
+
| `vibecheck://firewall/stats` | Firewall statistics |
|
|
535
|
+
| `vibecheck://firewall/log` | Recent action log |
|
|
536
|
+
| `vibecheck://git/status` | Git repository status |
|
|
537
|
+
| `vibecheck://context` | Detected workspace context |
|
|
538
|
+
| `vibecheck://project` | Project structure |
|
|
539
|
+
| `vibecheck://health` | Health check status |
|
|
540
|
+
| `vibecheck://cache` | Cache statistics |
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## Appendix A: Full Type Definitions
|
|
545
|
+
|
|
546
|
+
See [src/types.ts](./src/types.ts) for complete TypeScript type definitions.
|
|
547
|
+
|
|
548
|
+
## Appendix B: Example Flows
|
|
549
|
+
|
|
550
|
+
### Security Audit Flow
|
|
551
|
+
|
|
552
|
+
```
|
|
553
|
+
Client: tools/call vibecheck_audit { "severity": "high" }
|
|
554
|
+
Server: { "result": { "attackScore": 23, "findings": [...] } }
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
### Intent-Based Development Flow
|
|
558
|
+
|
|
559
|
+
```
|
|
560
|
+
Client: tools/call firewall_set_intent {
|
|
561
|
+
"summary": "Add user authentication with NextAuth",
|
|
562
|
+
"constraints": ["No new environment variables", "Use existing database"]
|
|
563
|
+
}
|
|
564
|
+
Server: { "result": { "hash": "abc123...", "timestamp": "..." } }
|
|
565
|
+
|
|
566
|
+
Client: tools/call firewall_gate_action {
|
|
567
|
+
"action": "Create auth.ts file",
|
|
568
|
+
"actionType": "write"
|
|
569
|
+
}
|
|
570
|
+
Server: { "result": { "allowed": true, "verdict": "ALLOW" } }
|
|
571
|
+
|
|
572
|
+
Client: tools/call firewall_verify_claim {
|
|
573
|
+
"claim": "I only added authentication without modifying the database schema"
|
|
574
|
+
}
|
|
575
|
+
Server: { "result": { "verified": true, "confidence": 95, "verdict": "VERIFIED" } }
|
|
576
|
+
|
|
577
|
+
Client: tools/call firewall_clear_intent {}
|
|
578
|
+
Server: { "result": { "cleared": true } }
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
**Copyright © 2026 VibeCheck. MIT License.**
|