@kernlang/mcp-server 3.1.7 → 3.1.9

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 ADDED
@@ -0,0 +1,324 @@
1
+ # @kernlang/mcp-server
2
+
3
+ MCP server for KERN -- the LLM-native language that compiles to 12 targets. Give any AI agent the ability to write, compile, review, and self-correct `.kern` code.
4
+
5
+ ```
6
+ npx @kernlang/mcp-server
7
+ ```
8
+
9
+ ## What is this?
10
+
11
+ KERN is a declarative DSL designed specifically for AI code generation. This MCP server exposes KERN's full compiler, reviewer, and schema to any MCP-compatible client (Claude Desktop, Cursor, Windsurf, VS Code, etc.).
12
+
13
+ An AI agent using this server can:
14
+ 1. **Ask what it can write** -- `schema` tool returns the full language spec as JSON
15
+ 2. **Compile .kern to any target** -- Next.js, React, Vue, Express, FastAPI, MCP servers, and more
16
+ 3. **Self-correct from errors** -- `compile-json` returns structured diagnostics with line numbers and suggestions
17
+ 4. **Review code** -- 76+ static analysis rules with taint tracking and OWASP coverage
18
+
19
+ ## Quick start
20
+
21
+ ### Claude Desktop
22
+
23
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
24
+
25
+ ```json
26
+ {
27
+ "mcpServers": {
28
+ "kern": {
29
+ "command": "npx",
30
+ "args": ["@kernlang/mcp-server"]
31
+ }
32
+ }
33
+ }
34
+ ```
35
+
36
+ ### Cursor
37
+
38
+ Add to `.cursor/mcp.json` in your project:
39
+
40
+ ```json
41
+ {
42
+ "mcpServers": {
43
+ "kern": {
44
+ "command": "npx",
45
+ "args": ["@kernlang/mcp-server"]
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ### Claude Code
52
+
53
+ ```bash
54
+ claude mcp add kern -- npx @kernlang/mcp-server
55
+ ```
56
+
57
+ ### Windsurf / VS Code
58
+
59
+ Add to your MCP settings:
60
+
61
+ ```json
62
+ {
63
+ "kern": {
64
+ "command": "npx",
65
+ "args": ["@kernlang/mcp-server"]
66
+ }
67
+ }
68
+ ```
69
+
70
+ ## Tools
71
+
72
+ ### compile
73
+
74
+ Compile `.kern` source to any target framework. Returns generated code.
75
+
76
+ ```
77
+ source: ".kern source code"
78
+ target: "nextjs" | "react" | "vue" | "express" | "fastapi" | "mcp" | ...
79
+ ```
80
+
81
+ ### compile-json
82
+
83
+ Compile with structured JSON diagnostics for programmatic self-correction. Returns `{ success, code, diagnostics, stats }`.
84
+
85
+ Each diagnostic includes `code`, `severity`, `line`, `col`, `endCol`, and `suggestion` -- everything an LLM needs to fix its own mistakes.
86
+
87
+ ### schema
88
+
89
+ Returns the full KERN language schema as JSON: all node types, their props (with required/optional and types), allowed children, style shorthands, and multiline block types.
90
+
91
+ Use this before writing `.kern` code to know exactly what's valid.
92
+
93
+ ### review
94
+
95
+ Run static analysis (76+ rules, taint tracking, OWASP) on TypeScript/JavaScript source code.
96
+
97
+ ### review-kern
98
+
99
+ Lint `.kern` source for structural issues, missing props, and pattern violations.
100
+
101
+ ### review-mcp-server
102
+
103
+ Scan MCP server code for security vulnerabilities. 13 rules mapped to OWASP MCP Top 10.
104
+
105
+ ### parse
106
+
107
+ Parse `.kern` source and return the intermediate representation (IR). Useful for debugging.
108
+
109
+ ### decompile
110
+
111
+ Convert parsed IR back to human-readable `.kern` text.
112
+
113
+ ### validate
114
+
115
+ Validate `.kern` syntax without compiling. Returns parse errors or success.
116
+
117
+ ### list-targets
118
+
119
+ List all 12 available compile targets with descriptions.
120
+
121
+ ### list-nodes
122
+
123
+ Browse KERN node types by category (layout, backend, state, types, mcp, etc.) with their props and allowed children.
124
+
125
+ ## Resources
126
+
127
+ | Resource | URI | Description |
128
+ |----------|-----|-------------|
129
+ | kern-spec | `kern://spec` | Full language specification |
130
+ | kern-examples | `kern://examples/{category}` | Example code by category (ui, api, state-machine, mcp, terminal) |
131
+ | kern-targets | `kern://targets` | Available compile targets as JSON |
132
+
133
+ ## Prompts
134
+
135
+ ### write-kern
136
+
137
+ Comprehensive system prompt that teaches an LLM how to write `.kern` code -- grammar rules, node types, style shorthands, and annotated examples for UI, API, state machines, MCP servers, hooks, and type systems.
138
+
139
+ ## LLM self-correction loop
140
+
141
+ The `schema` and `compile-json` tools enable a closed-loop workflow:
142
+
143
+ ```
144
+ 1. schema --> "what can I write?"
145
+ 2. write .kern --> generate code using schema
146
+ 3. compile-json --> "did I get it right?"
147
+ 4. if errors:
148
+ read diagnostics (line, col, suggestion)
149
+ fix and goto 3
150
+ 5. done
151
+ ```
152
+
153
+ No human intervention needed. The LLM can iterate to correct code autonomously.
154
+
155
+ ## KERN syntax at a glance
156
+
157
+ ```kern
158
+ // Comments work with // or #
159
+
160
+ doc text="User management API"
161
+ server name=UserAPI port=3001
162
+ middleware name=cors
163
+ middleware name=json
164
+
165
+ route GET /api/users
166
+ auth required
167
+ handler <<<
168
+ const users = await db.query('SELECT * FROM users');
169
+ res.json(users);
170
+ >>>
171
+ ```
172
+
173
+ ```kern
174
+ // State machine -- 7 lines, 140+ lines TypeScript output
175
+ machine name=Order initial=pending
176
+ transition from=pending to=confirmed event=confirm
177
+ transition from=confirmed to=shipped event=ship
178
+ transition from=shipped to=delivered event=deliver
179
+ transition from=pending to=cancelled event=cancel
180
+ ```
181
+
182
+ ## Project structure
183
+
184
+ A typical KERN project looks like this:
185
+
186
+ ```
187
+ my-project/
188
+ kern.config.ts # KERN configuration
189
+ src/
190
+ features/
191
+ auth.kern # .kern source files
192
+ dashboard.kern
193
+ generated/ # compiled output (--outdir)
194
+ auth.ts
195
+ dashboard.tsx
196
+ src/ # facade re-exports (--facades)
197
+ auth.ts # export * from '../generated/auth.js'
198
+ dashboard.ts
199
+ index.ts # barrel exports (auto-generated)
200
+ ```
201
+
202
+ With `kern compile src/features --outdir=generated --facades`, you write `.kern` files and everything else is auto-generated.
203
+
204
+ ## Configuration
205
+
206
+ Create `kern.config.ts` in your project root:
207
+
208
+ ```ts
209
+ import type { KernConfig } from 'kern-lang';
210
+
211
+ const config: KernConfig = {
212
+ // Target framework
213
+ target: 'nextjs',
214
+
215
+ // Output directory for generated files
216
+ output: {
217
+ outDir: 'src/generated',
218
+ sourceMaps: true,
219
+ },
220
+
221
+ // i18n support
222
+ i18n: {
223
+ enabled: true,
224
+ hookName: 'useTranslation',
225
+ importPath: 'react-i18next',
226
+ },
227
+
228
+ // Component import mappings
229
+ components: {
230
+ uiLibrary: '@components/ui',
231
+ componentRoot: '@/components',
232
+ },
233
+
234
+ // Color palette (hex -> Tailwind class)
235
+ colors: {
236
+ '#09090b': 'zinc-950',
237
+ '#f97316': 'orange-500',
238
+ },
239
+
240
+ // Code review settings
241
+ review: {
242
+ showConfidence: true,
243
+ maxComplexity: 15,
244
+ },
245
+ };
246
+
247
+ export default config;
248
+ ```
249
+
250
+ The config is auto-loaded by the CLI. All fields are optional -- sensible defaults are applied.
251
+
252
+ ### Configuration options
253
+
254
+ | Key | Default | Description |
255
+ |-----|---------|-------------|
256
+ | `target` | `nextjs` | Compile target (auto-detected from package.json) |
257
+ | `structure` | `flat` | Output structure: `flat`, `bulletproof`, `atomic`, `kern` |
258
+ | `output.outDir` | `.` | Directory for generated files |
259
+ | `output.sourceMaps` | `false` | Generate `.map` files |
260
+ | `i18n.enabled` | `true` | Wrap strings in `t()` calls |
261
+ | `i18n.hookName` | `useTranslation` | i18n hook name |
262
+ | `components.uiLibrary` | `@components/ui` | UI component import path |
263
+ | `colors` | Zinc scale | Hex-to-Tailwind color mappings |
264
+ | `review.maxComplexity` | `15` | Max cognitive complexity |
265
+ | `review.disabledRules` | `[]` | Rule IDs to disable |
266
+ | `express.security` | `strict` | Express security level |
267
+ | `fastapi.cors` | `false` | Enable CORS for FastAPI |
268
+
269
+ ## CLI commands
270
+
271
+ The KERN CLI (`kern-lang` npm package) provides these commands:
272
+
273
+ ```bash
274
+ # Compile .kern files to TypeScript
275
+ kern compile src/ --outdir=generated --facades --barrel
276
+
277
+ # Compile with JSON diagnostics (for LLM self-correction)
278
+ kern compile src/ --outdir=generated --json
279
+
280
+ # Dump full language schema as JSON
281
+ kern schema
282
+
283
+ # Watch mode -- recompile on changes
284
+ kern dev src/
285
+
286
+ # Scan project and auto-detect target
287
+ kern scan
288
+
289
+ # LLM-powered code review
290
+ kern review src/
291
+ ```
292
+
293
+ ### Compile flags
294
+
295
+ | Flag | Description |
296
+ |------|-------------|
297
+ | `--outdir=DIR` | Output directory (default: `generated/`) |
298
+ | `--target=TARGET` | Override compile target |
299
+ | `--facades` | Auto-generate `src/*.ts` re-export facades |
300
+ | `--facades-dir=DIR` | Custom facades directory |
301
+ | `--barrel` | Generate barrel `index.ts` in output dir |
302
+ | `--strict-parse` | Fail on parse errors |
303
+ | `--json` | Output structured JSON diagnostics |
304
+
305
+ ## Compile targets
306
+
307
+ | Target | Output |
308
+ |--------|--------|
309
+ | `nextjs` | Next.js App Router (TypeScript/React) |
310
+ | `tailwind` | React + Tailwind CSS |
311
+ | `web` | Plain React components |
312
+ | `vue` | Vue 3 SFC |
313
+ | `nuxt` | Nuxt 3 |
314
+ | `express` | Express TypeScript REST API |
315
+ | `fastapi` | FastAPI Python async backend |
316
+ | `native` | React Native (iOS/Android) |
317
+ | `cli` | Node.js CLI |
318
+ | `terminal` | Terminal UI (ANSI) |
319
+ | `ink` | Ink (React for terminals) |
320
+ | `mcp` | MCP server (Model Context Protocol) |
321
+
322
+ ## License
323
+
324
+ AGPL-3.0
package/dist/index.js CHANGED
@@ -8,13 +8,13 @@
8
8
  * Usage: kern-mcp
