@contentrain/mcp 0.1.1 → 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 +9 -1
- package/dist/index.d.mts +88 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +681 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -90,7 +90,7 @@ Add to your MCP client configuration:
|
|
|
90
90
|
|
|
91
91
|
### 3. Start using
|
|
92
92
|
|
|
93
|
-
Once configured, your AI assistant has access to
|
|
93
|
+
Once configured, your AI assistant has access to 17 tools. Here's an example conversation:
|
|
94
94
|
|
|
95
95
|
```
|
|
96
96
|
You: List all my models
|
|
@@ -209,6 +209,14 @@ You can register multiple MCP server instances — one per environment:
|
|
|
209
209
|
| `contentrain_register_asset` | Register an existing file as an asset |
|
|
210
210
|
| `contentrain_deregister_asset` | Remove an asset from the registry |
|
|
211
211
|
|
|
212
|
+
### Diagnostics
|
|
213
|
+
|
|
214
|
+
| Tool | Description |
|
|
215
|
+
|------|-------------|
|
|
216
|
+
| `contentrain_doctor` | Full diagnostic scan — detects ID, schema, relation, asset, and sync issues. Use `fix=true` to auto-repair (pushes to a staging branch for review). |
|
|
217
|
+
| `contentrain_doctor_apply` | Merge a staged doctor fix into the target branch |
|
|
218
|
+
| `contentrain_doctor_discard` | Discard a staged doctor fix without merging |
|
|
219
|
+
|
|
212
220
|
## Environment Variables
|
|
213
221
|
|
|
214
222
|
| Variable | Default | Description |
|
package/dist/index.d.mts
CHANGED
|
@@ -251,6 +251,25 @@ declare class ContentrainWriter {
|
|
|
251
251
|
transaction<T>(fn: (managers: TransactionManagers) => Promise<T>, options?: {
|
|
252
252
|
message?: string;
|
|
253
253
|
}): Promise<T>;
|
|
254
|
+
/**
|
|
255
|
+
* Execute operations and push to a staging branch instead of the target branch.
|
|
256
|
+
* Returns the result and whether any changes were pushed.
|
|
257
|
+
*/
|
|
258
|
+
stagingTransaction<T>(fn: (managers: TransactionManagers) => Promise<T>, options: {
|
|
259
|
+
message: string;
|
|
260
|
+
stagingBranch: string;
|
|
261
|
+
}): Promise<{
|
|
262
|
+
result: T;
|
|
263
|
+
hasChanges: boolean;
|
|
264
|
+
}>;
|
|
265
|
+
/**
|
|
266
|
+
* Merge a staging branch into the target branch.
|
|
267
|
+
*/
|
|
268
|
+
applyStagingBranch(stagingBranch: string): Promise<string>;
|
|
269
|
+
/**
|
|
270
|
+
* Delete a staging branch without merging.
|
|
271
|
+
*/
|
|
272
|
+
discardStagingBranch(stagingBranch: string): Promise<void>;
|
|
254
273
|
/**
|
|
255
274
|
* Dry-run: copy contentrain dir to temp, run operations there, then discard.
|
|
256
275
|
* The original repository is never modified.
|
|
@@ -262,11 +281,79 @@ declare class ContentrainWriter {
|
|
|
262
281
|
private createManagers;
|
|
263
282
|
}
|
|
264
283
|
interface TransactionManagers {
|
|
284
|
+
basePath: string;
|
|
285
|
+
repoPath: string;
|
|
265
286
|
model: ModelManager;
|
|
266
287
|
content: ContentManager;
|
|
267
288
|
asset: AssetManager;
|
|
268
289
|
validator: Validator;
|
|
269
290
|
}
|
|
270
291
|
//#endregion
|
|
271
|
-
|
|
292
|
+
//#region src/core/doctor.d.ts
|
|
293
|
+
type IssueSeverity = 'error' | 'warning';
|
|
294
|
+
type IssueCategory = 'structure' | 'id' | 'schema' | 'relation' | 'asset' | 'sync';
|
|
295
|
+
interface DoctorIssue {
|
|
296
|
+
severity: IssueSeverity;
|
|
297
|
+
category: IssueCategory;
|
|
298
|
+
modelId?: string;
|
|
299
|
+
entryId?: string;
|
|
300
|
+
field?: string;
|
|
301
|
+
file?: string;
|
|
302
|
+
message: string;
|
|
303
|
+
fix?: string;
|
|
304
|
+
}
|
|
305
|
+
interface DoctorResult {
|
|
306
|
+
summary: {
|
|
307
|
+
total: number;
|
|
308
|
+
errors: number;
|
|
309
|
+
warnings: number;
|
|
310
|
+
fixed: number;
|
|
311
|
+
models: number;
|
|
312
|
+
entries: number;
|
|
313
|
+
};
|
|
314
|
+
issues: DoctorIssue[];
|
|
315
|
+
}
|
|
316
|
+
interface DoctorOptions {
|
|
317
|
+
fix?: boolean;
|
|
318
|
+
modelId?: string;
|
|
319
|
+
}
|
|
320
|
+
declare class Doctor {
|
|
321
|
+
private basePath;
|
|
322
|
+
private repoPath;
|
|
323
|
+
private issues;
|
|
324
|
+
private fixed;
|
|
325
|
+
private totalEntries;
|
|
326
|
+
private scannedEntries;
|
|
327
|
+
private idRemap;
|
|
328
|
+
private contentFiles;
|
|
329
|
+
private fieldsByModel;
|
|
330
|
+
constructor(basePath: string, repoPath: string);
|
|
331
|
+
diagnose(options?: DoctorOptions): Promise<DoctorResult>;
|
|
332
|
+
private loadAllContentFiles;
|
|
333
|
+
private checkMetadata;
|
|
334
|
+
private checkFieldFiles;
|
|
335
|
+
private checkOrphanDirectories;
|
|
336
|
+
private checkModelStructure;
|
|
337
|
+
private checkModelContent;
|
|
338
|
+
private checkEntry;
|
|
339
|
+
private checkRelation;
|
|
340
|
+
private checkUniqueConstraints;
|
|
341
|
+
private checkLocaleIdConsistency;
|
|
342
|
+
private checkMarkdownSync;
|
|
343
|
+
private loadAssets;
|
|
344
|
+
/**
|
|
345
|
+
* After all ID fixes are collected in idRemap, propagate changes
|
|
346
|
+
* to ALL relation fields across ALL loaded content files.
|
|
347
|
+
*
|
|
348
|
+
* This is the critical two-way binding: when entry A's ID changes,
|
|
349
|
+
* every relation field in every model that points to A must be updated.
|
|
350
|
+
*/
|
|
351
|
+
private propagateIdChanges;
|
|
352
|
+
private fixDuplicateIds;
|
|
353
|
+
private writeDirtyFiles;
|
|
354
|
+
private addIssue;
|
|
355
|
+
private buildResult;
|
|
356
|
+
}
|
|
357
|
+
//#endregion
|
|
358
|
+
export { AssetEntry, ComponentId, ContentEntry, ContentrainConfig, ContentrainWriter, Doctor, FieldDefinition, FieldOptions, FieldType, FieldValidations, MDContentEntry, ModelMetadata, ToolResult, TransactionOptions, ValidationFieldError, ValidationResult, WorktreeContext, WriterConfig, createServer };
|
|
272
359
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/server.ts","../src/core/model/manager.ts","../src/core/content/manager.ts","../src/core/asset/manager.ts","../src/core/validation/validator.ts","../src/core/writer.ts"],"mappings":";;;UAEiB,aAAA;EACf,IAAA;EACA,WAAA;EACA,OAAA;EACA,IAAA;EACA,YAAA;EACA,IAAA;EACA,SAAA;EACA,YAAA;AAAA;AAAA,UAGe,eAAA;EACf,IAAA;EACA,WAAA;EACA,OAAA;EACA,OAAA;EACA,WAAA,EAAa,WAAA;EACb,SAAA,EAAW,SAAA;EACX,OAAA,EAAS,YAAA;EACT,WAAA,EAAa,gBAAA;EACb,MAAA;EACA,YAAA;AAAA;AAAA,KAGU,SAAA;AAAA,KAEA,WAAA;AAAA,UAQK,YAAA;EACf,aAAA;IAAkB,KAAA;EAAA;EAClB,eAAA;IACE,KAAA;IACA,IAAA,GAAO,MAAA;MAAiB,KAAA;IAAA;EAAA;EAE1B,SAAA;IACE,KAAA;IACA,IAAA;MACE,SAAA;QAAa,KAAA;MAAA;IAAA;EAAA;EAAA,CAGhB,GAAA;AAAA;AAAA,UAGc,gBAAA;EACf,gBAAA;IAAqB,KAAA;EAAA;EACrB,cAAA;IAAmB,KAAA;EAAA;EAAA,CAClB,GAAA;AAAA;AAAA,UAKc,YAAA;EACf,EAAA;EACA,SAAA;EACA,SAAA;EACA,MAAA;EACA,SAAA;EAAA,CACC,GAAA;AAAA;AAAA,UAGc,cAAA,SAAuB,YAAA;EACtC,IAAA;EACA,IAAA;AAAA;AAAA,UAKe,UAAA;EACf,IAAA;EACA,QAAA;EACA,IAAA;EACA,GAAA;EACA,IAAA;IACE,IAAA;MACE,IAAA;MACA,KAAA;MACA,MAAA;IAAA;IAEF,SAAA;IACA,SAAA;EAAA;AAAA;AAAA,UAMa,iBAAA;EACf,UAAA;AAAA;AAAA,UAGe,YAAA;EACf,QAAA;EACA,MAAA;EACA,cAAA;EACA,MAAA;EACA,MAAA;IACE,IAAA;IACA,KAAA;EAAA;EAEF,YAAA;EACA,aAAA;EACA,MAAA;AAAA;AAAA,UAKe,eAAA;EACf,IAAA;EACA,MAAA;EACA,EAAA;AAAA;AAAA,UAGe,kBAAA;EACf,OAAA;AAAA;AAAA,UAKe,gBAAA;EACf,KAAA;EACA,MAAA,EAAQ,oBAAA;AAAA;AAAA,UAGO,oBAAA;EACf,OAAA;EACA,OAAA;EACA,IAAA;AAAA;AAAA,UAKe,UAAA;EACf,OAAA;EACA,IAAA;EACA,KAAA;AAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/server.ts","../src/core/model/manager.ts","../src/core/content/manager.ts","../src/core/asset/manager.ts","../src/core/validation/validator.ts","../src/core/writer.ts","../src/core/doctor.ts"],"mappings":"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"}
|