@context-forge/mcp 0.13.2 → 0.14.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/tools/contextTools.d.ts +25 -1
- package/dist/tools/contextTools.d.ts.map +1 -1
- package/dist/tools/contextTools.js +41 -11
- package/dist/tools/contextTools.js.map +1 -1
- package/dist/tools/guideTools.d.ts.map +1 -1
- package/dist/tools/guideTools.js +35 -9
- package/dist/tools/guideTools.js.map +1 -1
- package/package.json +2 -2
|
@@ -19,10 +19,34 @@ export declare function jsonResult(data: unknown): {
|
|
|
19
19
|
text: string;
|
|
20
20
|
}[];
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Attach guide notices to a tool result.
|
|
24
|
+
*
|
|
25
|
+
* An MCP client has no stderr to read, so side-channel messages travel as a
|
|
26
|
+
* structured `notices` array (D4). The primary payload is untouched: callers
|
|
27
|
+
* that ignore the field see exactly what they saw before. Absent when there is
|
|
28
|
+
* nothing to report, so a quiet call stays byte-identical.
|
|
29
|
+
*/
|
|
30
|
+
export declare function withNotices<T extends object>(result: T, notices: string[]): T | (T & {
|
|
31
|
+
notices: string[];
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Ready the guide checkout for a project before its content is read, and
|
|
35
|
+
* return any notice the caller should surface.
|
|
36
|
+
*
|
|
37
|
+
* Mirrors the CLI's ensureGuideReady, minus the printing: MCP tools carry the
|
|
38
|
+
* message in the result instead. There is no separate operation path here:
|
|
39
|
+
* the MCP worktree overlay has already rewritten `projectPath` to the
|
|
40
|
+
* worktree when one is selected.
|
|
41
|
+
*/
|
|
42
|
+
export declare function ensureGuideForProject(projectPath: string): Promise<string[]>;
|
|
22
43
|
/**
|
|
23
44
|
* Shared context generation helper used by context_build and template_preview.
|
|
24
45
|
* Loads a project, applies optional overrides, generates context via core pipeline.
|
|
25
46
|
*/
|
|
26
|
-
export declare function generateContext(projectId: string, overrides?: Partial<ProjectData>, additionalInstructions?: string, worktreeId?: string): Promise<
|
|
47
|
+
export declare function generateContext(projectId: string, overrides?: Partial<ProjectData>, additionalInstructions?: string, worktreeId?: string): Promise<{
|
|
48
|
+
contextString: string;
|
|
49
|
+
notices: string[];
|
|
50
|
+
}>;
|
|
27
51
|
export declare function registerContextTools(server: McpServer): void;
|
|
28
52
|
//# sourceMappingURL=contextTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextTools.d.ts","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAEzG;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEtF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEvF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,sBAAsB,CAAC,EAAE,MAAM,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"contextTools.d.ts","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAEzG;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEtF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAEvF;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,MAAM,EAAE,GAChB,CAAC,GAAG,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAEjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKlF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,sBAAsB,CAAC,EAAE,MAAM,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsCvD;AAyCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8M5D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { FileProjectStore, createContextPipeline, SystemPromptParser, resolvePromptFilePath } from '@context-forge/core/node';
|
|
2
|
+
import { FileProjectStore, createContextPipeline, SystemPromptParser, resolvePromptFilePath, ConfigManager, GuideManager } from '@context-forge/core/node';
|
|
3
3
|
import { resolveProjectId } from './resolveProjectId.js';
|
|
4
4
|
import { resolveProject } from '@context-forge/core';
|
|
5
5
|
// --- Shared helpers ---
|
|
@@ -12,6 +12,32 @@ export function textResult(text) {
|
|
|
12
12
|
export function jsonResult(data) {
|
|
13
13
|
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Attach guide notices to a tool result.
|
|
17
|
+
*
|
|
18
|
+
* An MCP client has no stderr to read, so side-channel messages travel as a
|
|
19
|
+
* structured `notices` array (D4). The primary payload is untouched: callers
|
|
20
|
+
* that ignore the field see exactly what they saw before. Absent when there is
|
|
21
|
+
* nothing to report, so a quiet call stays byte-identical.
|
|
22
|
+
*/
|
|
23
|
+
export function withNotices(result, notices) {
|
|
24
|
+
return notices.length > 0 ? { ...result, notices } : result;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ready the guide checkout for a project before its content is read, and
|
|
28
|
+
* return any notice the caller should surface.
|
|
29
|
+
*
|
|
30
|
+
* Mirrors the CLI's ensureGuideReady, minus the printing: MCP tools carry the
|
|
31
|
+
* message in the result instead. There is no separate operation path here:
|
|
32
|
+
* the MCP worktree overlay has already rewritten `projectPath` to the
|
|
33
|
+
* worktree when one is selected.
|
|
34
|
+
*/
|
|
35
|
+
export async function ensureGuideForProject(projectPath) {
|
|
36
|
+
const cm = new ConfigManager(projectPath);
|
|
37
|
+
const manager = new GuideManager(projectPath, cm);
|
|
38
|
+
const result = await manager.ensureCheckout();
|
|
39
|
+
return result.action === 'none' || !result.message ? [] : [result.message];
|
|
40
|
+
}
|
|
15
41
|
/**
|
|
16
42
|
* Shared context generation helper used by context_build and template_preview.
|
|
17
43
|
* Loads a project, applies optional overrides, generates context via core pipeline.
|
|
@@ -34,12 +60,15 @@ export async function generateContext(projectId, overrides, additionalInstructio
|
|
|
34
60
|
}
|
|
35
61
|
}
|
|
36
62
|
}
|
|
63
|
+
// The guide must be readable before the pipeline reads it: a fresh clone
|
|
64
|
+
// leaves the submodule uninitialized (#80).
|
|
65
|
+
const notices = await ensureGuideForProject(workingCopy.projectPath);
|
|
37
66
|
const { integrator } = createContextPipeline(workingCopy.projectPath);
|
|
38
67
|
let contextString = await integrator.generateContextFromProject(workingCopy, worktreeId);
|
|
39
68
|
if (additionalInstructions) {
|
|
40
69
|
contextString = `${contextString}\n\n${additionalInstructions}`;
|
|
41
70
|
}
|
|
42
|
-
return contextString;
|
|
71
|
+
return { contextString, notices };
|
|
43
72
|
}
|
|
44
73
|
/** Zod schema for optional project parameter overrides */
|
|
45
74
|
const contextOverridesSchema = {
|
|
@@ -67,7 +96,8 @@ async function resolvePromptFileForTools(projectId) {
|
|
|
67
96
|
if (!project.projectPath) {
|
|
68
97
|
throw new Error(`Project '${project.name}' has no configured path. Set a project path with project_update before using prompt tools.`);
|
|
69
98
|
}
|
|
70
|
-
|
|
99
|
+
const notices = await ensureGuideForProject(project.projectPath);
|
|
100
|
+
return { promptFilePath: resolvePromptFilePath(project.projectPath), notices };
|
|
71
101
|
}
|
|
72
102
|
// --- Tool registration ---
|
|
73
103
|
export function registerContextTools(server) {
|
|
@@ -116,8 +146,8 @@ export function registerContextTools(server) {
|
|
|
116
146
|
...worktreeOverrides,
|
|
117
147
|
...explicitOverrides,
|
|
118
148
|
};
|
|
119
|
-
const contextString = await generateContext(resolvedId, Object.keys(mergedOverrides).length > 0 ? mergedOverrides : undefined, additionalInstructions, resolvedWorktreeId);
|
|
120
|
-
return textResult(contextString);
|
|
149
|
+
const { contextString, notices } = await generateContext(resolvedId, Object.keys(mergedOverrides).length > 0 ? mergedOverrides : undefined, additionalInstructions, resolvedWorktreeId);
|
|
150
|
+
return withNotices(textResult(contextString), notices);
|
|
121
151
|
}
|
|
122
152
|
catch (error) {
|
|
123
153
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -163,8 +193,8 @@ export function registerContextTools(server) {
|
|
|
163
193
|
explicitOverrides.instruction = instructionType;
|
|
164
194
|
}
|
|
165
195
|
const mergedOverrides = { ...worktreeOverrides, ...explicitOverrides };
|
|
166
|
-
const contextString = await generateContext(resolvedId, Object.keys(mergedOverrides).length > 0 ? mergedOverrides : undefined, additionalInstructions, resolvedWtId);
|
|
167
|
-
return textResult(contextString);
|
|
196
|
+
const { contextString, notices } = await generateContext(resolvedId, Object.keys(mergedOverrides).length > 0 ? mergedOverrides : undefined, additionalInstructions, resolvedWtId);
|
|
197
|
+
return withNotices(textResult(contextString), notices);
|
|
168
198
|
}
|
|
169
199
|
catch (error) {
|
|
170
200
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -181,7 +211,7 @@ export function registerContextTools(server) {
|
|
|
181
211
|
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
182
212
|
}, async ({ projectId }) => {
|
|
183
213
|
try {
|
|
184
|
-
const promptFilePath = await resolvePromptFileForTools(projectId);
|
|
214
|
+
const { promptFilePath, notices } = await resolvePromptFileForTools(projectId);
|
|
185
215
|
const parser = new SystemPromptParser(promptFilePath);
|
|
186
216
|
const prompts = await parser.getAllPrompts();
|
|
187
217
|
const templates = prompts.map((p) => ({
|
|
@@ -189,7 +219,7 @@ export function registerContextTools(server) {
|
|
|
189
219
|
key: p.key,
|
|
190
220
|
parameterCount: p.parameters.length,
|
|
191
221
|
}));
|
|
192
|
-
return jsonResult({ templates, count: templates.length, promptFile: promptFilePath });
|
|
222
|
+
return withNotices(jsonResult({ templates, count: templates.length, promptFile: promptFilePath }), notices);
|
|
193
223
|
}
|
|
194
224
|
catch (error) {
|
|
195
225
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -207,7 +237,7 @@ export function registerContextTools(server) {
|
|
|
207
237
|
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
208
238
|
}, async ({ projectId, templateName }) => {
|
|
209
239
|
try {
|
|
210
|
-
const promptFilePath = await resolvePromptFileForTools(projectId);
|
|
240
|
+
const { promptFilePath, notices } = await resolvePromptFileForTools(projectId);
|
|
211
241
|
const parser = new SystemPromptParser(promptFilePath);
|
|
212
242
|
const prompts = await parser.getAllPrompts();
|
|
213
243
|
// Match by name (case-insensitive) or key (exact)
|
|
@@ -218,7 +248,7 @@ export function registerContextTools(server) {
|
|
|
218
248
|
}
|
|
219
249
|
// Return metadata header followed by template content
|
|
220
250
|
const header = `# ${match.name}\nKey: ${match.key}\nParameters: ${match.parameters.join(', ') || 'none'}\n\n---\n\n`;
|
|
221
|
-
return textResult(header + match.content);
|
|
251
|
+
return withNotices(textResult(header + match.content), notices);
|
|
222
252
|
}
|
|
223
253
|
catch (error) {
|
|
224
254
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextTools.js","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"contextTools.js","sourceRoot":"","sources":["../../src/tools/contextTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guideTools.d.ts","sourceRoot":"","sources":["../../src/tools/guideTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"guideTools.d.ts","sourceRoot":"","sources":["../../src/tools/guideTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkL1D"}
|
package/dist/tools/guideTools.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { FileProjectStore, GuideManager, ConfigManager, BranchGuardBlockedError, BranchGuardWarnError, } from '@context-forge/core/node';
|
|
3
|
-
import { GuideDetector } from '@context-forge/core/node';
|
|
3
|
+
import { GuideDetector, CHECKOUT_STATE_LABELS, GUIDE_MANAGED_NOTICE, GUIDE_METHODS, GUIDE_METHOD_DEPRECATED_ALIASES, GUIDE_STRATEGIES, guideMethodDeprecationMessage, } from '@context-forge/core/node';
|
|
4
4
|
import { resolveProjectId } from './resolveProjectId.js';
|
|
5
|
-
import { errorResult, jsonResult } from './contextTools.js';
|
|
5
|
+
import { errorResult, jsonResult, withNotices } from './contextTools.js';
|
|
6
|
+
/** Every spelling `guide_install` accepts: canonical methods plus deprecated aliases. */
|
|
7
|
+
const GUIDE_STRATEGY_INPUTS = [
|
|
8
|
+
...GUIDE_METHODS,
|
|
9
|
+
...Object.keys(GUIDE_METHOD_DEPRECATED_ALIASES),
|
|
10
|
+
];
|
|
11
|
+
/** Strategy trade-offs for the tool description, from the same table the CLI help uses (D8). */
|
|
12
|
+
const GUIDE_STRATEGY_DESCRIPTION = Object.entries(GUIDE_STRATEGIES)
|
|
13
|
+
.map(([name, { summary }]) => `"${name}" (${summary})`)
|
|
14
|
+
.join(', ');
|
|
6
15
|
/** Resolve projectId to projectPath and project data, throwing actionable errors */
|
|
7
16
|
async function resolveProjectWithData(projectId) {
|
|
8
17
|
const resolvedId = await resolveProjectId(projectId);
|
|
@@ -21,7 +30,7 @@ export function registerGuideTools(server) {
|
|
|
21
30
|
server.registerTool('guide_status', {
|
|
22
31
|
title: 'Guide Status',
|
|
23
32
|
description: 'Check the installation status of the AI project guide for a project. ' +
|
|
24
|
-
'Returns whether the guide is installed, what method was used (submodule/clone/
|
|
33
|
+
'Returns whether the guide is installed, what method was used (submodule/clone/tarball), ' +
|
|
25
34
|
'current version, latest available version, and whether an update is available.',
|
|
26
35
|
inputSchema: {
|
|
27
36
|
projectId: z
|
|
@@ -48,7 +57,16 @@ export function registerGuideTools(server) {
|
|
|
48
57
|
}
|
|
49
58
|
}
|
|
50
59
|
}
|
|
51
|
-
|
|
60
|
+
// info.checkout is the raw state; pair it with display text so a
|
|
61
|
+
// client need not carry its own label table.
|
|
62
|
+
const checkoutLabel = info.checkout ? CHECKOUT_STATE_LABELS[info.checkout] : undefined;
|
|
63
|
+
return jsonResult({
|
|
64
|
+
...info,
|
|
65
|
+
...(checkoutLabel ? { checkoutLabel } : {}),
|
|
66
|
+
...(worktreeSync ? { worktreeSync } : {}),
|
|
67
|
+
// Same gate as the CLI: the notice describes an existing directory.
|
|
68
|
+
...(info.installed ? { managedNotice: GUIDE_MANAGED_NOTICE } : {}),
|
|
69
|
+
});
|
|
52
70
|
}
|
|
53
71
|
catch (error) {
|
|
54
72
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -59,8 +77,8 @@ export function registerGuideTools(server) {
|
|
|
59
77
|
server.registerTool('guide_install', {
|
|
60
78
|
title: 'Install Guide',
|
|
61
79
|
description: 'Install the AI project guide into a project directory. ' +
|
|
62
|
-
|
|
63
|
-
'
|
|
80
|
+
`Strategies: ${GUIDE_STRATEGY_DESCRIPTION}. ` +
|
|
81
|
+
'Omit strategy to use the guide.git_strategy config value. ' +
|
|
64
82
|
'Error if the guide is already installed — use guide_update instead.',
|
|
65
83
|
inputSchema: {
|
|
66
84
|
projectId: z
|
|
@@ -68,9 +86,12 @@ export function registerGuideTools(server) {
|
|
|
68
86
|
.optional()
|
|
69
87
|
.describe('Project ID or name. Omit to resolve from CWD.'),
|
|
70
88
|
strategy: z
|
|
71
|
-
|
|
89
|
+
// 'manual' is a deprecated alias for 'tarball'; accepted on input so
|
|
90
|
+
// existing callers keep working, normalized by GuideManager.install().
|
|
91
|
+
.enum(GUIDE_STRATEGY_INPUTS)
|
|
72
92
|
.optional()
|
|
73
|
-
.describe(
|
|
93
|
+
.describe("Installation strategy. Overrides guide.git_strategy config for this call. " +
|
|
94
|
+
"'manual' is a deprecated alias for 'tarball'."),
|
|
74
95
|
source: z
|
|
75
96
|
.string()
|
|
76
97
|
.optional()
|
|
@@ -83,7 +104,12 @@ export function registerGuideTools(server) {
|
|
|
83
104
|
const cm = new ConfigManager(projectPath);
|
|
84
105
|
const manager = new GuideManager(projectPath, cm);
|
|
85
106
|
const result = await manager.install(strategy, source);
|
|
86
|
-
|
|
107
|
+
// Deprecation surfaces as a structured notice rather than a log line,
|
|
108
|
+
// since an MCP client has no stderr channel to read (D4). Same shared
|
|
109
|
+
// shape every other tool uses.
|
|
110
|
+
return withNotices(jsonResult(result), result.deprecatedAlias
|
|
111
|
+
? [guideMethodDeprecationMessage(result.deprecatedAlias, result.method)]
|
|
112
|
+
: []);
|
|
87
113
|
}
|
|
88
114
|
catch (error) {
|
|
89
115
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guideTools.js","sourceRoot":"","sources":["../../src/tools/guideTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"guideTools.js","sourceRoot":"","sources":["../../src/tools/guideTools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@context-forge/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "MCP server for Context Forge — generates structured AI context prompts from project configuration and templates",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
36
36
|
"zod": "^4.1.5",
|
|
37
|
-
"@context-forge/core": "0.
|
|
37
|
+
"@context-forge/core": "0.14.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^25.3.0",
|