9
9
  * Config: { "mcpServers": { "kern": { "command": "npx", "args": ["@kernlang/mcp-server"] } } }
10
10
  */
11
- import { countTokens, decompile, KERN_VERSION, NODE_SCHEMAS, NODE_TYPES, parse, resolveConfig, STYLE_SHORTHANDS, serializeIR, VALID_TARGETS, } from '@kernlang/core';
11
+ import { countTokens, decompile, defaultRuntime, KERN_VERSION, NODE_SCHEMAS, NODE_TYPES, parse, parseWithDiagnostics, resolveConfig, STYLE_SHORTHANDS, serializeIR, VALID_TARGETS, VALUE_SHORTHANDS, } from '@kernlang/core';
12
12
  import { transpileExpress } from '@kernlang/express';
13
13
  import { transpileFastAPI } from '@kernlang/fastapi';
14
- import { transpileMCP } from '@kernlang/mcp';
14
+ import { transpileMCP, transpileMCPPython } from '@kernlang/mcp';
15
15
  import { transpileNextjs, transpileTailwind, transpileWeb } from '@kernlang/react';
16
16
  import { reviewKernSource, reviewSource } from '@kernlang/review';
17
- import { reviewMCPSource } from '@kernlang/review-mcp';
17
+ import { computeSecurityScore, generateLiveLockFile, inferMCP, inspectMcpServers, reviewMCPSource, runPostScan, scanMcpConfigs, verifyLiveLockFile, } from '@kernlang/review-mcp';
18
18
  import { transpileInk, transpileTerminal } from '@kernlang/terminal';
