@nifrajs/cli 1.2.2 → 1.3.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/dist/cli.js +1 -1
- package/dist/mcp-http.js +1 -1
- package/dist/mcp.d.ts +14 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +246 -11
- package/dist/mcp.js.map +1 -1
- package/package.json +7 -7
- package/src/cli.ts +1 -1
- package/src/mcp-http.ts +1 -1
- package/src/mcp.ts +302 -16
package/dist/cli.js
CHANGED
|
@@ -68,7 +68,7 @@ routes/ from the current directory. Run from your project root.
|
|
|
68
68
|
Port: \`dev\` and \`start\` share the default ${DEFAULT_DEV_PORT}. Override with \`--port <n>\` (alias \`-p\`) or the
|
|
69
69
|
\`PORT\` env var (\`--port\` wins over \`PORT\`, which wins over the default).`;
|
|
70
70
|
// Kept in lockstep with packages/cli/package.json by check:publish's version-consistency gate.
|
|
71
|
-
const CLI_VERSION = "1.
|
|
71
|
+
const CLI_VERSION = "1.3.0";
|
|
72
72
|
// A render adapter + nifra server are opaque to the CLI (it just forwards them); cast at the seam.
|
|
73
73
|
const asAdapter = (v) => v;
|
|
74
74
|
const asBunPlugins = (v) => v;
|
package/dist/mcp-http.js
CHANGED
|
@@ -19,7 +19,7 @@ import { loadTypesCorpus } from "./types-search.js";
|
|
|
19
19
|
// tool factory + the transport core from one entry: `import { respondMcpHttp, docsTools } from "@nifrajs/cli/mcp"`.
|
|
20
20
|
export { docsTools } from "./mcp-docs-tools.js";
|
|
21
21
|
// Kept in lockstep with packages/cli/package.json by check:publish's version-consistency gate.
|
|
22
|
-
const VERSION = "1.
|
|
22
|
+
const VERSION = "1.3.0";
|
|
23
23
|
const SERVER_INFO = { name: "nifra-docs", version: VERSION };
|
|
24
24
|
const DOCS_HEALTH = "nifra docs MCP — POST JSON-RPC 2.0 here (methods: initialize, tools/list, tools/call). Tools: nifra_docs, nifra_example.";
|
|
25
25
|
/** The two project-independent tools, reading the package's bundled corpus from disk (CLI use). */
|
package/dist/mcp.d.ts
CHANGED
|
@@ -56,8 +56,22 @@ export declare function createCachedAppLoader(cwd: string, options?: CachedAppLo
|
|
|
56
56
|
export declare function projectResources(cwd: string, loadAppCached?: (outDirName?: string) => Promise<LoadedApp>): McpResource[];
|
|
57
57
|
export declare function projectPrompts(): McpPrompt[];
|
|
58
58
|
export declare function projectFeatures(cwd: string, loadAppCached?: (outDirName?: string) => Promise<LoadedApp>): McpServerFeatures;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve an optional `dir` tool argument — a subdirectory of the project root the caller wants to scope a
|
|
61
|
+
* check/test to (e.g. `nifra check` on `app/` when the MCP server's root is a monorepo). Returns the
|
|
62
|
+
* absolute target, or `null` if `dir` escapes the root (a path-traversal guard: no `..` out, no absolute
|
|
63
|
+
* path elsewhere). `undefined`/empty → the root itself.
|
|
64
|
+
*/
|
|
65
|
+
export declare function resolveProjectDir(root: string, dir: string | undefined): string | null;
|
|
59
66
|
/** Build the project-scoped tools for `cwd`. */
|
|
60
67
|
export declare function projectTools(cwd: string, loadAppCached?: (outDirName?: string) => Promise<LoadedApp>): McpTool[];
|
|
68
|
+
/** Extract tools registered via .tool() routes on the Nifra backend. Exported for the test that proves a
|
|
69
|
+
* `server().tool()` route surfaces in `tools/list` and executes through `tools/call`. */
|
|
70
|
+
export declare function extractBackendTools(backend: unknown): McpTool[];
|
|
71
|
+
/** Extract MCP resources registered via `.resource()` on the Nifra backend. Exported for the surfacing test. */
|
|
72
|
+
export declare function extractBackendResources(backend: unknown): McpResource[];
|
|
73
|
+
/** Extract MCP prompts registered via `.prompt()` on the Nifra backend. Exported for the surfacing test. */
|
|
74
|
+
export declare function extractBackendPrompts(backend: unknown): McpPrompt[];
|
|
61
75
|
/** Run the stdio MCP server: read newline-delimited JSON-RPC from stdin, write responses to stdout. */
|
|
62
76
|
export declare function runMcpServer(cwd: string, version: string): Promise<void>;
|
|
63
77
|
export {};
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1D,OAAO,EAML,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1D,OAAO,EAML,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EAIb,MAAM,mBAAmB,CAAA;AA4E1B;;;;;mGAKmG;AACnG,qBAAa,UAAU;IAkBnB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAlBxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAOrB;IACH,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,MAAM,CAAQ;gBAGpB,KAAK,EAAE,SAAS,GAAG,YAAY,EAC/B,GAAG,EAAE,MAAM,EACF,WAAW,EAAE,MAAM,EACX,KAAK,EAAE,MAAM;IAsBhC,IAAI,IAAI,IAAI;IAIN,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;YA2BtD,UAAU;YAiBV,UAAU;IAUxB,OAAO,CAAC,UAAU;CAkBnB;AAsFD,KAAK,eAAe,GAAG,CACrB,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,SAAS,CAAC,CAAA;AAEvB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACxD;AAmCD,qGAAqG;AACrG,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,sBAA2B,GACnC,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CA+B7C;AA0CD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAA8B,GACtF,WAAW,EAAE,CAmCf;AAED,wBAAgB,cAAc,IAAI,SAAS,EAAE,CAkE5C;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAA8B,GACtF,iBAAiB,CAEnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAItF;AAWD,gDAAgD;AAChD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAA8B,GACtF,OAAO,EAAE,CA+XX;AAgBD;yFACyF;AACzF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAiE/D;AAYD,gHAAgH;AAChH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,CAqBvE;AAWD,4GAA4G;AAC5G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAgBnE;AA2BD,uGAAuG;AACvG,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF9E"}
|
package/dist/mcp.js
CHANGED
|
@@ -437,6 +437,22 @@ export function projectPrompts() {
|
|
|
437
437
|
export function projectFeatures(cwd, loadAppCached = createCachedAppLoader(cwd)) {
|
|
438
438
|
return { resources: projectResources(cwd, loadAppCached), prompts: projectPrompts() };
|
|
439
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Resolve an optional `dir` tool argument — a subdirectory of the project root the caller wants to scope a
|
|
442
|
+
* check/test to (e.g. `nifra check` on `app/` when the MCP server's root is a monorepo). Returns the
|
|
443
|
+
* absolute target, or `null` if `dir` escapes the root (a path-traversal guard: no `..` out, no absolute
|
|
444
|
+
* path elsewhere). `undefined`/empty → the root itself.
|
|
445
|
+
*/
|
|
446
|
+
export function resolveProjectDir(root, dir) {
|
|
447
|
+
if (dir === undefined || dir === "")
|
|
448
|
+
return root;
|
|
449
|
+
const target = resolve(root, dir);
|
|
450
|
+
return target === root || target.startsWith(root + sep) ? target : null;
|
|
451
|
+
}
|
|
452
|
+
/** Consistent error string for a `dir` that escapes the project root. */
|
|
453
|
+
function dirError(dir) {
|
|
454
|
+
return JSON.stringify({ ok: false, error: `dir must be a subdirectory of the project root — "${dir}" escapes it.` }, null, 2);
|
|
455
|
+
}
|
|
440
456
|
/** Build the project-scoped tools for `cwd`. */
|
|
441
457
|
export function projectTools(cwd, loadAppCached = createCachedAppLoader(cwd)) {
|
|
442
458
|
const warmRun = createWarmHandler("mcp-run", cwd, "run");
|
|
@@ -611,12 +627,20 @@ export function projectTools(cwd, loadAppCached = createCachedAppLoader(cwd)) {
|
|
|
611
627
|
type: "number",
|
|
612
628
|
description: "Timeout in milliseconds (default 30000, max 300000).",
|
|
613
629
|
},
|
|
630
|
+
dir: {
|
|
631
|
+
type: "string",
|
|
632
|
+
description: 'Run the tests in this subdirectory (relative to the project root), e.g. "app". Use it when the MCP server\'s root is a monorepo but you want to test just one app. Default: the project root.',
|
|
633
|
+
},
|
|
614
634
|
},
|
|
615
635
|
additionalProperties: false,
|
|
616
636
|
},
|
|
617
637
|
handler: async (args, context) => {
|
|
618
638
|
const { collectTestResult } = await import("./test-tool.js");
|
|
619
|
-
|
|
639
|
+
const opts = args;
|
|
640
|
+
const target = resolveProjectDir(cwd, opts.dir);
|
|
641
|
+
if (target === null)
|
|
642
|
+
return dirError(opts.dir);
|
|
643
|
+
return JSON.stringify(await collectTestResult(target, args, { signal: context.signal }), null, 2);
|
|
620
644
|
},
|
|
621
645
|
},
|
|
622
646
|
// nifra_docs + nifra_example are project-independent (corpus-backed); the shared factory keeps their
|
|
@@ -666,13 +690,20 @@ export function projectTools(cwd, loadAppCached = createCachedAppLoader(cwd)) {
|
|
|
666
690
|
type: "boolean",
|
|
667
691
|
description: "Skip tsc; run only the near-instant source lints (inner-loop mode).",
|
|
668
692
|
},
|
|
693
|
+
dir: {
|
|
694
|
+
type: "string",
|
|
695
|
+
description: 'Run the check in this subdirectory (relative to the project root), e.g. "app" or "packages/api". Use it when the MCP server\'s root is a monorepo but you want to check just one app. Default: the project root.',
|
|
696
|
+
},
|
|
669
697
|
},
|
|
670
698
|
additionalProperties: false,
|
|
671
699
|
},
|
|
672
700
|
handler: async (args, context) => {
|
|
673
701
|
const { collectCheckResult } = await import("./check.js");
|
|
674
702
|
const opts = args;
|
|
675
|
-
|
|
703
|
+
const target = resolveProjectDir(cwd, opts.dir);
|
|
704
|
+
if (target === null)
|
|
705
|
+
return dirError(opts.dir);
|
|
706
|
+
return JSON.stringify(await collectCheckResult(target, {
|
|
676
707
|
lintsOnly: opts.lintsOnly ?? false,
|
|
677
708
|
signal: context.signal,
|
|
678
709
|
// Bound the result so a large project can't emit an MCP message big enough to break the stdio
|
|
@@ -682,6 +713,72 @@ export function projectTools(cwd, loadAppCached = createCachedAppLoader(cwd)) {
|
|
|
682
713
|
}), null, 2);
|
|
683
714
|
},
|
|
684
715
|
},
|
|
716
|
+
{
|
|
717
|
+
name: "nifra_fix",
|
|
718
|
+
description: "Automatically fix diagnostic lints (such as rewriting hand-rolled fetch() calls to the typed nifra client, adding generic types to client factory calls, and resolving dependency drift in package.json). Runs diagnostics, applies all mechanical edit suggestions, applies doctor dependency fixes, and returns the remaining unresolved diagnostics.",
|
|
719
|
+
inputSchema: {
|
|
720
|
+
type: "object",
|
|
721
|
+
properties: {},
|
|
722
|
+
additionalProperties: false,
|
|
723
|
+
},
|
|
724
|
+
handler: async (_args, context) => {
|
|
725
|
+
const { collectCheckResult } = await import("./check.js");
|
|
726
|
+
const { applyDoctorAutoFix } = await import("./doctor.js");
|
|
727
|
+
const { writeFile, readFile } = await import("node:fs/promises");
|
|
728
|
+
const { resolve } = await import("node:path");
|
|
729
|
+
let doctorResult = null;
|
|
730
|
+
try {
|
|
731
|
+
doctorResult = await applyDoctorAutoFix(cwd);
|
|
732
|
+
}
|
|
733
|
+
catch {
|
|
734
|
+
// ignore doctor errors
|
|
735
|
+
}
|
|
736
|
+
const checkResult = await collectCheckResult(cwd, {
|
|
737
|
+
lintsOnly: true,
|
|
738
|
+
signal: context.signal,
|
|
739
|
+
maxDiagnostics: 100,
|
|
740
|
+
});
|
|
741
|
+
const fixed = [];
|
|
742
|
+
for (const diag of checkResult.diagnostics) {
|
|
743
|
+
if (diag.file && diag.line && diag.suggestion?.kind === "edit" && diag.suggestion.diff) {
|
|
744
|
+
try {
|
|
745
|
+
const diffLines = diag.suggestion.diff.split("\n");
|
|
746
|
+
const beforeLine = diffLines.find((l) => l.startsWith("-"))?.slice(1);
|
|
747
|
+
const afterLine = diffLines.find((l) => l.startsWith("+"))?.slice(1);
|
|
748
|
+
if (beforeLine !== undefined && afterLine !== undefined) {
|
|
749
|
+
const filePath = resolve(cwd, diag.file);
|
|
750
|
+
const content = await readFile(filePath, "utf-8");
|
|
751
|
+
const lines = content.split("\n");
|
|
752
|
+
const idx = diag.line - 1;
|
|
753
|
+
if (lines[idx] === beforeLine) {
|
|
754
|
+
lines[idx] = afterLine;
|
|
755
|
+
await writeFile(filePath, lines.join("\n"), "utf-8");
|
|
756
|
+
fixed.push({
|
|
757
|
+
file: diag.file,
|
|
758
|
+
line: diag.line,
|
|
759
|
+
title: diag.suggestion.title,
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
catch {
|
|
765
|
+
// ignore edit errors
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
const finalResult = await collectCheckResult(cwd, {
|
|
770
|
+
lintsOnly: false,
|
|
771
|
+
signal: context.signal,
|
|
772
|
+
maxDiagnostics: 100,
|
|
773
|
+
});
|
|
774
|
+
return JSON.stringify({
|
|
775
|
+
ok: finalResult.ok,
|
|
776
|
+
fixed,
|
|
777
|
+
doctorFixed: doctorResult?.fixed ?? [],
|
|
778
|
+
remainingDiagnostics: finalResult.diagnostics,
|
|
779
|
+
}, null, 2);
|
|
780
|
+
},
|
|
781
|
+
},
|
|
685
782
|
{
|
|
686
783
|
name: "nifra_doctor",
|
|
687
784
|
description: "Check this project for packages imported in source but NOT declared in package.json — the Bun-workspace trap where an import resolves at runtime (hoisting/workspace) so tests pass and `bun install` says no changes, yet tsc fails and a fresh/standalone install can't resolve it. Returns { ok, ran, findings[], fixed?, skippedFixes? }. Pass autoFix:true to update package.json only when the dependency version can be inferred locally from an ancestor package.json or installed package metadata; otherwise the tool returns the exact bun add command to run.",
|
|
@@ -703,10 +800,119 @@ export function projectTools(cwd, loadAppCached = createCachedAppLoader(cwd)) {
|
|
|
703
800
|
},
|
|
704
801
|
];
|
|
705
802
|
}
|
|
803
|
+
/** Extract tools registered via .tool() routes on the Nifra backend. Exported for the test that proves a
|
|
804
|
+
* `server().tool()` route surfaces in `tools/list` and executes through `tools/call`. */
|
|
805
|
+
export function extractBackendTools(backend) {
|
|
806
|
+
const b = backend;
|
|
807
|
+
if (!b || typeof b.routes !== "function")
|
|
808
|
+
return [];
|
|
809
|
+
let routes = [];
|
|
810
|
+
try {
|
|
811
|
+
routes = b.routes();
|
|
812
|
+
}
|
|
813
|
+
catch {
|
|
814
|
+
return [];
|
|
815
|
+
}
|
|
816
|
+
const jsonSchemaOf = (schema) => {
|
|
817
|
+
if (schema && typeof schema === "object" && "jsonSchema" in schema) {
|
|
818
|
+
const js = schema.jsonSchema;
|
|
819
|
+
if (js !== undefined && js !== null)
|
|
820
|
+
return js;
|
|
821
|
+
}
|
|
822
|
+
return undefined;
|
|
823
|
+
};
|
|
824
|
+
return routes
|
|
825
|
+
.filter((r) => r.schema !== undefined && r.tool !== undefined)
|
|
826
|
+
.map((r) => {
|
|
827
|
+
const toolInfo = r.tool;
|
|
828
|
+
const s = r.schema;
|
|
829
|
+
return {
|
|
830
|
+
name: toolInfo.name,
|
|
831
|
+
description: toolInfo.description,
|
|
832
|
+
inputSchema: (jsonSchemaOf(s.body) ?? {
|
|
833
|
+
type: "object",
|
|
834
|
+
properties: {},
|
|
835
|
+
}),
|
|
836
|
+
...(toolInfo.annotations !== undefined ? { annotations: toolInfo.annotations } : {}),
|
|
837
|
+
handler: async (args) => {
|
|
838
|
+
const res = await b.fetch(new Request(`http://localhost/_nifra/tool/${toolInfo.name}`, {
|
|
839
|
+
method: "POST",
|
|
840
|
+
headers: { "content-type": "application/json" },
|
|
841
|
+
body: JSON.stringify(args),
|
|
842
|
+
}));
|
|
843
|
+
if (!res.ok) {
|
|
844
|
+
const text = await res.text();
|
|
845
|
+
throw new Error(`Tool execution failed (${res.status}): ${text}`);
|
|
846
|
+
}
|
|
847
|
+
const body = await res.json();
|
|
848
|
+
if (typeof body === "string")
|
|
849
|
+
return body;
|
|
850
|
+
if (body && typeof body === "object") {
|
|
851
|
+
if ("content" in body || "structuredContent" in body) {
|
|
852
|
+
return body;
|
|
853
|
+
}
|
|
854
|
+
return {
|
|
855
|
+
content: [{ type: "text", text: JSON.stringify(body, null, 2) }],
|
|
856
|
+
structuredContent: body,
|
|
857
|
+
};
|
|
858
|
+
}
|
|
859
|
+
return String(body);
|
|
860
|
+
},
|
|
861
|
+
};
|
|
862
|
+
});
|
|
863
|
+
}
|
|
864
|
+
/** Extract MCP resources registered via `.resource()` on the Nifra backend. Exported for the surfacing test. */
|
|
865
|
+
export function extractBackendResources(backend) {
|
|
866
|
+
const b = backend;
|
|
867
|
+
if (!b || typeof b.mcpResources !== "function")
|
|
868
|
+
return [];
|
|
869
|
+
let list;
|
|
870
|
+
try {
|
|
871
|
+
list = b.mcpResources();
|
|
872
|
+
}
|
|
873
|
+
catch {
|
|
874
|
+
return [];
|
|
875
|
+
}
|
|
876
|
+
return list.map((r) => ({
|
|
877
|
+
uri: r.uri,
|
|
878
|
+
name: r.name,
|
|
879
|
+
...(r.description !== undefined ? { description: r.description } : {}),
|
|
880
|
+
...(r.mimeType !== undefined ? { mimeType: r.mimeType } : {}),
|
|
881
|
+
read: async () => {
|
|
882
|
+
const out = await r.read();
|
|
883
|
+
if (typeof out === "string")
|
|
884
|
+
return { text: out };
|
|
885
|
+
const o = out;
|
|
886
|
+
return o.mimeType !== undefined ? { text: o.text, mimeType: o.mimeType } : { text: o.text };
|
|
887
|
+
},
|
|
888
|
+
}));
|
|
889
|
+
}
|
|
890
|
+
/** Extract MCP prompts registered via `.prompt()` on the Nifra backend. Exported for the surfacing test. */
|
|
891
|
+
export function extractBackendPrompts(backend) {
|
|
892
|
+
const b = backend;
|
|
893
|
+
if (!b || typeof b.mcpPrompts !== "function")
|
|
894
|
+
return [];
|
|
895
|
+
let list;
|
|
896
|
+
try {
|
|
897
|
+
list = b.mcpPrompts();
|
|
898
|
+
}
|
|
899
|
+
catch {
|
|
900
|
+
return [];
|
|
901
|
+
}
|
|
902
|
+
return list.map((p) => ({
|
|
903
|
+
name: p.name,
|
|
904
|
+
description: p.description,
|
|
905
|
+
...(p.arguments !== undefined ? { arguments: p.arguments } : {}),
|
|
906
|
+
handler: async (args) => (await p.handler(args)),
|
|
907
|
+
}));
|
|
908
|
+
}
|
|
706
909
|
/** Prefix every tool name and resource URI for a named app in a monorepo. */
|
|
707
910
|
function namespaceForApp(name, tools, features) {
|
|
708
911
|
const prefix = `nifra_${name}_`;
|
|
709
|
-
const namespacedTools = tools.map((t) => ({
|
|
912
|
+
const namespacedTools = tools.map((t) => ({
|
|
913
|
+
...t,
|
|
914
|
+
name: t.name.startsWith("nifra_") ? t.name.replace(/^nifra_/, prefix) : `${name}_${t.name}`,
|
|
915
|
+
}));
|
|
710
916
|
const namespacedResources = (features.resources ?? []).map((r) => ({
|
|
711
917
|
...r,
|
|
712
918
|
uri: r.uri.replace(/^nifra:\/\//, `nifra://${name}/`),
|
|
@@ -722,36 +928,65 @@ function namespaceForApp(name, tools, features) {
|
|
|
722
928
|
}
|
|
723
929
|
/** Run the stdio MCP server: read newline-delimited JSON-RPC from stdin, write responses to stdout. */
|
|
724
930
|
export async function runMcpServer(cwd, version) {
|
|
725
|
-
let tools;
|
|
726
931
|
let features;
|
|
727
932
|
const monorepo = await detectMonorepo(cwd);
|
|
728
933
|
if (monorepo) {
|
|
729
934
|
const appEntries = await loadMonorepoApps(cwd, monorepo);
|
|
730
|
-
const allTools = [];
|
|
731
935
|
const allResources = [];
|
|
732
936
|
const allPrompts = [];
|
|
733
937
|
for (const { name, cwd: appCwd } of appEntries) {
|
|
734
938
|
const loader = createCachedAppLoader(appCwd);
|
|
735
|
-
const
|
|
736
|
-
|
|
939
|
+
const app = await loader();
|
|
940
|
+
const base = projectFeatures(appCwd, loader);
|
|
941
|
+
const ns = namespaceForApp(name, [], {
|
|
942
|
+
resources: [...(base.resources ?? []), ...extractBackendResources(app.backend)],
|
|
943
|
+
prompts: [...(base.prompts ?? []), ...extractBackendPrompts(app.backend)],
|
|
944
|
+
});
|
|
737
945
|
allResources.push(...(ns.features.resources ?? []));
|
|
738
946
|
allPrompts.push(...(ns.features.prompts ?? []));
|
|
739
947
|
}
|
|
740
|
-
tools = [...docsTools(loadDocsCorpus, loadExamplesCorpus, loadTypesCorpus), ...allTools];
|
|
741
948
|
features = { resources: allResources, prompts: allPrompts };
|
|
742
949
|
}
|
|
743
950
|
else {
|
|
744
951
|
const loadAppCached = createCachedAppLoader(cwd);
|
|
745
|
-
|
|
746
|
-
|
|
952
|
+
const base = projectFeatures(cwd, loadAppCached);
|
|
953
|
+
const app = await loadAppCached();
|
|
954
|
+
features = {
|
|
955
|
+
resources: [...(base.resources ?? []), ...extractBackendResources(app.backend)],
|
|
956
|
+
prompts: [...(base.prompts ?? []), ...extractBackendPrompts(app.backend)],
|
|
957
|
+
};
|
|
747
958
|
}
|
|
959
|
+
const loadAppCached = createCachedAppLoader(cwd);
|
|
748
960
|
const serverInfo = { name: "nifra", version };
|
|
749
961
|
const state = createMcpProtocolState();
|
|
750
962
|
const send = (message) => {
|
|
751
963
|
process.stdout.write(`${JSON.stringify(message)}\n`);
|
|
752
964
|
};
|
|
753
965
|
const dispatch = async (message) => {
|
|
754
|
-
|
|
966
|
+
let activeTools;
|
|
967
|
+
if (monorepo) {
|
|
968
|
+
const appEntries = await loadMonorepoApps(cwd, monorepo);
|
|
969
|
+
const allTools = [];
|
|
970
|
+
for (const { name, cwd: appCwd } of appEntries) {
|
|
971
|
+
const loader = createCachedAppLoader(appCwd);
|
|
972
|
+
const app = await loader();
|
|
973
|
+
const baseTools = projectTools(appCwd, loader);
|
|
974
|
+
const backendTools = extractBackendTools(app.backend);
|
|
975
|
+
const ns = namespaceForApp(name, [...baseTools, ...backendTools], {
|
|
976
|
+
resources: [],
|
|
977
|
+
prompts: [],
|
|
978
|
+
});
|
|
979
|
+
allTools.push(...ns.tools);
|
|
980
|
+
}
|
|
981
|
+
activeTools = [...docsTools(loadDocsCorpus, loadExamplesCorpus, loadTypesCorpus), ...allTools];
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
const app = await loadAppCached();
|
|
985
|
+
const baseTools = projectTools(cwd, loadAppCached);
|
|
986
|
+
const backendTools = extractBackendTools(app.backend);
|
|
987
|
+
activeTools = [...baseTools, ...backendTools];
|
|
988
|
+
}
|
|
989
|
+
const response = await handleRpc(message, activeTools, serverInfo, features, {
|
|
755
990
|
state,
|
|
756
991
|
sendNotification: send,
|
|
757
992
|
});
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nifrajs/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "The nifra CLI — zero-config dev/build/start for a nifra app (`nifra dev`, `nifra build`, `nifra start`).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bun",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@nifrajs/client": "1.
|
|
45
|
-
"@nifrajs/mcp": "1.
|
|
46
|
-
"@nifrajs/runner": "1.
|
|
47
|
-
"@nifrajs/schema": "1.
|
|
48
|
-
"@nifrajs/web": "1.
|
|
49
|
-
"create-nifra": "1.
|
|
44
|
+
"@nifrajs/client": "1.3.0",
|
|
45
|
+
"@nifrajs/mcp": "1.3.0",
|
|
46
|
+
"@nifrajs/runner": "1.3.0",
|
|
47
|
+
"@nifrajs/schema": "1.3.0",
|
|
48
|
+
"@nifrajs/web": "1.3.0",
|
|
49
|
+
"create-nifra": "1.3.0"
|
|
50
50
|
},
|
|
51
51
|
"repository": {
|
|
52
52
|
"type": "git",
|
package/src/cli.ts
CHANGED
|
@@ -82,7 +82,7 @@ Port: \`dev\` and \`start\` share the default ${DEFAULT_DEV_PORT}. Override with
|
|
|
82
82
|
\`PORT\` env var (\`--port\` wins over \`PORT\`, which wins over the default).`
|
|
83
83
|
|
|
84
84
|
// Kept in lockstep with packages/cli/package.json by check:publish's version-consistency gate.
|
|
85
|
-
const CLI_VERSION = "1.
|
|
85
|
+
const CLI_VERSION = "1.3.0"
|
|
86
86
|
|
|
87
87
|
// A render adapter + nifra server are opaque to the CLI (it just forwards them); cast at the seam.
|
|
88
88
|
const asAdapter = (v: unknown): RenderAdapter => v as RenderAdapter
|
package/src/mcp-http.ts
CHANGED
|
@@ -26,7 +26,7 @@ export { docsTools } from "./mcp-docs-tools.ts"
|
|
|
26
26
|
export type { TypeEntry } from "./types-search.ts"
|
|
27
27
|
|
|
28
28
|
// Kept in lockstep with packages/cli/package.json by check:publish's version-consistency gate.
|
|
29
|
-
const VERSION = "1.
|
|
29
|
+
const VERSION = "1.3.0"
|
|
30
30
|
const SERVER_INFO = { name: "nifra-docs", version: VERSION }
|
|
31
31
|
const DOCS_HEALTH =
|
|
32
32
|
"nifra docs MCP — POST JSON-RPC 2.0 here (methods: initialize, tools/list, tools/call). Tools: nifra_docs, nifra_example."
|
package/src/mcp.ts
CHANGED
|
@@ -40,10 +40,12 @@ import {
|
|
|
40
40
|
type JsonRpcRequest,
|
|
41
41
|
type JsonRpcResponse,
|
|
42
42
|
type McpPrompt,
|
|
43
|
+
type McpPromptMessage,
|
|
43
44
|
type McpResource,
|
|
44
45
|
type McpServerFeatures,
|
|
45
46
|
type McpTool,
|
|
46
47
|
type McpToolContext,
|
|
48
|
+
type McpToolResult,
|
|
47
49
|
rpcError,
|
|
48
50
|
} from "./mcp-protocol.ts"
|
|
49
51
|
import { loadTypesCorpus } from "./types-search.ts"
|
|
@@ -566,6 +568,27 @@ export function projectFeatures(
|
|
|
566
568
|
return { resources: projectResources(cwd, loadAppCached), prompts: projectPrompts() }
|
|
567
569
|
}
|
|
568
570
|
|
|
571
|
+
/**
|
|
572
|
+
* Resolve an optional `dir` tool argument — a subdirectory of the project root the caller wants to scope a
|
|
573
|
+
* check/test to (e.g. `nifra check` on `app/` when the MCP server's root is a monorepo). Returns the
|
|
574
|
+
* absolute target, or `null` if `dir` escapes the root (a path-traversal guard: no `..` out, no absolute
|
|
575
|
+
* path elsewhere). `undefined`/empty → the root itself.
|
|
576
|
+
*/
|
|
577
|
+
export function resolveProjectDir(root: string, dir: string | undefined): string | null {
|
|
578
|
+
if (dir === undefined || dir === "") return root
|
|
579
|
+
const target = resolve(root, dir)
|
|
580
|
+
return target === root || target.startsWith(root + sep) ? target : null
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
/** Consistent error string for a `dir` that escapes the project root. */
|
|
584
|
+
function dirError(dir: string | undefined): string {
|
|
585
|
+
return JSON.stringify(
|
|
586
|
+
{ ok: false, error: `dir must be a subdirectory of the project root — "${dir}" escapes it.` },
|
|
587
|
+
null,
|
|
588
|
+
2,
|
|
589
|
+
)
|
|
590
|
+
}
|
|
591
|
+
|
|
569
592
|
/** Build the project-scoped tools for `cwd`. */
|
|
570
593
|
export function projectTools(
|
|
571
594
|
cwd: string,
|
|
@@ -755,13 +778,21 @@ export function projectTools(
|
|
|
755
778
|
type: "number",
|
|
756
779
|
description: "Timeout in milliseconds (default 30000, max 300000).",
|
|
757
780
|
},
|
|
781
|
+
dir: {
|
|
782
|
+
type: "string",
|
|
783
|
+
description:
|
|
784
|
+
'Run the tests in this subdirectory (relative to the project root), e.g. "app". Use it when the MCP server\'s root is a monorepo but you want to test just one app. Default: the project root.',
|
|
785
|
+
},
|
|
758
786
|
},
|
|
759
787
|
additionalProperties: false,
|
|
760
788
|
},
|
|
761
789
|
handler: async (args, context) => {
|
|
762
790
|
const { collectTestResult } = await import("./test-tool.ts")
|
|
791
|
+
const opts = args as { dir?: string }
|
|
792
|
+
const target = resolveProjectDir(cwd, opts.dir)
|
|
793
|
+
if (target === null) return dirError(opts.dir)
|
|
763
794
|
return JSON.stringify(
|
|
764
|
-
await collectTestResult(
|
|
795
|
+
await collectTestResult(target, args, { signal: context.signal }),
|
|
765
796
|
null,
|
|
766
797
|
2,
|
|
767
798
|
)
|
|
@@ -817,14 +848,21 @@ export function projectTools(
|
|
|
817
848
|
type: "boolean",
|
|
818
849
|
description: "Skip tsc; run only the near-instant source lints (inner-loop mode).",
|
|
819
850
|
},
|
|
851
|
+
dir: {
|
|
852
|
+
type: "string",
|
|
853
|
+
description:
|
|
854
|
+
'Run the check in this subdirectory (relative to the project root), e.g. "app" or "packages/api". Use it when the MCP server\'s root is a monorepo but you want to check just one app. Default: the project root.',
|
|
855
|
+
},
|
|
820
856
|
},
|
|
821
857
|
additionalProperties: false,
|
|
822
858
|
},
|
|
823
859
|
handler: async (args, context) => {
|
|
824
860
|
const { collectCheckResult } = await import("./check.ts")
|
|
825
|
-
const opts = args as { lintsOnly?: boolean }
|
|
861
|
+
const opts = args as { lintsOnly?: boolean; dir?: string }
|
|
862
|
+
const target = resolveProjectDir(cwd, opts.dir)
|
|
863
|
+
if (target === null) return dirError(opts.dir)
|
|
826
864
|
return JSON.stringify(
|
|
827
|
-
await collectCheckResult(
|
|
865
|
+
await collectCheckResult(target, {
|
|
828
866
|
lintsOnly: opts.lintsOnly ?? false,
|
|
829
867
|
signal: context.signal,
|
|
830
868
|
// Bound the result so a large project can't emit an MCP message big enough to break the stdio
|
|
@@ -837,6 +875,81 @@ export function projectTools(
|
|
|
837
875
|
)
|
|
838
876
|
},
|
|
839
877
|
},
|
|
878
|
+
{
|
|
879
|
+
name: "nifra_fix",
|
|
880
|
+
description:
|
|
881
|
+
"Automatically fix diagnostic lints (such as rewriting hand-rolled fetch() calls to the typed nifra client, adding generic types to client factory calls, and resolving dependency drift in package.json). Runs diagnostics, applies all mechanical edit suggestions, applies doctor dependency fixes, and returns the remaining unresolved diagnostics.",
|
|
882
|
+
inputSchema: {
|
|
883
|
+
type: "object",
|
|
884
|
+
properties: {},
|
|
885
|
+
additionalProperties: false,
|
|
886
|
+
},
|
|
887
|
+
handler: async (_args, context) => {
|
|
888
|
+
const { collectCheckResult } = await import("./check.ts")
|
|
889
|
+
const { applyDoctorAutoFix } = await import("./doctor.ts")
|
|
890
|
+
const { writeFile, readFile } = await import("node:fs/promises")
|
|
891
|
+
const { resolve } = await import("node:path")
|
|
892
|
+
|
|
893
|
+
let doctorResult: Awaited<ReturnType<typeof applyDoctorAutoFix>> | null = null
|
|
894
|
+
try {
|
|
895
|
+
doctorResult = await applyDoctorAutoFix(cwd)
|
|
896
|
+
} catch {
|
|
897
|
+
// ignore doctor errors
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
const checkResult = await collectCheckResult(cwd, {
|
|
901
|
+
lintsOnly: true,
|
|
902
|
+
signal: context.signal,
|
|
903
|
+
maxDiagnostics: 100,
|
|
904
|
+
})
|
|
905
|
+
|
|
906
|
+
const fixed: Array<{ file: string; line: number; title: string }> = []
|
|
907
|
+
|
|
908
|
+
for (const diag of checkResult.diagnostics) {
|
|
909
|
+
if (diag.file && diag.line && diag.suggestion?.kind === "edit" && diag.suggestion.diff) {
|
|
910
|
+
try {
|
|
911
|
+
const diffLines = diag.suggestion.diff.split("\n")
|
|
912
|
+
const beforeLine = diffLines.find((l) => l.startsWith("-"))?.slice(1)
|
|
913
|
+
const afterLine = diffLines.find((l) => l.startsWith("+"))?.slice(1)
|
|
914
|
+
if (beforeLine !== undefined && afterLine !== undefined) {
|
|
915
|
+
const filePath = resolve(cwd, diag.file)
|
|
916
|
+
const content = await readFile(filePath, "utf-8")
|
|
917
|
+
const lines = content.split("\n")
|
|
918
|
+
const idx = diag.line - 1
|
|
919
|
+
if (lines[idx] === beforeLine) {
|
|
920
|
+
lines[idx] = afterLine
|
|
921
|
+
await writeFile(filePath, lines.join("\n"), "utf-8")
|
|
922
|
+
fixed.push({
|
|
923
|
+
file: diag.file,
|
|
924
|
+
line: diag.line,
|
|
925
|
+
title: diag.suggestion.title,
|
|
926
|
+
})
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
} catch {
|
|
930
|
+
// ignore edit errors
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
const finalResult = await collectCheckResult(cwd, {
|
|
936
|
+
lintsOnly: false,
|
|
937
|
+
signal: context.signal,
|
|
938
|
+
maxDiagnostics: 100,
|
|
939
|
+
})
|
|
940
|
+
|
|
941
|
+
return JSON.stringify(
|
|
942
|
+
{
|
|
943
|
+
ok: finalResult.ok,
|
|
944
|
+
fixed,
|
|
945
|
+
doctorFixed: doctorResult?.fixed ?? [],
|
|
946
|
+
remainingDiagnostics: finalResult.diagnostics,
|
|
947
|
+
},
|
|
948
|
+
null,
|
|
949
|
+
2,
|
|
950
|
+
)
|
|
951
|
+
},
|
|
952
|
+
},
|
|
840
953
|
{
|
|
841
954
|
name: "nifra_doctor",
|
|
842
955
|
description:
|
|
@@ -865,6 +978,151 @@ export function projectTools(
|
|
|
865
978
|
]
|
|
866
979
|
}
|
|
867
980
|
|
|
981
|
+
/** A `.tool()`-registered route as seen through the backend's `routes()` introspection. */
|
|
982
|
+
type ToolRoute = {
|
|
983
|
+
readonly schema?: { readonly body?: unknown; readonly response?: unknown }
|
|
984
|
+
readonly tool?: {
|
|
985
|
+
readonly name: string
|
|
986
|
+
readonly description: string
|
|
987
|
+
readonly annotations?: McpTool["annotations"]
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
type ToolBackend = {
|
|
991
|
+
readonly routes?: () => ToolRoute[]
|
|
992
|
+
readonly fetch: (req: Request) => Promise<Response>
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
/** Extract tools registered via .tool() routes on the Nifra backend. Exported for the test that proves a
|
|
996
|
+
* `server().tool()` route surfaces in `tools/list` and executes through `tools/call`. */
|
|
997
|
+
export function extractBackendTools(backend: unknown): McpTool[] {
|
|
998
|
+
const b = backend as ToolBackend | null
|
|
999
|
+
if (!b || typeof b.routes !== "function") return []
|
|
1000
|
+
let routes: ToolRoute[] = []
|
|
1001
|
+
try {
|
|
1002
|
+
routes = b.routes()
|
|
1003
|
+
} catch {
|
|
1004
|
+
return []
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
const jsonSchemaOf = (schema: unknown): unknown => {
|
|
1008
|
+
if (schema && typeof schema === "object" && "jsonSchema" in schema) {
|
|
1009
|
+
const js = (schema as { jsonSchema?: unknown }).jsonSchema
|
|
1010
|
+
if (js !== undefined && js !== null) return js
|
|
1011
|
+
}
|
|
1012
|
+
return undefined
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
return routes
|
|
1016
|
+
.filter(
|
|
1017
|
+
(
|
|
1018
|
+
r,
|
|
1019
|
+
): r is ToolRoute & {
|
|
1020
|
+
schema: NonNullable<ToolRoute["schema"]>
|
|
1021
|
+
tool: NonNullable<ToolRoute["tool"]>
|
|
1022
|
+
} => r.schema !== undefined && r.tool !== undefined,
|
|
1023
|
+
)
|
|
1024
|
+
.map((r) => {
|
|
1025
|
+
const toolInfo = r.tool
|
|
1026
|
+
const s = r.schema
|
|
1027
|
+
return {
|
|
1028
|
+
name: toolInfo.name,
|
|
1029
|
+
description: toolInfo.description,
|
|
1030
|
+
inputSchema: (jsonSchemaOf(s.body) ?? {
|
|
1031
|
+
type: "object",
|
|
1032
|
+
properties: {},
|
|
1033
|
+
}) as McpTool["inputSchema"],
|
|
1034
|
+
...(toolInfo.annotations !== undefined ? { annotations: toolInfo.annotations } : {}),
|
|
1035
|
+
handler: async (args): Promise<string | McpToolResult> => {
|
|
1036
|
+
const res = await b.fetch(
|
|
1037
|
+
new Request(`http://localhost/_nifra/tool/${toolInfo.name}`, {
|
|
1038
|
+
method: "POST",
|
|
1039
|
+
headers: { "content-type": "application/json" },
|
|
1040
|
+
body: JSON.stringify(args),
|
|
1041
|
+
}),
|
|
1042
|
+
)
|
|
1043
|
+
if (!res.ok) {
|
|
1044
|
+
const text = await res.text()
|
|
1045
|
+
throw new Error(`Tool execution failed (${res.status}): ${text}`)
|
|
1046
|
+
}
|
|
1047
|
+
const body: unknown = await res.json()
|
|
1048
|
+
if (typeof body === "string") return body
|
|
1049
|
+
if (body && typeof body === "object") {
|
|
1050
|
+
if ("content" in body || "structuredContent" in body) {
|
|
1051
|
+
return body as McpToolResult
|
|
1052
|
+
}
|
|
1053
|
+
return {
|
|
1054
|
+
content: [{ type: "text", text: JSON.stringify(body, null, 2) }],
|
|
1055
|
+
structuredContent: body as Record<string, unknown>,
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
return String(body)
|
|
1059
|
+
},
|
|
1060
|
+
}
|
|
1061
|
+
})
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
/** A resource declared on the backend via `server().resource()`, seen through `mcpResources()`. */
|
|
1065
|
+
type ResourceDescriptor = {
|
|
1066
|
+
readonly uri: string
|
|
1067
|
+
readonly name: string
|
|
1068
|
+
readonly description?: string
|
|
1069
|
+
readonly mimeType?: string
|
|
1070
|
+
readonly read: () => unknown | Promise<unknown>
|
|
1071
|
+
}
|
|
1072
|
+
type ResourceBackend = { readonly mcpResources?: () => readonly ResourceDescriptor[] }
|
|
1073
|
+
|
|
1074
|
+
/** Extract MCP resources registered via `.resource()` on the Nifra backend. Exported for the surfacing test. */
|
|
1075
|
+
export function extractBackendResources(backend: unknown): McpResource[] {
|
|
1076
|
+
const b = backend as ResourceBackend | null
|
|
1077
|
+
if (!b || typeof b.mcpResources !== "function") return []
|
|
1078
|
+
let list: readonly ResourceDescriptor[]
|
|
1079
|
+
try {
|
|
1080
|
+
list = b.mcpResources()
|
|
1081
|
+
} catch {
|
|
1082
|
+
return []
|
|
1083
|
+
}
|
|
1084
|
+
return list.map((r) => ({
|
|
1085
|
+
uri: r.uri,
|
|
1086
|
+
name: r.name,
|
|
1087
|
+
...(r.description !== undefined ? { description: r.description } : {}),
|
|
1088
|
+
...(r.mimeType !== undefined ? { mimeType: r.mimeType } : {}),
|
|
1089
|
+
read: async () => {
|
|
1090
|
+
const out = await r.read()
|
|
1091
|
+
if (typeof out === "string") return { text: out }
|
|
1092
|
+
const o = out as { text: string; mimeType?: string }
|
|
1093
|
+
return o.mimeType !== undefined ? { text: o.text, mimeType: o.mimeType } : { text: o.text }
|
|
1094
|
+
},
|
|
1095
|
+
}))
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
/** A prompt declared on the backend via `server().prompt()`, seen through `mcpPrompts()`. */
|
|
1099
|
+
type PromptDescriptor = {
|
|
1100
|
+
readonly name: string
|
|
1101
|
+
readonly description: string
|
|
1102
|
+
readonly arguments?: readonly { name: string; description?: string; required?: boolean }[]
|
|
1103
|
+
readonly handler: (args: Record<string, string>) => unknown | Promise<unknown>
|
|
1104
|
+
}
|
|
1105
|
+
type PromptBackend = { readonly mcpPrompts?: () => readonly PromptDescriptor[] }
|
|
1106
|
+
|
|
1107
|
+
/** Extract MCP prompts registered via `.prompt()` on the Nifra backend. Exported for the surfacing test. */
|
|
1108
|
+
export function extractBackendPrompts(backend: unknown): McpPrompt[] {
|
|
1109
|
+
const b = backend as PromptBackend | null
|
|
1110
|
+
if (!b || typeof b.mcpPrompts !== "function") return []
|
|
1111
|
+
let list: readonly PromptDescriptor[]
|
|
1112
|
+
try {
|
|
1113
|
+
list = b.mcpPrompts()
|
|
1114
|
+
} catch {
|
|
1115
|
+
return []
|
|
1116
|
+
}
|
|
1117
|
+
return list.map((p) => ({
|
|
1118
|
+
name: p.name,
|
|
1119
|
+
description: p.description,
|
|
1120
|
+
...(p.arguments !== undefined ? { arguments: p.arguments } : {}),
|
|
1121
|
+
handler: async (args: Record<string, unknown>) =>
|
|
1122
|
+
(await p.handler(args as Record<string, string>)) as readonly McpPromptMessage[],
|
|
1123
|
+
}))
|
|
1124
|
+
}
|
|
1125
|
+
|
|
868
1126
|
/** Prefix every tool name and resource URI for a named app in a monorepo. */
|
|
869
1127
|
function namespaceForApp(
|
|
870
1128
|
name: string,
|
|
@@ -872,7 +1130,10 @@ function namespaceForApp(
|
|
|
872
1130
|
features: McpServerFeatures,
|
|
873
1131
|
): { tools: McpTool[]; features: McpServerFeatures } {
|
|
874
1132
|
const prefix = `nifra_${name}_`
|
|
875
|
-
const namespacedTools = tools.map((t) => ({
|
|
1133
|
+
const namespacedTools = tools.map((t) => ({
|
|
1134
|
+
...t,
|
|
1135
|
+
name: t.name.startsWith("nifra_") ? t.name.replace(/^nifra_/, prefix) : `${name}_${t.name}`,
|
|
1136
|
+
}))
|
|
876
1137
|
const namespacedResources = (features.resources ?? []).map((r) => ({
|
|
877
1138
|
...r,
|
|
878
1139
|
uri: r.uri.replace(/^nifra:\/\//, `nifra://${name}/`),
|
|
@@ -889,40 +1150,65 @@ function namespaceForApp(
|
|
|
889
1150
|
|
|
890
1151
|
/** Run the stdio MCP server: read newline-delimited JSON-RPC from stdin, write responses to stdout. */
|
|
891
1152
|
export async function runMcpServer(cwd: string, version: string): Promise<void> {
|
|
892
|
-
let tools: McpTool[]
|
|
893
1153
|
let features: McpServerFeatures
|
|
894
1154
|
|
|
895
1155
|
const monorepo = await detectMonorepo(cwd)
|
|
896
1156
|
if (monorepo) {
|
|
897
1157
|
const appEntries = await loadMonorepoApps(cwd, monorepo)
|
|
898
|
-
const allTools: McpTool[] = []
|
|
899
1158
|
const allResources: McpResource[] = []
|
|
900
1159
|
const allPrompts: McpPrompt[] = []
|
|
901
1160
|
for (const { name, cwd: appCwd } of appEntries) {
|
|
902
1161
|
const loader = createCachedAppLoader(appCwd)
|
|
903
|
-
const
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
1162
|
+
const app = await loader()
|
|
1163
|
+
const base = projectFeatures(appCwd, loader)
|
|
1164
|
+
const ns = namespaceForApp(name, [], {
|
|
1165
|
+
resources: [...(base.resources ?? []), ...extractBackendResources(app.backend)],
|
|
1166
|
+
prompts: [...(base.prompts ?? []), ...extractBackendPrompts(app.backend)],
|
|
1167
|
+
})
|
|
909
1168
|
allResources.push(...(ns.features.resources ?? []))
|
|
910
1169
|
allPrompts.push(...(ns.features.prompts ?? []))
|
|
911
1170
|
}
|
|
912
|
-
tools = [...docsTools(loadDocsCorpus, loadExamplesCorpus, loadTypesCorpus), ...allTools]
|
|
913
1171
|
features = { resources: allResources, prompts: allPrompts }
|
|
914
1172
|
} else {
|
|
915
1173
|
const loadAppCached = createCachedAppLoader(cwd)
|
|
916
|
-
|
|
917
|
-
|
|
1174
|
+
const base = projectFeatures(cwd, loadAppCached)
|
|
1175
|
+
const app = await loadAppCached()
|
|
1176
|
+
features = {
|
|
1177
|
+
resources: [...(base.resources ?? []), ...extractBackendResources(app.backend)],
|
|
1178
|
+
prompts: [...(base.prompts ?? []), ...extractBackendPrompts(app.backend)],
|
|
1179
|
+
}
|
|
918
1180
|
}
|
|
1181
|
+
const loadAppCached = createCachedAppLoader(cwd)
|
|
919
1182
|
const serverInfo = { name: "nifra", version }
|
|
920
1183
|
const state = createMcpProtocolState()
|
|
921
1184
|
const send = (message: JsonRpcResponse | JsonRpcNotification): void => {
|
|
922
1185
|
process.stdout.write(`${JSON.stringify(message)}\n`)
|
|
923
1186
|
}
|
|
924
1187
|
const dispatch = async (message: JsonRpcRequest): Promise<void> => {
|
|
925
|
-
|
|
1188
|
+
let activeTools: McpTool[]
|
|
1189
|
+
if (monorepo) {
|
|
1190
|
+
const appEntries = await loadMonorepoApps(cwd, monorepo)
|
|
1191
|
+
const allTools: McpTool[] = []
|
|
1192
|
+
for (const { name, cwd: appCwd } of appEntries) {
|
|
1193
|
+
const loader = createCachedAppLoader(appCwd)
|
|
1194
|
+
const app = await loader()
|
|
1195
|
+
const baseTools = projectTools(appCwd, loader)
|
|
1196
|
+
const backendTools = extractBackendTools(app.backend)
|
|
1197
|
+
const ns = namespaceForApp(name, [...baseTools, ...backendTools], {
|
|
1198
|
+
resources: [],
|
|
1199
|
+
prompts: [],
|
|
1200
|
+
})
|
|
1201
|
+
allTools.push(...ns.tools)
|
|
1202
|
+
}
|
|
1203
|
+
activeTools = [...docsTools(loadDocsCorpus, loadExamplesCorpus, loadTypesCorpus), ...allTools]
|
|
1204
|
+
} else {
|
|
1205
|
+
const app = await loadAppCached()
|
|
1206
|
+
const baseTools = projectTools(cwd, loadAppCached)
|
|
1207
|
+
const backendTools = extractBackendTools(app.backend)
|
|
1208
|
+
activeTools = [...baseTools, ...backendTools]
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
const response = await handleRpc(message, activeTools, serverInfo, features, {
|
|
926
1212
|
state,
|
|
927
1213
|
sendNotification: send,
|
|
928
1214
|
})
|