forgecraft-mcp 0.2.0 → 0.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/README.md +25 -5
- package/dist/analyzers/language-detector.d.ts +17 -0
- package/dist/analyzers/language-detector.d.ts.map +1 -0
- package/dist/analyzers/language-detector.js +89 -0
- package/dist/analyzers/language-detector.js.map +1 -0
- package/dist/analyzers/package-json.d.ts.map +1 -1
- package/dist/analyzers/package-json.js +5 -5
- package/dist/analyzers/package-json.js.map +1 -1
- package/dist/analyzers/project-context.d.ts +23 -0
- package/dist/analyzers/project-context.d.ts.map +1 -0
- package/dist/analyzers/project-context.js +181 -0
- package/dist/analyzers/project-context.js.map +1 -0
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/registry/composer.d.ts +3 -1
- package/dist/registry/composer.d.ts.map +1 -1
- package/dist/registry/composer.js +28 -0
- package/dist/registry/composer.js.map +1 -1
- package/dist/registry/loader.d.ts.map +1 -1
- package/dist/registry/loader.js +65 -1
- package/dist/registry/loader.js.map +1 -1
- package/dist/registry/mcp-discovery.d.ts +82 -0
- package/dist/registry/mcp-discovery.d.ts.map +1 -0
- package/dist/registry/mcp-discovery.js +203 -0
- package/dist/registry/mcp-discovery.js.map +1 -0
- package/dist/registry/renderer.d.ts +19 -2
- package/dist/registry/renderer.d.ts.map +1 -1
- package/dist/registry/renderer.js +64 -2
- package/dist/registry/renderer.js.map +1 -1
- package/dist/shared/errors/index.d.ts +4 -0
- package/dist/shared/errors/index.d.ts.map +1 -1
- package/dist/shared/errors/index.js +6 -0
- package/dist/shared/errors/index.js.map +1 -1
- package/dist/shared/filesystem.d.ts +45 -0
- package/dist/shared/filesystem.d.ts.map +1 -0
- package/dist/shared/filesystem.js +122 -0
- package/dist/shared/filesystem.js.map +1 -0
- package/dist/shared/types.d.ts +92 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +6 -0
- package/dist/shared/types.js.map +1 -1
- package/dist/tools/configure-mcp.d.ts +24 -0
- package/dist/tools/configure-mcp.d.ts.map +1 -1
- package/dist/tools/configure-mcp.js +123 -24
- package/dist/tools/configure-mcp.js.map +1 -1
- package/dist/tools/generate-claude-md.d.ts +1 -0
- package/dist/tools/generate-claude-md.d.ts.map +1 -1
- package/dist/tools/generate-claude-md.js +23 -57
- package/dist/tools/generate-claude-md.js.map +1 -1
- package/dist/tools/get-reference.d.ts +28 -0
- package/dist/tools/get-reference.d.ts.map +1 -0
- package/dist/tools/get-reference.js +63 -0
- package/dist/tools/get-reference.js.map +1 -0
- package/dist/tools/list.d.ts +18 -2
- package/dist/tools/list.d.ts.map +1 -1
- package/dist/tools/list.js +74 -2
- package/dist/tools/list.js.map +1 -1
- package/dist/tools/refresh-project.d.ts.map +1 -1
- package/dist/tools/refresh-project.js +8 -10
- package/dist/tools/refresh-project.js.map +1 -1
- package/dist/tools/scaffold.d.ts +4 -0
- package/dist/tools/scaffold.d.ts.map +1 -1
- package/dist/tools/scaffold.js +58 -31
- package/dist/tools/scaffold.js.map +1 -1
- package/dist/tools/setup-project.d.ts.map +1 -1
- package/dist/tools/setup-project.js +5 -1
- package/dist/tools/setup-project.js.map +1 -1
- package/package.json +7 -3
- package/templates/analytics/mcp-servers.yaml +11 -0
- package/templates/api/mcp-servers.yaml +13 -0
- package/templates/api/skills.yaml +54 -0
- package/templates/cli/mcp-servers.yaml +11 -0
- package/templates/data-lineage/instructions.yaml +28 -0
- package/templates/data-lineage/mcp-servers.yaml +22 -0
- package/templates/data-pipeline/mcp-servers.yaml +13 -0
- package/templates/data-pipeline/skills.yaml +56 -0
- package/templates/fintech/mcp-servers.yaml +13 -0
- package/templates/fintech/skills.yaml +35 -0
- package/templates/game/mcp-servers.yaml +11 -0
- package/templates/healthcare/mcp-servers.yaml +13 -0
- package/templates/healthcare/skills.yaml +35 -0
- package/templates/hipaa/instructions.yaml +41 -0
- package/templates/hipaa/mcp-servers.yaml +13 -0
- package/templates/hipaa/skills.yaml +39 -0
- package/templates/infra/mcp-servers.yaml +20 -0
- package/templates/library/mcp-servers.yaml +20 -0
- package/templates/medallion-architecture/instructions.yaml +41 -0
- package/templates/medallion-architecture/mcp-servers.yaml +22 -0
- package/templates/ml/mcp-servers.yaml +11 -0
- package/templates/mobile/mcp-servers.yaml +11 -0
- package/templates/observability-xray/instructions.yaml +40 -0
- package/templates/observability-xray/mcp-servers.yaml +15 -0
- package/templates/realtime/mcp-servers.yaml +13 -0
- package/templates/soc2/instructions.yaml +41 -0
- package/templates/soc2/mcp-servers.yaml +24 -0
- package/templates/social/mcp-servers.yaml +24 -0
- package/templates/state-machine/mcp-servers.yaml +11 -0
- package/templates/universal/hooks.yaml +63 -0
- package/templates/universal/instructions.yaml +41 -118
- package/templates/universal/mcp-servers.yaml +38 -0
- package/templates/universal/nfr.yaml +1 -1
- package/templates/universal/reference.yaml +111 -0
- package/templates/universal/review.yaml +2 -2
- package/templates/universal/skills.yaml +106 -0
- package/templates/web-react/mcp-servers.yaml +20 -0
- package/templates/web-react/skills.yaml +56 -0
- package/templates/web-static/mcp-servers.yaml +20 -0
- package/templates/web3/mcp-servers.yaml +11 -0
- package/templates/zero-trust/instructions.yaml +41 -0
- package/templates/zero-trust/mcp-servers.yaml +15 -0
|
@@ -71,12 +71,16 @@ export function composeTemplates(activeTags, allTemplates, options) {
|
|
|
71
71
|
const structureEntries = [];
|
|
72
72
|
const nfrBlocks = [];
|
|
73
73
|
const hooks = [];
|
|
74
|
+
const skills = [];
|
|
74
75
|
const reviewBlocks = [];
|
|
76
|
+
const referenceBlocks = [];
|
|
75
77
|
const seenBlockIds = new Set();
|
|
76
78
|
const seenPaths = new Set();
|
|
77
79
|
const seenHookNames = new Set();
|
|
80
|
+
const seenSkillIds = new Set();
|
|
78
81
|
const seenNfrIds = new Set();
|
|
79
82
|
const seenReviewIds = new Set();
|
|
83
|
+
const seenReferenceIds = new Set();
|
|
80
84
|
for (const tag of orderedTags) {
|
|
81
85
|
const templateSet = allTemplates.get(tag);
|
|
82
86
|
if (!templateSet) {
|
|
@@ -124,6 +128,17 @@ export function composeTemplates(activeTags, allTemplates, options) {
|
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
130
|
}
|
|
131
|
+
// Compose skills (deduplicate by id, filter by tier)
|
|
132
|
+
if (templateSet.skills) {
|
|
133
|
+
for (const skill of templateSet.skills) {
|
|
134
|
+
if (!seenSkillIds.has(skill.id) &&
|
|
135
|
+
isTierAllowed(skill.tier, allowedTiers) &&
|
|
136
|
+
isBlockAllowed(skill.id, includeList, excludeList)) {
|
|
137
|
+
seenSkillIds.add(skill.id);
|
|
138
|
+
skills.push(skill);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
127
142
|
// Compose review blocks (deduplicate by id, filter by tier)
|
|
128
143
|
if (templateSet.review?.blocks) {
|
|
129
144
|
for (const block of templateSet.review.blocks) {
|
|
@@ -135,6 +150,15 @@ export function composeTemplates(activeTags, allTemplates, options) {
|
|
|
135
150
|
}
|
|
136
151
|
}
|
|
137
152
|
}
|
|
153
|
+
// Compose reference blocks (deduplicate by id — no tier filtering, always available on demand)
|
|
154
|
+
if (templateSet.reference?.blocks) {
|
|
155
|
+
for (const block of templateSet.reference.blocks) {
|
|
156
|
+
if (!seenReferenceIds.has(block.id)) {
|
|
157
|
+
seenReferenceIds.add(block.id);
|
|
158
|
+
referenceBlocks.push(block);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
138
162
|
}
|
|
139
163
|
logger.info("Templates composed", {
|
|
140
164
|
tags: orderedTags,
|
|
@@ -143,14 +167,18 @@ export function composeTemplates(activeTags, allTemplates, options) {
|
|
|
143
167
|
structureEntries: structureEntries.length,
|
|
144
168
|
nfrBlocks: nfrBlocks.length,
|
|
145
169
|
hooks: hooks.length,
|
|
170
|
+
skills: skills.length,
|
|
146
171
|
reviewBlocks: reviewBlocks.length,
|
|
172
|
+
referenceBlocks: referenceBlocks.length,
|
|
147
173
|
});
|
|
148
174
|
return {
|
|
149
175
|
instructionBlocks,
|
|
150
176
|
structureEntries,
|
|
151
177
|
nfrBlocks,
|
|
152
178
|
hooks,
|
|
179
|
+
skills,
|
|
153
180
|
reviewBlocks,
|
|
181
|
+
referenceBlocks,
|
|
154
182
|
// Backward-compat alias
|
|
155
183
|
claudeMdBlocks: instructionBlocks,
|
|
156
184
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/registry/composer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/registry/composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EACV,GAAG,EACH,cAAc,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EACV,GAAG,EACH,cAAc,EASd,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAkB5B;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAuB5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,CAAC,EAAE,MAAM,GACpB,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CA0B1B;AAkID;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GACjB,gBAAgB,GAAG,IAAI,CA4BzB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CA0C1B"}
|
package/dist/registry/loader.js
CHANGED
|
@@ -69,7 +69,10 @@ function loadTagTemplateSet(tag, tagDir) {
|
|
|
69
69
|
let nfr;
|
|
70
70
|
let structure;
|
|
71
71
|
let hooks;
|
|
72
|
+
let skills;
|
|
72
73
|
let review;
|
|
74
|
+
let mcpServers;
|
|
75
|
+
let reference;
|
|
73
76
|
// Load instructions.yaml (formerly claude-md.yaml)
|
|
74
77
|
const instructionsPath = join(tagDir, "instructions.yaml");
|
|
75
78
|
if (existsSync(instructionsPath)) {
|
|
@@ -98,12 +101,28 @@ function loadTagTemplateSet(tag, tagDir) {
|
|
|
98
101
|
const hooksFile = loadYamlFile(hooksPath);
|
|
99
102
|
hooks = hooksFile.hooks;
|
|
100
103
|
}
|
|
104
|
+
// Load skills.yaml
|
|
105
|
+
const skillsPath = join(tagDir, "skills.yaml");
|
|
106
|
+
if (existsSync(skillsPath)) {
|
|
107
|
+
const skillsFile = loadYamlFile(skillsPath);
|
|
108
|
+
skills = skillsFile.skills;
|
|
109
|
+
}
|
|
101
110
|
// Load review.yaml
|
|
102
111
|
const reviewPath = join(tagDir, "review.yaml");
|
|
103
112
|
if (existsSync(reviewPath)) {
|
|
104
113
|
review = loadYamlFile(reviewPath);
|
|
105
114
|
}
|
|
106
|
-
|
|
115
|
+
// Load mcp-servers.yaml
|
|
116
|
+
const mcpServersPath = join(tagDir, "mcp-servers.yaml");
|
|
117
|
+
if (existsSync(mcpServersPath)) {
|
|
118
|
+
mcpServers = loadYamlFile(mcpServersPath);
|
|
119
|
+
}
|
|
120
|
+
// Load reference.yaml (on-demand design patterns, not included in instruction files)
|
|
121
|
+
const referencePath = join(tagDir, "reference.yaml");
|
|
122
|
+
if (existsSync(referencePath)) {
|
|
123
|
+
reference = loadYamlFile(referencePath);
|
|
124
|
+
}
|
|
125
|
+
return { tag, instructions, nfr, structure, hooks, skills, review, mcpServers, reference };
|
|
107
126
|
}
|
|
108
127
|
/**
|
|
109
128
|
* Load and parse a single YAML template file.
|
|
@@ -149,6 +168,12 @@ function tagDirNameToTag(dirName) {
|
|
|
149
168
|
infra: "INFRA",
|
|
150
169
|
mobile: "MOBILE",
|
|
151
170
|
analytics: "ANALYTICS",
|
|
171
|
+
hipaa: "HIPAA",
|
|
172
|
+
soc2: "SOC2",
|
|
173
|
+
"data-lineage": "DATA-LINEAGE",
|
|
174
|
+
"observability-xray": "OBSERVABILITY-XRAY",
|
|
175
|
+
"medallion-architecture": "MEDALLION-ARCHITECTURE",
|
|
176
|
+
"zero-trust": "ZERO-TRUST",
|
|
152
177
|
};
|
|
153
178
|
return mapping[dirName] ?? null;
|
|
154
179
|
}
|
|
@@ -227,7 +252,10 @@ export function loadAllTemplatesWithExtras(builtInDir, extraDirs) {
|
|
|
227
252
|
nfr: mergeNfrTemplates(baseSet.nfr, extraSet.nfr),
|
|
228
253
|
structure: extraSet.structure ?? baseSet.structure,
|
|
229
254
|
hooks: mergeHookTemplates(baseSet.hooks, extraSet.hooks),
|
|
255
|
+
skills: mergeSkillTemplates(baseSet.skills, extraSet.skills),
|
|
230
256
|
review: mergeReviewTemplates(baseSet.review, extraSet.review),
|
|
257
|
+
mcpServers: mergeMcpServersTemplates(baseSet.mcpServers, extraSet.mcpServers),
|
|
258
|
+
reference: mergeReferenceTemplates(baseSet.reference, extraSet.reference),
|
|
231
259
|
};
|
|
232
260
|
base.set(tag, merged);
|
|
233
261
|
}
|
|
@@ -270,6 +298,18 @@ function mergeHookTemplates(base, extra) {
|
|
|
270
298
|
const newHooks = extra.filter((h) => !seenNames.has(h.name));
|
|
271
299
|
return [...base, ...newHooks];
|
|
272
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Merge two skill template arrays, appending non-duplicate skills by id.
|
|
303
|
+
*/
|
|
304
|
+
function mergeSkillTemplates(base, extra) {
|
|
305
|
+
if (!extra)
|
|
306
|
+
return base;
|
|
307
|
+
if (!base)
|
|
308
|
+
return extra;
|
|
309
|
+
const seenIds = new Set(base.map((s) => s.id));
|
|
310
|
+
const newSkills = extra.filter((s) => !seenIds.has(s.id));
|
|
311
|
+
return [...base, ...newSkills];
|
|
312
|
+
}
|
|
273
313
|
/**
|
|
274
314
|
* Merge two ReviewTemplates, appending non-duplicate blocks.
|
|
275
315
|
*/
|
|
@@ -282,4 +322,28 @@ function mergeReviewTemplates(base, extra) {
|
|
|
282
322
|
const newBlocks = extra.blocks.filter((b) => !seenIds.has(b.id));
|
|
283
323
|
return { ...base, blocks: [...base.blocks, ...newBlocks] };
|
|
284
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Merge two ReferenceTemplates, appending non-duplicate blocks.
|
|
327
|
+
*/
|
|
328
|
+
function mergeReferenceTemplates(base, extra) {
|
|
329
|
+
if (!extra)
|
|
330
|
+
return base;
|
|
331
|
+
if (!base)
|
|
332
|
+
return extra;
|
|
333
|
+
const seenIds = new Set(base.blocks.map((b) => b.id));
|
|
334
|
+
const newBlocks = extra.blocks.filter((b) => !seenIds.has(b.id));
|
|
335
|
+
return { ...base, blocks: [...base.blocks, ...newBlocks] };
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Merge two McpServersTemplates, appending non-duplicate servers by name.
|
|
339
|
+
*/
|
|
340
|
+
function mergeMcpServersTemplates(base, extra) {
|
|
341
|
+
if (!extra)
|
|
342
|
+
return base;
|
|
343
|
+
if (!base)
|
|
344
|
+
return extra;
|
|
345
|
+
const seenNames = new Set(base.servers.map((s) => s.name));
|
|
346
|
+
const newServers = extra.servers.filter((s) => !seenNames.has(s.name));
|
|
347
|
+
return { ...base, servers: [...base.servers, ...newServers] };
|
|
348
|
+
}
|
|
285
349
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAYtF,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAS/C;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACtD,IAAI,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,0DAA0D;IAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,+EAA+E;IAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6DAA6D;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,qBAAqB,CAAC,WAAW,EAAE,sCAAsC,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,YAAqB;IAErB,MAAM,GAAG,GAAG,YAAY,IAAI,mBAAmB,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE9C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACtD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YACpE,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAQ,EAAE,MAAc;IAClD,IAAI,YAA6C,CAAC;IAClD,IAAI,GAA4B,CAAC;IACjC,IAAI,SAAwC,CAAC;IAC7C,IAAI,KAAiC,CAAC;IACtC,IAAI,MAAkC,CAAC;IAEvC,mDAAmD;IACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,YAAY,GAAG,YAAY,CAAsB,gBAAgB,CAAC,CAAC;IACrE,CAAC;IAED,qEAAqE;IACrE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,YAAY,GAAG,YAAY,CAAsB,UAAU,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,GAAG,GAAG,YAAY,CAAc,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB;IACtB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,SAAS,GAAG,YAAY,CAAoB,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,kBAAkB;IAClB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,YAAY,CAAgB,SAAS,CAAC,CAAC;QACzD,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,mBAAmB;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,YAAY,CAAiB,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAI,QAAgB;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAM,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,OAAO,GAAwB;QACnC,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,YAAY;QAC1B,GAAG,EAAE,KAAK;QACV,eAAe,EAAE,eAAe;QAChC,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,YAAY;QACxB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,eAAe;QAChC,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;KACvB,CAAC;IACF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAQ;IACnC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB;IAElB,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAmB,EACnB,SAAoB;IAEpB,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YACtF,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE5C,qEAAqE;QACrE,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,yCAAyC;YACzC,MAAM,MAAM,GAAmB;gBAC7B,GAAG;gBACH,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC;gBACpF,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;gBACjD,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;gBAClD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;gBACxD,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;aAC9D,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,IAAqC,EACrC,KAAsC;IAEtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,IAA6B,EAC7B,KAA8B;IAE9B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,IAAgC,EAChC,KAAiC;IAEjC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,IAAgC,EAChC,KAAiC;IAEjC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Discovery Service.
|
|
3
|
+
*
|
|
4
|
+
* Discovers recommended MCP servers for a set of project tags by:
|
|
5
|
+
* 1. Loading curated entries from mcp-servers.yaml template files (built-in + community).
|
|
6
|
+
* 2. Optionally fetching from a remote registry URL for dynamic recommendations.
|
|
7
|
+
*
|
|
8
|
+
* Results are deduplicated by server name, with local (built-in/community)
|
|
9
|
+
* entries taking priority over remote ones.
|
|
10
|
+
*/
|
|
11
|
+
import type { Tag, McpServerRecommendation, McpDiscoveryOptions } from "../shared/types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Contract for MCP server discovery.
|
|
14
|
+
* Implementations resolve a set of tags into recommended MCP servers.
|
|
15
|
+
*/
|
|
16
|
+
export interface McpDiscoveryService {
|
|
17
|
+
/**
|
|
18
|
+
* Discover recommended MCP servers for the given tags.
|
|
19
|
+
*
|
|
20
|
+
* @param tags - Active project classification tags
|
|
21
|
+
* @param options - Optional discovery configuration
|
|
22
|
+
* @returns Deduplicated list of server recommendations
|
|
23
|
+
*/
|
|
24
|
+
discoverServers(tags: Tag[], options?: McpDiscoveryOptions): Promise<McpServerRecommendation[]>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Default MCP discovery service.
|
|
28
|
+
*
|
|
29
|
+
* Loads curated servers from YAML templates, optionally augments
|
|
30
|
+
* with servers from a remote JSON registry.
|
|
31
|
+
*/
|
|
32
|
+
export declare class DefaultMcpDiscoveryService implements McpDiscoveryService {
|
|
33
|
+
private readonly templatesDirOverride?;
|
|
34
|
+
private readonly extraDirs?;
|
|
35
|
+
/**
|
|
36
|
+
* @param templatesDirOverride - Override built-in templates directory (testing)
|
|
37
|
+
* @param extraDirs - Additional community template directories
|
|
38
|
+
*/
|
|
39
|
+
constructor(templatesDirOverride?: string, extraDirs?: string[]);
|
|
40
|
+
/**
|
|
41
|
+
* Discover MCP servers for the given tags.
|
|
42
|
+
*
|
|
43
|
+
* @param tags - Active project classification tags
|
|
44
|
+
* @param options - Discovery options
|
|
45
|
+
* @returns Deduplicated recommendations sorted by relevance
|
|
46
|
+
*/
|
|
47
|
+
discoverServers(tags: Tag[], options?: McpDiscoveryOptions): Promise<McpServerRecommendation[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Load MCP server entries from local YAML templates for the given tags.
|
|
50
|
+
* Collects from all matching tag template sets.
|
|
51
|
+
*/
|
|
52
|
+
private loadLocalServers;
|
|
53
|
+
/**
|
|
54
|
+
* Fetch MCP server entries from a remote JSON registry.
|
|
55
|
+
*
|
|
56
|
+
* Expected remote format:
|
|
57
|
+
* ```json
|
|
58
|
+
* {
|
|
59
|
+
* "servers": [
|
|
60
|
+
* {
|
|
61
|
+
* "name": "some-server",
|
|
62
|
+
* "description": "...",
|
|
63
|
+
* "command": "npx",
|
|
64
|
+
* "args": ["-y", "some-package"],
|
|
65
|
+
* "tags": ["API", "UNIVERSAL"],
|
|
66
|
+
* "category": "testing",
|
|
67
|
+
* "url": "https://..."
|
|
68
|
+
* }
|
|
69
|
+
* ]
|
|
70
|
+
* }
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* Only servers whose tags overlap with the requested tags are returned.
|
|
74
|
+
*/
|
|
75
|
+
private fetchRemoteServers;
|
|
76
|
+
/**
|
|
77
|
+
* Deduplicate server lists. Local entries take priority over remote.
|
|
78
|
+
* Sorts by: number of matching tags (desc), then alphabetically.
|
|
79
|
+
*/
|
|
80
|
+
private deduplicateServers;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=mcp-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-discovery.d.ts","sourceRoot":"","sources":["../../src/registry/mcp-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EACV,GAAG,EACH,uBAAuB,EACvB,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAM5B;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,eAAe,CACb,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACvC;AAaD;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAW;IAEtC;;;OAGG;gBACS,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE;IAK/D;;;;;;OAMG;IACG,eAAe,CACnB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAoCrC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;;;;;;;;;;;;;;;;;;;;OAqBG;YACW,kBAAkB;IA0DhC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA6B3B"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Discovery Service.
|
|
3
|
+
*
|
|
4
|
+
* Discovers recommended MCP servers for a set of project tags by:
|
|
5
|
+
* 1. Loading curated entries from mcp-servers.yaml template files (built-in + community).
|
|
6
|
+
* 2. Optionally fetching from a remote registry URL for dynamic recommendations.
|
|
7
|
+
*
|
|
8
|
+
* Results are deduplicated by server name, with local (built-in/community)
|
|
9
|
+
* entries taking priority over remote ones.
|
|
10
|
+
*/
|
|
11
|
+
import { createLogger } from "../shared/logger/index.js";
|
|
12
|
+
import { DiscoveryError } from "../shared/errors/index.js";
|
|
13
|
+
import { loadAllTemplatesWithExtras } from "./loader.js";
|
|
14
|
+
const logger = createLogger("registry/mcp-discovery");
|
|
15
|
+
// ── Constants ────────────────────────────────────────────────────────
|
|
16
|
+
/** Default remote registry URL. Configurable via FORGECRAFT_MCP_REGISTRY_URL. */
|
|
17
|
+
const DEFAULT_REMOTE_REGISTRY_URL = process.env["FORGECRAFT_MCP_REGISTRY_URL"] ?? "";
|
|
18
|
+
/** Default timeout for remote registry fetches in milliseconds. */
|
|
19
|
+
const DEFAULT_REMOTE_TIMEOUT_MS = 5_000;
|
|
20
|
+
// ── Implementation ───────────────────────────────────────────────────
|
|
21
|
+
/**
|
|
22
|
+
* Default MCP discovery service.
|
|
23
|
+
*
|
|
24
|
+
* Loads curated servers from YAML templates, optionally augments
|
|
25
|
+
* with servers from a remote JSON registry.
|
|
26
|
+
*/
|
|
27
|
+
export class DefaultMcpDiscoveryService {
|
|
28
|
+
templatesDirOverride;
|
|
29
|
+
extraDirs;
|
|
30
|
+
/**
|
|
31
|
+
* @param templatesDirOverride - Override built-in templates directory (testing)
|
|
32
|
+
* @param extraDirs - Additional community template directories
|
|
33
|
+
*/
|
|
34
|
+
constructor(templatesDirOverride, extraDirs) {
|
|
35
|
+
this.templatesDirOverride = templatesDirOverride;
|
|
36
|
+
this.extraDirs = extraDirs;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Discover MCP servers for the given tags.
|
|
40
|
+
*
|
|
41
|
+
* @param tags - Active project classification tags
|
|
42
|
+
* @param options - Discovery options
|
|
43
|
+
* @returns Deduplicated recommendations sorted by relevance
|
|
44
|
+
*/
|
|
45
|
+
async discoverServers(tags, options) {
|
|
46
|
+
const localServers = this.loadLocalServers(tags);
|
|
47
|
+
logger.info("Loaded local MCP server recommendations", {
|
|
48
|
+
count: localServers.length,
|
|
49
|
+
tags,
|
|
50
|
+
});
|
|
51
|
+
let remoteServers = [];
|
|
52
|
+
if (options?.includeRemote) {
|
|
53
|
+
const registryUrl = options.remoteRegistryUrl ?? DEFAULT_REMOTE_REGISTRY_URL;
|
|
54
|
+
if (registryUrl) {
|
|
55
|
+
remoteServers = await this.fetchRemoteServers(tags, registryUrl, options.remoteTimeoutMs ?? DEFAULT_REMOTE_TIMEOUT_MS);
|
|
56
|
+
logger.info("Fetched remote MCP server recommendations", {
|
|
57
|
+
count: remoteServers.length,
|
|
58
|
+
url: registryUrl,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
logger.warn("Remote discovery requested but no registry URL configured. " +
|
|
63
|
+
"Set FORGECRAFT_MCP_REGISTRY_URL or pass remoteRegistryUrl.");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return this.deduplicateServers(localServers, remoteServers);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Load MCP server entries from local YAML templates for the given tags.
|
|
70
|
+
* Collects from all matching tag template sets.
|
|
71
|
+
*/
|
|
72
|
+
loadLocalServers(tags) {
|
|
73
|
+
const templates = loadAllTemplatesWithExtras(this.templatesDirOverride, this.extraDirs);
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
const results = [];
|
|
76
|
+
for (const tag of tags) {
|
|
77
|
+
const templateSet = templates.get(tag);
|
|
78
|
+
if (!templateSet?.mcpServers) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
for (const entry of templateSet.mcpServers.servers) {
|
|
82
|
+
if (seen.has(entry.name)) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
seen.add(entry.name);
|
|
86
|
+
results.push(entryToRecommendation(entry, "built-in"));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return results;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Fetch MCP server entries from a remote JSON registry.
|
|
93
|
+
*
|
|
94
|
+
* Expected remote format:
|
|
95
|
+
* ```json
|
|
96
|
+
* {
|
|
97
|
+
* "servers": [
|
|
98
|
+
* {
|
|
99
|
+
* "name": "some-server",
|
|
100
|
+
* "description": "...",
|
|
101
|
+
* "command": "npx",
|
|
102
|
+
* "args": ["-y", "some-package"],
|
|
103
|
+
* "tags": ["API", "UNIVERSAL"],
|
|
104
|
+
* "category": "testing",
|
|
105
|
+
* "url": "https://..."
|
|
106
|
+
* }
|
|
107
|
+
* ]
|
|
108
|
+
* }
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* Only servers whose tags overlap with the requested tags are returned.
|
|
112
|
+
*/
|
|
113
|
+
async fetchRemoteServers(tags, registryUrl, timeoutMs) {
|
|
114
|
+
try {
|
|
115
|
+
const controller = new AbortController();
|
|
116
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
117
|
+
const response = await fetch(registryUrl, {
|
|
118
|
+
signal: controller.signal,
|
|
119
|
+
headers: { Accept: "application/json" },
|
|
120
|
+
});
|
|
121
|
+
clearTimeout(timeoutId);
|
|
122
|
+
if (!response.ok) {
|
|
123
|
+
throw new DiscoveryError(`Remote registry returned HTTP ${response.status}`, registryUrl);
|
|
124
|
+
}
|
|
125
|
+
const data = (await response.json());
|
|
126
|
+
if (!Array.isArray(data.servers)) {
|
|
127
|
+
throw new DiscoveryError("Remote registry response missing 'servers' array", registryUrl);
|
|
128
|
+
}
|
|
129
|
+
const tagSet = new Set(tags);
|
|
130
|
+
return data.servers
|
|
131
|
+
.filter((entry) => entry.tags.some((t) => tagSet.has(t)))
|
|
132
|
+
.map((entry) => entryToRecommendation(entry, "remote"));
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
if (error instanceof DiscoveryError) {
|
|
136
|
+
logger.warn("Remote MCP registry error", {
|
|
137
|
+
url: registryUrl,
|
|
138
|
+
error: error.message,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
143
|
+
logger.warn("Failed to fetch remote MCP registry", {
|
|
144
|
+
url: registryUrl,
|
|
145
|
+
error: message,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
// Remote failures are non-fatal — return empty and rely on local
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Deduplicate server lists. Local entries take priority over remote.
|
|
154
|
+
* Sorts by: number of matching tags (desc), then alphabetically.
|
|
155
|
+
*/
|
|
156
|
+
deduplicateServers(local, remote) {
|
|
157
|
+
const seen = new Set();
|
|
158
|
+
const merged = [];
|
|
159
|
+
// Local first (higher priority)
|
|
160
|
+
for (const server of local) {
|
|
161
|
+
if (!seen.has(server.name)) {
|
|
162
|
+
seen.add(server.name);
|
|
163
|
+
merged.push(server);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Remote fills gaps
|
|
167
|
+
for (const server of remote) {
|
|
168
|
+
if (!seen.has(server.name)) {
|
|
169
|
+
seen.add(server.name);
|
|
170
|
+
merged.push(server);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return merged.sort((a, b) => {
|
|
174
|
+
const tagDiff = b.relevantTags.length - a.relevantTags.length;
|
|
175
|
+
if (tagDiff !== 0)
|
|
176
|
+
return tagDiff;
|
|
177
|
+
return a.name.localeCompare(b.name);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// ── Helpers ──────────────────────────────────────────────────────────
|
|
182
|
+
/**
|
|
183
|
+
* Convert a raw McpServerEntry to a McpServerRecommendation.
|
|
184
|
+
*
|
|
185
|
+
* @param entry - Raw entry from YAML or remote
|
|
186
|
+
* @param source - Where this entry was discovered
|
|
187
|
+
* @returns Normalized recommendation
|
|
188
|
+
*/
|
|
189
|
+
function entryToRecommendation(entry, source) {
|
|
190
|
+
return {
|
|
191
|
+
name: entry.name,
|
|
192
|
+
description: entry.description,
|
|
193
|
+
command: entry.command,
|
|
194
|
+
args: entry.args,
|
|
195
|
+
env: entry.env,
|
|
196
|
+
relevantTags: entry.tags,
|
|
197
|
+
category: entry.category,
|
|
198
|
+
url: entry.url,
|
|
199
|
+
source,
|
|
200
|
+
tier: entry.tier,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=mcp-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-discovery.js","sourceRoot":"","sources":["../../src/registry/mcp-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Supports multiple output targets (Claude, Cursor, Copilot, Windsurf, Cline, Aider).
|
|
6
6
|
* Handles {{variable}} and {{variable | default: value}} syntax.
|
|
7
7
|
*/
|
|
8
|
-
import type { InstructionBlock, NfrBlock, ReviewBlock, Tag, OutputTarget } from "../shared/types.js";
|
|
8
|
+
import type { InstructionBlock, NfrBlock, ReferenceBlock, ReviewBlock, Tag, OutputTarget } from "../shared/types.js";
|
|
9
9
|
/** Variables available for template rendering. */
|
|
10
10
|
export interface RenderContext {
|
|
11
11
|
readonly projectName: string;
|
|
@@ -35,6 +35,23 @@ export declare function renderClaudeMd(blocks: InstructionBlock[], context: Rend
|
|
|
35
35
|
* Render NFR sections from composed blocks.
|
|
36
36
|
*/
|
|
37
37
|
export declare function renderNfrs(blocks: NfrBlock[], context: RenderContext): string;
|
|
38
|
+
/**
|
|
39
|
+
* Render design reference blocks (DDD, CQRS, GoF patterns) for on-demand retrieval.
|
|
40
|
+
*
|
|
41
|
+
* @param blocks - Composed reference blocks
|
|
42
|
+
* @param context - Project context for variable substitution
|
|
43
|
+
* @returns Formatted markdown content
|
|
44
|
+
*/
|
|
45
|
+
export declare function renderReference(blocks: ReferenceBlock[], context: RenderContext): string;
|
|
46
|
+
/**
|
|
47
|
+
* Render a skill template's content with project-specific variable substitution.
|
|
48
|
+
* Skills are written as individual `.md` files in `.claude/commands/`.
|
|
49
|
+
*
|
|
50
|
+
* @param content - Raw skill content with {{variable}} placeholders
|
|
51
|
+
* @param context - Project context for variable substitution
|
|
52
|
+
* @returns Rendered skill content ready to write to file
|
|
53
|
+
*/
|
|
54
|
+
export declare function renderSkill(content: string, context: RenderContext): string;
|
|
38
55
|
/**
|
|
39
56
|
* Render review checklist blocks grouped by dimension.
|
|
40
57
|
*
|
|
@@ -57,7 +74,7 @@ export declare function renderPrdSkeleton(context: RenderContext): string;
|
|
|
57
74
|
export declare function renderTechSpecSkeleton(context: RenderContext): string;
|
|
58
75
|
/**
|
|
59
76
|
* Render a template string by substituting {{variable}} placeholders.
|
|
60
|
-
* Supports {{variable | default: value}} syntax.
|
|
77
|
+
* Supports {{variable | default: value}} syntax and {{#if}}...{{/if}} conditionals.
|
|
61
78
|
*/
|
|
62
79
|
export declare function renderTemplate(template: string, context: RenderContext): string;
|
|
63
80
|
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/registry/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,WAAW,EAEX,GAAG,EACH,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAQ5B,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,YAAoC,GAC3C,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,aAAa,GACrB,MAAM,CAER;AAsCD;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,EAAE,aAAa,GACrB,MAAM,CAQR;AAkBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EAAE,EACrB,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,MAAM,CAuDR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAsC7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA6BhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA+BrE;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/registry/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,WAAW,EAEX,GAAG,EACH,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAQ5B,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,YAAoC,GAC3C,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,aAAa,GACrB,MAAM,CAER;AAsCD;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,QAAQ,EAAE,EAClB,OAAO,EAAE,aAAa,GACrB,MAAM,CAQR;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,aAAa,GACrB,MAAM,CAQR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,MAAM,CAER;AAkBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EAAE,EACrB,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,MAAM,CAuDR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAsC7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA6BhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA+BrE;AA8CD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GACrB,MAAM,CA6BR"}
|