19
19
  import { transpileNuxt, transpileVue } from '@kernlang/vue';
20
20
  import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
@@ -70,6 +70,140 @@ function countNodes(node) {
70
70
  return count;
71
71
  }
72
72
  const targetEnum = z.enum(VALID_TARGETS);
73
+ const MALICIOUS_PAYLOADS = {
74
+ sanitize: [
75
+ { value: '<script>alert(1)</script>', label: 'XSS payload' },
76
+ { value: '"; DROP TABLE users; --', label: 'SQL injection' },
77
+ { value: '$(whoami)', label: 'command substitution' },
78
+ { value: '{{7*7}}', label: 'template injection' },
79
+ ],
80
+ pathContainment: [
81
+ { value: '../../../etc/passwd', label: 'path traversal (unix)' },
82
+ { value: '..\\..\\..\\windows\\system32\\config\\sam', label: 'path traversal (windows)' },
83
+ { value: '/etc/shadow', label: 'absolute path escape' },
84
+ { value: 'data/../../../etc/hosts', label: 'nested traversal' },
85
+ ],
86
+ validate: [
87
+ { value: -999999, label: 'extreme negative number' },
88
+ { value: 999999999, label: 'extreme large number' },
89
+ { value: '', label: 'empty string' },
90
+ ],
91
+ sizeLimit: [{ value: 'x'.repeat(2_000_000), label: '2MB payload' }],
92
+ rateLimit: [],
93
+ auth: [],
94
+ sanitizeOutput: [],
95
+ };
96
+ function irChildren(node, type) {
97
+ return (node.children || []).filter((c) => c.type === type);
98
+ }
99
+ function irStr(val) {
100
+ return val === undefined || val === null ? undefined : String(val);
101
+ }
102
+ function generateTestSuites(ast) {
103
+ const mcpNode = ast.type === 'mcp' ? ast : ((ast.children || []).find((c) => c.type === 'mcp') ?? ast);
104
+ const tools = irChildren(mcpNode, 'tool');
105
+ const suites = [];
106
+ for (const tool of tools) {
107
+ const toolName = irStr(tool.props?.name) || 'tool';
108
+ const params = irChildren(tool, 'param');
109
+ const guards = irChildren(tool, 'guard');
110
+ const cases = [];
111
+ const validInput = {};
112
+ for (const p of params) {
113
+ const name = irStr(p.props?.name) || 'input';
114
+ const pType = irStr(p.props?.type) || 'string';
115
+ const defaultVal = irStr(p.props?.default);
116
+ validInput[name] = defaultVal ?? (pType === 'number' ? 1 : pType === 'boolean' ? true : 'test-value');
117
+ }
118
+ cases.push({
119
+ name: `${toolName} — valid input passes`,
120
+ description: 'All parameters within bounds, should succeed',
121
+ input: { ...validInput },
122
+ expectBlocked: false,
123
+ });
124
+ for (const guard of guards) {
125
+ const kind = irStr(guard.props?.type) || irStr(guard.props?.kind) || irStr(guard.props?.name) || '';
126
+ const target = irStr(guard.props?.param) || irStr(guard.props?.target);
127
+ const payloads = MALICIOUS_PAYLOADS[kind] || [];
128
+ for (const payload of payloads) {
129
+ const malInput = { ...validInput };
130
+ if (target) {
131
+ malInput[target] = payload.value;
132
+ }
133
+ else {
134
+ const firstStr = params.find((p) => (irStr(p.props?.type) || 'string') === 'string');
135
+ if (firstStr)
136
+ malInput[irStr(firstStr.props?.name) || 'input'] = payload.value;
137
+ }
138
+ cases.push({
139
+ name: `${toolName} — ${kind} blocks ${payload.label}`,
140
+ description: `Guard type=${kind} should reject: ${payload.label}`,
141
+ input: malInput,
142
+ expectBlocked: true,
143
+ });
144
+ }
145
+ if (kind === 'validate' && target) {
146
+ const min = irStr(guard.props?.min);
147
+ const max = irStr(guard.props?.max);
148
+ if (min) {
149
+ cases.push({
150
+ name: `${toolName} — validate rejects below min (${min})`,
151
+ description: `Value below minimum ${min} should be rejected`,
152
+ input: { ...validInput, [target]: Number(min) - 1 },
153
+ expectBlocked: true,
154
+ });
155
+ }
156
+ if (max) {
157
+ cases.push({
158
+ name: `${toolName} — validate rejects above max (${max})`,
159
+ description: `Value above maximum ${max} should be rejected`,
160
+ input: { ...validInput, [target]: Number(max) + 1 },
161
+ expectBlocked: true,
162
+ });
163
+ }
164
+ }
165
+ }
166
+ suites.push({ toolName, cases });
167
+ }
168
+ return suites;
169
+ }
170
+ function renderTestFile(suites, serverPath) {
171
+ const lines = [];
172
+ lines.push('// Auto-generated security tests from .kern definition');
173
+ lines.push('// Tests that guards correctly block malicious inputs');
174
+ lines.push("import { describe, it, expect } from 'vitest';");
175
+ lines.push('');
176
+ lines.push("// TODO: Import your compiled MCP server's tool handlers");
177
+ lines.push(`// import { callTool } from '${serverPath}';`);
178
+ lines.push('');
179
+ for (const suite of suites) {
180
+ lines.push(`describe('${suite.toolName}', () => {`);
181
+ for (const tc of suite.cases) {
182
+ const inputStr = JSON.stringify(tc.input, null, 2).replace(/\n/g, '\n ');
183
+ if (tc.expectBlocked) {
184
+ lines.push(` it('${tc.name}', async () => {`);
185
+ lines.push(` const input = ${inputStr};`);
186
+ lines.push(` // ${tc.description}`);
187
+ lines.push(` // await expect(callTool('${suite.toolName}', input)).rejects.toThrow();`);
188
+ lines.push(' expect(true).toBe(true); // TODO: wire up tool call');
189
+ lines.push(' });');
190
+ }
191
+ else {
192
+ lines.push(` it('${tc.name}', async () => {`);
193
+ lines.push(` const input = ${inputStr};`);
194
+ lines.push(` // ${tc.description}`);
195
+ lines.push(` // const result = await callTool('${suite.toolName}', input);`);
196
+ lines.push(' // expect(result.isError).toBeFalsy();');
197
+ lines.push(' expect(true).toBe(true); // TODO: wire up tool call');
198
+ lines.push(' });');
199
+ }
200
+ lines.push('');
201
+ }
202
+ lines.push('});');
203
+ lines.push('');
204
+ }
205
+ return lines.join('\n');
206
+ }
73
207
  // ── Tools ───────────────────────────────────────────────────────────────
