nodebench-mcp 1.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 +237 -0
- package/dist/__tests__/tools.test.d.ts +1 -0
- package/dist/__tests__/tools.test.js +402 -0
- package/dist/__tests__/tools.test.js.map +1 -0
- package/dist/db.d.ts +4 -0
- package/dist/db.js +198 -0
- package/dist/db.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +237 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/documentTools.d.ts +5 -0
- package/dist/tools/documentTools.js +524 -0
- package/dist/tools/documentTools.js.map +1 -0
- package/dist/tools/documentationTools.d.ts +12 -0
- package/dist/tools/documentationTools.js +647 -0
- package/dist/tools/documentationTools.js.map +1 -0
- package/dist/tools/evalTools.d.ts +6 -0
- package/dist/tools/evalTools.js +335 -0
- package/dist/tools/evalTools.js.map +1 -0
- package/dist/tools/financialTools.d.ts +10 -0
- package/dist/tools/financialTools.js +403 -0
- package/dist/tools/financialTools.js.map +1 -0
- package/dist/tools/flywheelTools.d.ts +6 -0
- package/dist/tools/flywheelTools.js +366 -0
- package/dist/tools/flywheelTools.js.map +1 -0
- package/dist/tools/githubTools.d.ts +12 -0
- package/dist/tools/githubTools.js +432 -0
- package/dist/tools/githubTools.js.map +1 -0
- package/dist/tools/learningTools.d.ts +6 -0
- package/dist/tools/learningTools.js +199 -0
- package/dist/tools/learningTools.js.map +1 -0
- package/dist/tools/memoryTools.d.ts +5 -0
- package/dist/tools/memoryTools.js +137 -0
- package/dist/tools/memoryTools.js.map +1 -0
- package/dist/tools/metaTools.d.ts +7 -0
- package/dist/tools/metaTools.js +837 -0
- package/dist/tools/metaTools.js.map +1 -0
- package/dist/tools/planningTools.d.ts +5 -0
- package/dist/tools/planningTools.js +147 -0
- package/dist/tools/planningTools.js.map +1 -0
- package/dist/tools/qualityGateTools.d.ts +6 -0
- package/dist/tools/qualityGateTools.js +347 -0
- package/dist/tools/qualityGateTools.js.map +1 -0
- package/dist/tools/reconTools.d.ts +8 -0
- package/dist/tools/reconTools.js +729 -0
- package/dist/tools/reconTools.js.map +1 -0
- package/dist/tools/searchTools.d.ts +5 -0
- package/dist/tools/searchTools.js +145 -0
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/uiCaptureTools.d.ts +8 -0
- package/dist/tools/uiCaptureTools.js +339 -0
- package/dist/tools/uiCaptureTools.js.map +1 -0
- package/dist/tools/verificationTools.d.ts +6 -0
- package/dist/tools/verificationTools.js +472 -0
- package/dist/tools/verificationTools.js.map +1 -0
- package/dist/tools/visionTools.d.ts +12 -0
- package/dist/tools/visionTools.js +553 -0
- package/dist/tools/visionTools.js.map +1 -0
- package/dist/tools/webTools.d.ts +12 -0
- package/dist/tools/webTools.js +443 -0
- package/dist/tools/webTools.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
ADDED
package/dist/db.js
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { mkdirSync } from "node:fs";
|
|
5
|
+
let _db = null;
|
|
6
|
+
const SCHEMA_SQL = `
|
|
7
|
+
PRAGMA journal_mode = WAL;
|
|
8
|
+
PRAGMA busy_timeout = 5000;
|
|
9
|
+
PRAGMA foreign_keys = ON;
|
|
10
|
+
|
|
11
|
+
-- ═══════════════════════════════════════════
|
|
12
|
+
-- VERIFICATION CYCLES (6-Phase)
|
|
13
|
+
-- ═══════════════════════════════════════════
|
|
14
|
+
|
|
15
|
+
CREATE TABLE IF NOT EXISTS verification_cycles (
|
|
16
|
+
id TEXT PRIMARY KEY,
|
|
17
|
+
title TEXT NOT NULL,
|
|
18
|
+
description TEXT,
|
|
19
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
20
|
+
current_phase INTEGER NOT NULL DEFAULT 1,
|
|
21
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
22
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
CREATE TABLE IF NOT EXISTS verification_phases (
|
|
26
|
+
id TEXT PRIMARY KEY,
|
|
27
|
+
cycle_id TEXT NOT NULL REFERENCES verification_cycles(id) ON DELETE CASCADE,
|
|
28
|
+
phase_number INTEGER NOT NULL,
|
|
29
|
+
phase_name TEXT NOT NULL,
|
|
30
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
31
|
+
findings TEXT,
|
|
32
|
+
started_at TEXT,
|
|
33
|
+
completed_at TEXT,
|
|
34
|
+
UNIQUE(cycle_id, phase_number)
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE TABLE IF NOT EXISTS gaps (
|
|
38
|
+
id TEXT PRIMARY KEY,
|
|
39
|
+
cycle_id TEXT NOT NULL REFERENCES verification_cycles(id) ON DELETE CASCADE,
|
|
40
|
+
severity TEXT NOT NULL,
|
|
41
|
+
title TEXT NOT NULL,
|
|
42
|
+
description TEXT,
|
|
43
|
+
root_cause TEXT,
|
|
44
|
+
fix_strategy TEXT,
|
|
45
|
+
status TEXT NOT NULL DEFAULT 'open',
|
|
46
|
+
resolved_at TEXT,
|
|
47
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS test_results (
|
|
51
|
+
id TEXT PRIMARY KEY,
|
|
52
|
+
cycle_id TEXT NOT NULL REFERENCES verification_cycles(id) ON DELETE CASCADE,
|
|
53
|
+
layer TEXT NOT NULL,
|
|
54
|
+
label TEXT NOT NULL,
|
|
55
|
+
passed INTEGER NOT NULL DEFAULT 0,
|
|
56
|
+
output TEXT,
|
|
57
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
-- ═══════════════════════════════════════════
|
|
61
|
+
-- EVAL RUNS (Eval-Driven Development)
|
|
62
|
+
-- ═══════════════════════════════════════════
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS eval_runs (
|
|
65
|
+
id TEXT PRIMARY KEY,
|
|
66
|
+
name TEXT NOT NULL,
|
|
67
|
+
description TEXT,
|
|
68
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
69
|
+
summary TEXT,
|
|
70
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
71
|
+
completed_at TEXT
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
CREATE TABLE IF NOT EXISTS eval_cases (
|
|
75
|
+
id TEXT PRIMARY KEY,
|
|
76
|
+
run_id TEXT NOT NULL REFERENCES eval_runs(id) ON DELETE CASCADE,
|
|
77
|
+
input TEXT NOT NULL,
|
|
78
|
+
intent TEXT NOT NULL,
|
|
79
|
+
expected TEXT,
|
|
80
|
+
actual TEXT,
|
|
81
|
+
telemetry TEXT,
|
|
82
|
+
verdict TEXT,
|
|
83
|
+
judge_notes TEXT,
|
|
84
|
+
score REAL,
|
|
85
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
-- ═══════════════════════════════════════════
|
|
89
|
+
-- QUALITY GATES (Boolean Check Pattern)
|
|
90
|
+
-- ═══════════════════════════════════════════
|
|
91
|
+
|
|
92
|
+
CREATE TABLE IF NOT EXISTS quality_gate_runs (
|
|
93
|
+
id TEXT PRIMARY KEY,
|
|
94
|
+
gate_name TEXT NOT NULL,
|
|
95
|
+
target TEXT,
|
|
96
|
+
passed INTEGER NOT NULL DEFAULT 0,
|
|
97
|
+
score REAL,
|
|
98
|
+
total_rules INTEGER NOT NULL DEFAULT 0,
|
|
99
|
+
failures TEXT,
|
|
100
|
+
rule_results TEXT,
|
|
101
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
-- ═══════════════════════════════════════════
|
|
105
|
+
-- LEARNINGS (Agent Memory, reframed)
|
|
106
|
+
-- ═══════════════════════════════════════════
|
|
107
|
+
|
|
108
|
+
CREATE TABLE IF NOT EXISTS learnings (
|
|
109
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
110
|
+
key TEXT NOT NULL UNIQUE,
|
|
111
|
+
content TEXT NOT NULL,
|
|
112
|
+
category TEXT NOT NULL DEFAULT 'general',
|
|
113
|
+
tags TEXT,
|
|
114
|
+
source_cycle TEXT,
|
|
115
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
116
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS learnings_fts USING fts5(
|
|
120
|
+
key,
|
|
121
|
+
content,
|
|
122
|
+
category,
|
|
123
|
+
content='learnings',
|
|
124
|
+
content_rowid='id'
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
CREATE TRIGGER IF NOT EXISTS learnings_fts_insert AFTER INSERT ON learnings BEGIN
|
|
128
|
+
INSERT INTO learnings_fts(rowid, key, content, category)
|
|
129
|
+
VALUES (new.id, new.key, new.content, new.category);
|
|
130
|
+
END;
|
|
131
|
+
|
|
132
|
+
CREATE TRIGGER IF NOT EXISTS learnings_fts_delete AFTER DELETE ON learnings BEGIN
|
|
133
|
+
INSERT INTO learnings_fts(learnings_fts, rowid, key, content, category)
|
|
134
|
+
VALUES ('delete', old.id, old.key, old.content, old.category);
|
|
135
|
+
END;
|
|
136
|
+
|
|
137
|
+
CREATE TRIGGER IF NOT EXISTS learnings_fts_update AFTER UPDATE ON learnings BEGIN
|
|
138
|
+
INSERT INTO learnings_fts(learnings_fts, rowid, key, content, category)
|
|
139
|
+
VALUES ('delete', old.id, old.key, old.content, old.category);
|
|
140
|
+
INSERT INTO learnings_fts(rowid, key, content, category)
|
|
141
|
+
VALUES (new.id, new.key, new.content, new.category);
|
|
142
|
+
END;
|
|
143
|
+
|
|
144
|
+
-- ═══════════════════════════════════════════
|
|
145
|
+
-- RECONNAISSANCE (Research & Context Gathering)
|
|
146
|
+
-- ═══════════════════════════════════════════
|
|
147
|
+
|
|
148
|
+
CREATE TABLE IF NOT EXISTS recon_sessions (
|
|
149
|
+
id TEXT PRIMARY KEY,
|
|
150
|
+
target TEXT NOT NULL,
|
|
151
|
+
description TEXT,
|
|
152
|
+
status TEXT NOT NULL DEFAULT 'active',
|
|
153
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
154
|
+
completed_at TEXT
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
CREATE TABLE IF NOT EXISTS recon_findings (
|
|
158
|
+
id TEXT PRIMARY KEY,
|
|
159
|
+
session_id TEXT NOT NULL REFERENCES recon_sessions(id) ON DELETE CASCADE,
|
|
160
|
+
source_url TEXT,
|
|
161
|
+
category TEXT NOT NULL,
|
|
162
|
+
summary TEXT NOT NULL,
|
|
163
|
+
relevance TEXT,
|
|
164
|
+
action_items TEXT,
|
|
165
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
CREATE INDEX IF NOT EXISTS idx_recon_findings_session ON recon_findings(session_id);
|
|
169
|
+
CREATE INDEX IF NOT EXISTS idx_recon_findings_category ON recon_findings(category);
|
|
170
|
+
|
|
171
|
+
-- ═══════════════════════════════════════════
|
|
172
|
+
-- PROJECT CONTEXT (Persistent project metadata)
|
|
173
|
+
-- ═══════════════════════════════════════════
|
|
174
|
+
|
|
175
|
+
CREATE TABLE IF NOT EXISTS project_context (
|
|
176
|
+
key TEXT PRIMARY KEY,
|
|
177
|
+
value TEXT NOT NULL,
|
|
178
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
179
|
+
);
|
|
180
|
+
`;
|
|
181
|
+
export function getDb() {
|
|
182
|
+
if (_db)
|
|
183
|
+
return _db;
|
|
184
|
+
const dir = join(homedir(), ".nodebench");
|
|
185
|
+
mkdirSync(dir, { recursive: true });
|
|
186
|
+
_db = new Database(join(dir, "nodebench.db"));
|
|
187
|
+
_db.exec(SCHEMA_SQL);
|
|
188
|
+
return _db;
|
|
189
|
+
}
|
|
190
|
+
export function isFirstRun() {
|
|
191
|
+
const db = getDb();
|
|
192
|
+
const ctx = db.prepare("SELECT COUNT(*) as c FROM project_context").get();
|
|
193
|
+
return ctx.c === 0;
|
|
194
|
+
}
|
|
195
|
+
export function genId(prefix) {
|
|
196
|
+
return `${prefix}_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=db.js.map
|
package/dist/db.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,IAAI,GAAG,GAA6B,IAAI,CAAC;AAEzC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8KlB,CAAC;AAEF,MAAM,UAAU,KAAK;IACnB,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAAS,CAAC;IACjF,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* NodeBench MCP — Development Methodology Edition
|
|
4
|
+
*
|
|
5
|
+
* Zero-config, fully local MCP server backed by SQLite.
|
|
6
|
+
* Packages the 6-Phase Verification, Eval-Driven Development, AI Flywheel,
|
|
7
|
+
* Quality Gates, and Learnings methodologies as MCP tools that guide agents
|
|
8
|
+
* to work more rigorously.
|
|
9
|
+
*
|
|
10
|
+
* Data stored in ~/.nodebench/nodebench.db
|
|
11
|
+
*
|
|
12
|
+
* Uses the low-level Server class to register tools with raw JSON Schema
|
|
13
|
+
* (the high-level McpServer.tool() requires Zod schemas in SDK >=1.17).
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* npx @nodebench/mcp (stdio transport)
|
|
17
|
+
* npx tsx src/index.ts (dev mode)
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* NodeBench MCP — Development Methodology Edition
|
|
4
|
+
*
|
|
5
|
+
* Zero-config, fully local MCP server backed by SQLite.
|
|
6
|
+
* Packages the 6-Phase Verification, Eval-Driven Development, AI Flywheel,
|
|
7
|
+
* Quality Gates, and Learnings methodologies as MCP tools that guide agents
|
|
8
|
+
* to work more rigorously.
|
|
9
|
+
*
|
|
10
|
+
* Data stored in ~/.nodebench/nodebench.db
|
|
11
|
+
*
|
|
12
|
+
* Uses the low-level Server class to register tools with raw JSON Schema
|
|
13
|
+
* (the high-level McpServer.tool() requires Zod schemas in SDK >=1.17).
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* npx @nodebench/mcp (stdio transport)
|
|
17
|
+
* npx tsx src/index.ts (dev mode)
|
|
18
|
+
*/
|
|
19
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
20
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
21
|
+
import { ListToolsRequestSchema, CallToolRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
22
|
+
import { getDb } from "./db.js";
|
|
23
|
+
import { verificationTools } from "./tools/verificationTools.js";
|
|
24
|
+
import { evalTools } from "./tools/evalTools.js";
|
|
25
|
+
import { qualityGateTools } from "./tools/qualityGateTools.js";
|
|
26
|
+
import { learningTools } from "./tools/learningTools.js";
|
|
27
|
+
import { flywheelTools } from "./tools/flywheelTools.js";
|
|
28
|
+
import { reconTools } from "./tools/reconTools.js";
|
|
29
|
+
import { uiCaptureTools } from "./tools/uiCaptureTools.js";
|
|
30
|
+
import { visionTools } from "./tools/visionTools.js";
|
|
31
|
+
import { webTools } from "./tools/webTools.js";
|
|
32
|
+
import { githubTools } from "./tools/githubTools.js";
|
|
33
|
+
import { documentationTools } from "./tools/documentationTools.js";
|
|
34
|
+
import { createMetaTools } from "./tools/metaTools.js";
|
|
35
|
+
// Initialize DB (creates ~/.nodebench/ and schema on first run)
|
|
36
|
+
getDb();
|
|
37
|
+
// Assemble tools
|
|
38
|
+
const domainTools = [
|
|
39
|
+
...verificationTools,
|
|
40
|
+
...evalTools,
|
|
41
|
+
...qualityGateTools,
|
|
42
|
+
...learningTools,
|
|
43
|
+
...flywheelTools,
|
|
44
|
+
...reconTools,
|
|
45
|
+
...uiCaptureTools,
|
|
46
|
+
...visionTools,
|
|
47
|
+
...webTools,
|
|
48
|
+
...githubTools,
|
|
49
|
+
...documentationTools,
|
|
50
|
+
];
|
|
51
|
+
const allTools = [...domainTools, ...createMetaTools(domainTools)];
|
|
52
|
+
// Build a lookup map for fast tool dispatch
|
|
53
|
+
const toolMap = new Map();
|
|
54
|
+
for (const tool of allTools) {
|
|
55
|
+
toolMap.set(tool.name, tool);
|
|
56
|
+
}
|
|
57
|
+
// MCP Prompts — protocol-native agent instructions for onboarding
|
|
58
|
+
const PROMPTS = [
|
|
59
|
+
{
|
|
60
|
+
name: "onboarding",
|
|
61
|
+
description: "Get started with NodeBench Development Methodology MCP. Shows first-time setup steps and key tools.",
|
|
62
|
+
messages: [
|
|
63
|
+
{
|
|
64
|
+
role: "user",
|
|
65
|
+
content: {
|
|
66
|
+
type: "text",
|
|
67
|
+
text: `You are connected to NodeBench Development Methodology MCP — a tool suite for rigorous software development.
|
|
68
|
+
|
|
69
|
+
FIRST TIME? Run these 3 steps:
|
|
70
|
+
1. Call bootstrap_project to register your project (tech stack, architecture, conventions)
|
|
71
|
+
2. Call getMethodology("overview") to see all available methodologies
|
|
72
|
+
3. Call search_all_knowledge("your current task") before starting any work
|
|
73
|
+
|
|
74
|
+
RETURNING? Your project context and all past learnings are persisted. Start with:
|
|
75
|
+
1. Call get_project_context to refresh your project awareness
|
|
76
|
+
2. Call search_all_knowledge with your current task
|
|
77
|
+
3. Follow the methodology tools as you work — they'll guide you step by step
|
|
78
|
+
|
|
79
|
+
KEY TOOLS:
|
|
80
|
+
- getMethodology — Step-by-step guides for verification, eval, flywheel, recon
|
|
81
|
+
- findTools — Discover tools by keyword or category
|
|
82
|
+
- search_all_knowledge — Search learnings + recon findings + resolved gaps
|
|
83
|
+
- bootstrap_project — Register/update project context
|
|
84
|
+
- run_mandatory_flywheel — Required 6-step verification for any non-trivial change
|
|
85
|
+
|
|
86
|
+
The knowledge base grows automatically as you work. Every verification cycle, eval run, and resolved gap contributes back.`,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: "project-setup",
|
|
93
|
+
description: "Guided project bootstrapping. Walks you through registering project context so the MCP has full project awareness.",
|
|
94
|
+
arguments: [
|
|
95
|
+
{
|
|
96
|
+
name: "projectName",
|
|
97
|
+
description: "Name of the project to set up",
|
|
98
|
+
required: true,
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
messages: (args) => [
|
|
102
|
+
{
|
|
103
|
+
role: "user",
|
|
104
|
+
content: {
|
|
105
|
+
type: "text",
|
|
106
|
+
text: `Help me set up NodeBench methodology tracking for project: ${args.projectName}
|
|
107
|
+
|
|
108
|
+
Please gather and record the following using the bootstrap_project tool:
|
|
109
|
+
1. Tech stack (languages, frameworks, runtimes)
|
|
110
|
+
2. Key dependency versions
|
|
111
|
+
3. Architecture overview
|
|
112
|
+
4. Build/test commands
|
|
113
|
+
5. Known conventions or patterns
|
|
114
|
+
6. Repository structure highlights
|
|
115
|
+
|
|
116
|
+
After bootstrapping, run a reconnaissance session with run_recon to check for latest updates on the project's key frameworks and SDKs.`,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "ui-qa-checklist",
|
|
123
|
+
description: "UI/UX QA checklist for frontend implementations. Run after any change that touches React components, layouts, or interactions. Guides the agent through component tests, accessibility, responsive checks, and E2E validation.",
|
|
124
|
+
arguments: [
|
|
125
|
+
{
|
|
126
|
+
name: "componentName",
|
|
127
|
+
description: "The component or feature that changed (e.g. 'AgentStatusCard', 'Settings page dark mode')",
|
|
128
|
+
required: true,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
messages: (args) => [
|
|
132
|
+
{
|
|
133
|
+
role: "user",
|
|
134
|
+
content: {
|
|
135
|
+
type: "text",
|
|
136
|
+
text: `You just implemented UI changes to: ${args.componentName}
|
|
137
|
+
|
|
138
|
+
Before declaring this work done, run the UI/UX QA checklist:
|
|
139
|
+
|
|
140
|
+
1. COMPONENT TESTS: Run \`npm run test:run\` — all component tests must pass
|
|
141
|
+
2. STORYBOOK: Run \`npm run storybook\` — verify the component renders in isolation
|
|
142
|
+
3. RESPONSIVE: Check at 375px, 768px, 1280px — layout must not break
|
|
143
|
+
4. ACCESSIBILITY: Tab through the UI, check aria-labels, run Storybook a11y panel
|
|
144
|
+
5. STATES: Verify loading, error, and empty states are handled
|
|
145
|
+
6. CONSOLE: Check browser devtools for errors/warnings
|
|
146
|
+
7. CAPTURE: Call capture_responsive_suite(url, label) to screenshot at 3 breakpoints
|
|
147
|
+
8. E2E: Run \`npm run test:e2e\` if relevant tests exist
|
|
148
|
+
9. LIGHTHOUSE: Run \`npm run perf:lighthouse\` for performance + accessibility scores
|
|
149
|
+
|
|
150
|
+
After checking each item, record results:
|
|
151
|
+
call get_gate_preset("ui_ux_qa") to see the 8 evaluation rules
|
|
152
|
+
evaluate each rule against ${args.componentName}
|
|
153
|
+
call run_quality_gate(gateName: "ui_ux_qa", rules: [{name, passed}, ...]) with your boolean results
|
|
154
|
+
call record_learning for any UI gotchas discovered
|
|
155
|
+
|
|
156
|
+
For the full step-by-step methodology, call getMethodology("ui_ux_qa").
|
|
157
|
+
|
|
158
|
+
Commands available:
|
|
159
|
+
npm run test:run — Vitest component tests
|
|
160
|
+
npm run test:e2e — Playwright E2E tests
|
|
161
|
+
npm run storybook — Storybook dev server (port 6006)
|
|
162
|
+
npm run perf:lighthouse — Lighthouse audit
|
|
163
|
+
npm run perf:bundle — Bundle size analysis`,
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
const server = new Server({ name: "nodebench-mcp-methodology", version: "2.0.0" }, { capabilities: { tools: {}, prompts: {} } });
|
|
170
|
+
// Handle tools/list — return all tools with their JSON Schema inputSchemas
|
|
171
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
172
|
+
return {
|
|
173
|
+
tools: allTools.map((t) => ({
|
|
174
|
+
name: t.name,
|
|
175
|
+
description: t.description,
|
|
176
|
+
inputSchema: t.inputSchema,
|
|
177
|
+
})),
|
|
178
|
+
};
|
|
179
|
+
});
|
|
180
|
+
// Handle tools/call — dispatch to the matching tool handler
|
|
181
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
182
|
+
const { name, arguments: args } = request.params;
|
|
183
|
+
const tool = toolMap.get(name);
|
|
184
|
+
if (!tool) {
|
|
185
|
+
return {
|
|
186
|
+
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
187
|
+
isError: true,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
try {
|
|
191
|
+
const result = await tool.handler(args ?? {});
|
|
192
|
+
// Tools with rawContent return ContentBlock[] directly (e.g. image captures)
|
|
193
|
+
if (tool.rawContent && Array.isArray(result)) {
|
|
194
|
+
return { content: result, isError: false };
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
198
|
+
isError: false,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
return {
|
|
203
|
+
content: [{ type: "text", text: err?.message || "Internal error" }],
|
|
204
|
+
isError: true,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
// Handle prompts/list — return available prompts for agent discovery
|
|
209
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
210
|
+
return {
|
|
211
|
+
prompts: PROMPTS.map((p) => ({
|
|
212
|
+
name: p.name,
|
|
213
|
+
description: p.description,
|
|
214
|
+
...(("arguments" in p && p.arguments) ? { arguments: p.arguments } : {}),
|
|
215
|
+
})),
|
|
216
|
+
};
|
|
217
|
+
});
|
|
218
|
+
// Handle prompts/get — return prompt messages
|
|
219
|
+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
220
|
+
const { name, arguments: args } = request.params;
|
|
221
|
+
const prompt = PROMPTS.find((p) => p.name === name);
|
|
222
|
+
if (!prompt) {
|
|
223
|
+
throw new Error(`Unknown prompt: ${name}. Available: ${PROMPTS.map((p) => p.name).join(", ")}`);
|
|
224
|
+
}
|
|
225
|
+
const messages = typeof prompt.messages === "function"
|
|
226
|
+
? prompt.messages(args ?? {})
|
|
227
|
+
: prompt.messages;
|
|
228
|
+
return {
|
|
229
|
+
description: prompt.description,
|
|
230
|
+
messages,
|
|
231
|
+
};
|
|
232
|
+
});
|
|
233
|
+
// Connect via stdio
|
|
234
|
+
const transport = new StdioServerTransport();
|
|
235
|
+
await server.connect(transport);
|
|
236
|
+
console.error(`nodebench-mcp-methodology ready (${allTools.length} tools, ${PROMPTS.length} prompts, SQLite at ~/.nodebench/)`);
|
|
237
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|