74
208
  // 1. compile
75
209
  server.tool('compile', 'Compile .kern source code to a target framework (Next.js, React, Vue, Express, FastAPI, MCP, etc.). Returns generated code.', {
@@ -147,21 +281,56 @@ server.tool('review-kern', 'Lint .kern source code for structural issues, missin
147
281
  return { isError: true, content: [{ type: 'text', text: `Review error: ${fmtError(e)}` }] };
148
282
  }
149
283
  });
150
- // 4. review-mcp-server — scan MCP server code for security issues
151
- server.tool('review-mcp-server', 'Scan MCP server TypeScript/Python code for security vulnerabilities. 13 rules mapped to OWASP MCP Top 10.', {
284
+ // 4. review-mcp-server — scan MCP server code for security issues (with scoring)
285
+ server.tool('review-mcp-server', 'Scan MCP server TypeScript/Python code for security vulnerabilities. 13 rules mapped to OWASP MCP Top 10. Returns findings + security score (0-100, A-F).', {
152
286
  source: z.string().describe('MCP server source code to scan'),
153
287
  filePath: z.string().default('server.ts').describe('File path for context'),
154
288
  }, async ({ source, filePath }) => {
155
289
  log('tool:review-mcp-server', { filePath });
156
290
  try {
157
291
  const findings = reviewMCPSource(source, filePath);
158
- if (!findings.length)
159
- return { content: [{ type: 'text', text: 'No MCP security issues found.' }] };
292
+ const postFindings = runPostScan(source, filePath);
293
+ findings.push(...postFindings);
294
+ let irNodes = [];
295
+ if (!filePath.endsWith('.py')) {
296
+ try {
297
+ irNodes = inferMCP(source, filePath);
298
+ }
299
+ catch {
300
+ irNodes = [];
301
+ }
302
+ }
303
+ const score = computeSecurityScore(irNodes, findings);
304
+ if (!findings.length) {
305
+ return {
306
+ content: [
307
+ {
308
+ type: 'text',
309
+ text: `No MCP security issues found.\n\nSecurity Score: ${score.total}/100 (${score.grade})`,
310
+ },
311
+ ],
312
+ };
313
+ }
160
314
  const lines = findings.map((f) => {
161
315
  const loc = f.primarySpan?.startLine ? `L${f.primarySpan.startLine}` : '';
162
- return `${f.severity === 'error' ? '!' : '~'} ${loc}: [${f.ruleId}] ${f.message}${f.suggestion ? `\n → ${f.suggestion}` : ''}`;
316
+ const conf = f.confidence !== undefined ? ` [${f.confidence.toFixed(2)}]` : '';
317
+ return `${f.severity === 'error' ? '!' : '~'} ${loc}: [${f.ruleId}]${conf} ${f.message}${f.suggestion ? `\n → ${f.suggestion}` : ''}`;
163
318
  });
164
- return { content: [{ type: 'text', text: `${findings.length} MCP security finding(s)\n\n${lines.join('\n')}` }] };
319
+ const errors = findings.filter((f) => f.severity === 'error').length;
320
+ const warnings = findings.filter((f) => f.severity === 'warning').length;
321
+ return {
322
+ content: [
323
+ {
324
+ type: 'text',
325
+ text: [
326
+ `Security Score: ${score.total}/100 (${score.grade})`,
327
+ `${findings.length} finding(s) — ${errors} errors, ${warnings} warnings`,
328
+ '',
329
+ ...lines,
330
+ ].join('\n'),
331
+ },
332
+ ],
333
+ };
165
334
  }
166
335
  catch (e) {
167
336
  err('tool:review-mcp:error', { error: fmtError(e) });
@@ -299,6 +468,7 @@ server.tool('list-nodes', 'List KERN node types with their properties and allowe
299
468
  'strategy',
300
469
  ],
301
470
  mcp: ['mcp', 'tool', 'resource', 'prompt', 'param', 'description', 'sampling', 'elicitation'],
471
+ meta: ['doc', 'theme', 'import', 'module', 'export'],
302
472
  };
303
473
  const lines = [];
304
474
  if (filter && filter in categories) {
@@ -340,6 +510,282 @@ server.tool('list-nodes', 'List KERN node types with their properties and allowe
340
510
  }
341
511
  return { content: [{ type: 'text', text: lines.join('\n') }] };
342
512
  });
513
+ // 10. schema — machine-readable JSON schema for LLM self-correction loops
514
+ server.tool('schema', 'Get the full KERN language schema as machine-readable JSON. Use this to know what node types, props, and children are valid before writing .kern code.', {}, async () => {
515
+ const schema = {
516
+ version: KERN_VERSION,
517
+ nodeTypes: [...NODE_TYPES],
518
+ multilineBlockTypes: [...defaultRuntime.multilineBlockTypes],
519
+ schemas: NODE_SCHEMAS,
520
+ styleShorthands: STYLE_SHORTHANDS,
521
+ valueShorthands: VALUE_SHORTHANDS,
522
+ };
523
+ return { content: [{ type: 'text', text: JSON.stringify(schema) }] };
524
+ });
525
+ // 11. compile-json — compile with structured diagnostics for self-correction
526
+ server.tool('compile-json', 'Compile .kern source and return structured JSON diagnostics (code, line, col, suggestion). Use this for programmatic self-correction.', {
527
+ source: z.string().describe('.kern source code'),
528
+ target: targetEnum.default('nextjs').describe('Target framework'),
529
+ }, async ({ source, target }) => {
530
+ log('tool:compile-json', { target, len: source.length });
531
+ try {
532
+ const result = parseWithDiagnostics(source);
533
+ const config = resolveConfig({ target: target });
534
+ const compiled = transpile(result.root, target, config);
535
+ const output = {
536
+ success: result.diagnostics.filter((d) => d.severity === 'error').length === 0,
537
+ code: compiled.code,
538
+ diagnostics: result.diagnostics,
539
+ stats: { irTokens: compiled.irTokenCount, outputTokens: compiled.tsTokenCount },
540
+ };
541
+ return { content: [{ type: 'text', text: JSON.stringify(output) }] };
542
+ }
543
+ catch (e) {
544
+ err('tool:compile-json:error', { error: fmtError(e) });
545
+ return {
546
+ isError: true,
547
+ content: [{ type: 'text', text: JSON.stringify({ success: false, error: fmtError(e) }) }],
548
+ };
549
+ }
550
+ });
551
+ // 12. compile-and-review — compile .kern → MCP, then auto-scan the output
552
+ server.tool('compile-and-review', 'Compile .kern to a secure MCP server (TypeScript or Python), then auto-scan the compiled output for security vulnerabilities. Returns code + security score + findings in one call.', {
553
+ source: z.string().describe('.kern source code'),
554
+ target: z.enum(['typescript', 'python']).default('typescript').describe('Output language'),
555
+ }, async ({ source, target }) => {
556
+ log('tool:compile-and-review', { target, len: source.length });
557
+ try {
558
+ const ast = parse(source);
559
+ const config = resolveConfig({ target: 'mcp' });
560
+ const compiled = target === 'python' ? transpileMCPPython(ast, config) : transpileMCP(ast, config);
561
+ const filePath = target === 'python' ? 'server.py' : 'server.ts';
562
+ const findings = reviewMCPSource(compiled.code, filePath);
563
+ const postFindings = runPostScan(compiled.code, filePath);
564
+ findings.push(...postFindings);
565
+ let irNodes = [];
566
+ if (target !== 'python') {
567
+ try {
568
+ irNodes = inferMCP(compiled.code, filePath);
569
+ }
570
+ catch {
571
+ irNodes = [];
572
+ }
573
+ }
574
+ const score = computeSecurityScore(irNodes, findings);
575
+ const errors = findings.filter((f) => f.severity === 'error').length;
576
+ const warnings = findings.filter((f) => f.severity === 'warning').length;
577
+ const findingLines = findings.map((f) => {
578
+ const loc = f.primarySpan?.startLine ? `L${f.primarySpan.startLine}` : '';
579
+ return `${f.severity === 'error' ? '!' : '~'} ${loc}: [${f.ruleId}] ${f.message}${f.suggestion ? `\n → ${f.suggestion}` : ''}`;
580
+ });
581
+ const header = [
582
+ `// Compiled to MCP ${target === 'python' ? 'Python' : 'TypeScript'} (${compiled.irTokenCount} KERN → ${compiled.tsTokenCount} output tokens)`,
583
+ `// Security Score: ${score.total}/100 (${score.grade}) — ${findings.length} finding(s): ${errors} errors, ${warnings} warnings`,
584
+ '',
585
+ ].join('\n');
586
+ const review = findings.length > 0
587
+ ? `\n\n--- Security Review ---\n${findingLines.join('\n')}`
588
+ : '\n\n--- Security Review ---\nNo issues found.';
589
+ return { content: [{ type: 'text', text: header + compiled.code + review }] };
590
+ }
591
+ catch (e) {
592
+ err('tool:compile-and-review:error', { error: fmtError(e) });
593
+ return { isError: true, content: [{ type: 'text', text: `Compile-and-review error: ${fmtError(e)}` }] };
594
+ }
595
+ });
596
+ // 13. audit-mcp-config — scan MCP configuration files for security issues
597
+ server.tool('audit-mcp-config', 'Scan MCP configuration files (Claude Desktop, Cursor, VS Code, Windsurf) for hardcoded secrets, missing version pins, and wide permissions. Scans the host machine config files.', {
598
+ workspaceRoot: z
599
+ .string()
600
+ .optional()
601
+ .describe('Workspace root path to also scan .cursor/mcp.json, .vscode/mcp.json, .windsurf/mcp.json'),
602
+ }, async ({ workspaceRoot }) => {
603
+ log('tool:audit-mcp-config', { workspaceRoot });
604
+ try {
605
+ const result = scanMcpConfigs(workspaceRoot);
606
+ if (result.servers.length === 0) {
607
+ return {
608
+ content: [
609
+ {
610
+ type: 'text',
611
+ text: [
612
+ `Scanned ${result.configsScanned.length} config file(s), ${result.configsMissing.length} not found.`,
613
+ 'No MCP servers configured.',
614
+ '',
615
+ result.configsMissing.length > 0
616
+ ? `Missing configs:\n${result.configsMissing.map((p) => ` ${p}`).join('\n')}`
617
+ : '',
618
+ ]
619
+ .filter(Boolean)
620
+ .join('\n'),
621
+ },
622
+ ],
623
+ };
624
+ }
625
+ const lines = [
626
+ `Scanned ${result.configsScanned.length} config(s) — ${result.servers.length} server(s), ${result.totalIssues} issue(s)`,
627
+ '',
628
+ ];
629
+ for (const server of result.servers) {
630
+ const trustIcon = server.trust === 'verified' ? '+' : server.trust === 'risky' ? '!' : '~';
631
+ lines.push(`${trustIcon} ${server.name} (${server.source})`);
632
+ lines.push(` command: ${server.command} ${server.args.join(' ')}`);
633
+ if (server.issues.length === 0) {
634
+ lines.push(' No issues.');
635
+ }
636
+ else {
637
+ for (const issue of server.issues) {
638
+ const sev = issue.severity === 'error' ? '!' : issue.severity === 'warning' ? '~' : '-';
639
+ lines.push(` ${sev} [${issue.type}] ${issue.message}`);
640
+ if (issue.detail)
641
+ lines.push(` → ${issue.detail}`);
642
+ }
643
+ }
644
+ lines.push('');
645
+ }
646
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
647
+ }
648
+ catch (e) {
649
+ err('tool:audit-mcp-config:error', { error: fmtError(e) });
650
+ return { isError: true, content: [{ type: 'text', text: `Config audit error: ${fmtError(e)}` }] };
651
+ }
652
+ });
653
+ // 14. generate-security-tests — auto-generate test cases from .kern AST
654
+ server.tool('generate-security-tests', 'Generate security test cases from .kern source. For each tool and guard, generates valid + malicious inputs to verify guards block attacks. Returns a vitest test file.', {
655
+ source: z.string().describe('.kern source code with MCP tools and guards'),
656
+ serverImportPath: z.string().default('./server').describe('Import path for the compiled server module'),
657
+ }, async ({ source, serverImportPath }) => {
658
+ log('tool:generate-security-tests', { len: source.length });
659
+ try {
660
+ const ast = parse(source);
661
+ const suites = generateTestSuites(ast);
662
+ if (suites.length === 0) {
663
+ return { content: [{ type: 'text', text: 'No MCP tools with guards found in source. Nothing to test.' }] };
664
+ }
665
+ const testFile = renderTestFile(suites, serverImportPath);
666
+ const totalCases = suites.reduce((sum, s) => sum + s.cases.length, 0);
667
+ return {
668
+ content: [
669
+ {
670
+ type: 'text',
671
+ text: `// ${suites.length} tool(s), ${totalCases} test case(s)\n\n${testFile}`,
672
+ },
673
+ ],
674
+ };
675
+ }
676
+ catch (e) {
677
+ err('tool:generate-security-tests:error', { error: fmtError(e) });
678
+ return { isError: true, content: [{ type: 'text', text: `Test generation error: ${fmtError(e)}` }] };
679
+ }
680
+ });
681
+ // 15. inspect-mcp-servers — connect to configured servers and check for poisoning
682
+ server.tool('inspect-mcp-servers', 'Connect to locally configured MCP servers (Claude Desktop, Cursor, VS Code, Windsurf), retrieve their tool lists, and check for poisoning patterns (hidden instructions, cross-origin escalation, tool shadowing, data exfiltration). Returns findings per server.', {
683
+ workspaceRoot: z.string().optional().describe('Workspace root for .cursor/mcp.json, .vscode/mcp.json scanning'),
684
+ allowlist: z.array(z.string()).optional().describe('Only inspect servers with these names (default: all)'),
685
+ timeout: z.number().default(10000).describe('Timeout per server connection in ms'),
686
+ }, async ({ workspaceRoot, allowlist, timeout }) => {
687
+ log('tool:inspect-mcp-servers', { workspaceRoot, allowlist, timeout });
688
+ try {
689
+ const result = await inspectMcpServers(workspaceRoot, { allowlist, timeout });
690
+ if (result.servers.length === 0) {
691
+ return {
692
+ content: [
693
+ {
694
+ type: 'text',
695
+ text: `Scanned ${result.configsScanned} config(s) — no MCP servers found to inspect.`,
696
+ },
697
+ ],
698
+ };
699
+ }
700
+ const lines = [
701
+ `Inspected ${result.servers.length} server(s) — ${result.totalTools} tool(s), ${result.totalFindings} finding(s)`,
702
+ '',
703
+ ];
704
+ for (const srv of result.servers) {
705
+ const statusIcon = srv.status === 'ok' ? '+' : srv.status === 'timeout' ? '~' : '!';
706
+ lines.push(`${statusIcon} ${srv.name} (${srv.source}) — ${srv.status}`);
707
+ if (srv.error)
708
+ lines.push(` Error: ${srv.error}`);
709
+ if (srv.tools.length > 0) {
710
+ lines.push(` Tools: ${srv.tools.map((t) => t.name).join(', ')}`);
711
+ }
712
+ for (const f of srv.findings) {
713
+ const sev = f.severity === 'error' ? '!' : '~';
714
+ lines.push(` ${sev} [${f.pattern}] ${f.toolName}: ${f.message}`);
715
+ }
716
+ lines.push('');
717
+ }
718
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
719
+ }
720
+ catch (e) {
721
+ err('tool:inspect-mcp-servers:error', { error: fmtError(e) });
722
+ return { isError: true, content: [{ type: 'text', text: `Inspection error: ${fmtError(e)}` }] };
723
+ }
724
+ });
725
+ // 16. verify-tool-pins — generate or verify a lockfile of tool hashes
726
+ server.tool('verify-tool-pins', 'Generate or verify a lockfile of MCP tool description and schema hashes. Detects rug pulls — when a server changes its tool behavior after initial trust. Pass mode="generate" to create a new lockfile, mode="verify" to check against an existing one.', {
727
+ mode: z.enum(['generate', 'verify']).describe('"generate" to create lockfile, "verify" to check against existing'),
728
+ lockfileJson: z.string().optional().describe('Existing lockfile JSON content (required for verify mode)'),
729
+ workspaceRoot: z.string().optional().describe('Workspace root for config discovery'),
730
+ timeout: z.number().default(10000).describe('Timeout per server connection in ms'),
731
+ }, async ({ mode, lockfileJson, workspaceRoot, timeout }) => {
732
+ log('tool:verify-tool-pins', { mode, workspaceRoot });
733
+ try {
734
+ const result = await inspectMcpServers(workspaceRoot, { timeout });
735
+ if (mode === 'generate') {
736
+ const lockFile = generateLiveLockFile(result);
737
+ return {
738
+ content: [
739
+ {
740
+ type: 'text',
741
+ text: JSON.stringify(lockFile, null, 2),
742
+ },
743
+ ],
744
+ };
745
+ }
746
+ // Verify mode
747
+ if (!lockfileJson) {
748
+ return {
749
+ isError: true,
750
+ content: [{ type: 'text', text: 'verify mode requires lockfileJson parameter' }],
751
+ };
752
+ }
753
+ let lockFile;
754
+ try {
755
+ lockFile = JSON.parse(lockfileJson);
756
+ }
757
+ catch {
758
+ return {
759
+ isError: true,
760
+ content: [{ type: 'text', text: 'lockfileJson is not valid JSON' }],
761
+ };
762
+ }
763
+ const drifts = verifyLiveLockFile(lockFile, result);
764
+ if (drifts.length === 0) {
765
+ return {
766
+ content: [
767
+ {
768
+ type: 'text',
769
+ text: `All tool pins verified — no changes detected across ${result.servers.length} server(s).`,
770
+ },
771
+ ],
772
+ };
773
+ }
774
+ const lines = [
775
+ `${drifts.length} drift(s) detected:`,
776
+ '',
777
+ ...drifts.map((d) => {
778
+ const sev = d.severity === 'error' ? '!' : '~';
779
+ return `${sev} [${d.field}] ${d.serverName}/${d.toolName}: ${d.message}`;
780
+ }),
781
+ ];
782
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
783
+ }
784
+ catch (e) {
785
+ err('tool:verify-tool-pins:error', { error: fmtError(e) });
786
+ return { isError: true, content: [{ type: 'text', text: `Pin verification error: ${fmtError(e)}` }] };
787
+ }
788
+ });
343
789
  // ── Resources ───────────────────────────────────────────────────────────
344
790
  // Full spec
345
791
  server.resource('kern-spec', 'kern://spec', {
@@ -553,6 +999,8 @@ server.prompt('write-kern', 'Comprehensive system prompt for writing .kern code
553
999
  - Styles: inline {shorthand: value, shorthand: value}
554
1000
  - Handlers: <<< multi-line code >>>
555
1001
  - Theme refs: $refName
1002
+ - Comments: // or # (full-line and inline)
1003
+ - Documentation: doc text="..." or doc <<< multiline >>> (emits JSDoc)
556
1004
 
557
1005
  ## Available Node Types
558
1006
  ${nodeList}
@@ -611,7 +1059,10 @@ mcp name=Tools version=1.0
611
1059
 
612
1060
  ### Type System
613
1061
  \`\`\`kern
1062
+ // Define user status enum
614
1063
  type name=Status values=active|inactive|pending
1064
+
1065
+ doc text="Core user entity"
615
1066
  interface name=User
616
1067
  field name=id type=string
617
1068
  field name=email type=string
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernlang/mcp-server",
3
- "version": "3.1.7",
3
+ "version": "3.1.9",
4
4
  "description": "KERN MCP server — compile, review, and analyze .kern files via MCP",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,30 +15,48 @@
15
15
  }
16
16
  },
17
17
  "files": [
18
- "dist"
18
+ "dist",
19
+ "README.md"
19
20
  ],
20
21
  "keywords": [
21
22
  "kern",
22
23
  "mcp",
23
24
  "model-context-protocol",
24
25
  "ai",
26
+ "llm",
27
+ "dsl",
28
+ "compiler",
25
29
  "transpiler",
30
+ "code-generation",
26
31
  "review",
27
- "security"
32
+ "security",
33
+ "claude",
34
+ "cursor",
35
+ "react",
36
+ "nextjs",
37
+ "express",
38
+ "vue"
28
39
  ],
40
+ "homepage": "https://kernlang.dev",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/nickcukas/kern",
44
+ "directory": "packages/mcp-server"
45
+ },
46
+ "author": "Nicolas Cukas",
29
47
  "license": "AGPL-3.0",
30
48
  "dependencies": {
31
49
  "@modelcontextprotocol/sdk": "^1.12.1",
32
50
  "zod": "^4.3.6",
33
- "@kernlang/mcp": "3.1.7",
34
- "@kernlang/react": "3.1.7",
35
- "@kernlang/core": "3.1.7",
36
- "@kernlang/express": "3.1.7",
37
- "@kernlang/fastapi": "3.1.7",
38
- "@kernlang/review": "3.1.7",
39
- "@kernlang/review-mcp": "3.1.7",
40
- "@kernlang/terminal": "3.1.7",
41
- "@kernlang/vue": "3.1.7"
51
+ "@kernlang/core": "3.1.9",
52
+ "@kernlang/express": "3.1.9",
53
+ "@kernlang/fastapi": "3.1.9",
54
+ "@kernlang/mcp": "3.1.9",
55
+ "@kernlang/react": "3.1.9",
56
+ "@kernlang/vue": "3.1.9",
57
+ "@kernlang/review": "3.1.9",
58
+ "@kernlang/review-mcp": "3.1.9",
59
+ "@kernlang/terminal": "3.1.9"
42
60
  },
43
61
  "devDependencies": {
44
62
  "@types/express": "^5.0.6",