@contentful/mcp-server 1.3.0 → 1.4.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/build/tools/entries/createEntry.js +3 -12
- package/build/tools/entries/createEntry.js.map +1 -1
- package/build/tools/entries/updateEntry.js +7 -11
- package/build/tools/entries/updateEntry.js.map +1 -1
- package/build/types/taxonomySchema.js +24 -0
- package/build/types/taxonomySchema.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { createSuccessResponse, withErrorHandling, } from '../../utils/response.js';
|
|
3
3
|
import { BaseToolSchema, createToolClient } from '../../utils/tools.js';
|
|
4
|
+
import { EntryMetadataSchema } from '../../types/taxonomySchema.js';
|
|
4
5
|
export const CreateEntryToolParams = BaseToolSchema.extend({
|
|
5
6
|
contentTypeId: z
|
|
6
7
|
.string()
|
|
@@ -8,17 +9,7 @@ export const CreateEntryToolParams = BaseToolSchema.extend({
|
|
|
8
9
|
fields: z
|
|
9
10
|
.record(z.any())
|
|
10
11
|
.describe('The field values for the new entry. Keys should be field IDs and values should be the field content.'),
|
|
11
|
-
metadata:
|
|
12
|
-
.object({
|
|
13
|
-
tags: z.array(z.object({
|
|
14
|
-
sys: z.object({
|
|
15
|
-
type: z.literal('Link'),
|
|
16
|
-
linkType: z.literal('Tag'),
|
|
17
|
-
id: z.string(),
|
|
18
|
-
}),
|
|
19
|
-
})),
|
|
20
|
-
})
|
|
21
|
-
.optional(),
|
|
12
|
+
metadata: EntryMetadataSchema,
|
|
22
13
|
});
|
|
23
14
|
async function tool(args) {
|
|
24
15
|
const params = {
|
|
@@ -31,7 +22,7 @@ async function tool(args) {
|
|
|
31
22
|
contentTypeId: args.contentTypeId,
|
|
32
23
|
}, {
|
|
33
24
|
fields: args.fields,
|
|
34
|
-
metadata: args.metadata,
|
|
25
|
+
...(args.metadata ? { metadata: args.metadata } : {}),
|
|
35
26
|
});
|
|
36
27
|
//return info about the entry that was created
|
|
37
28
|
return createSuccessResponse('Entry created successfully', { newEntry });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEntry.js","sourceRoot":"","sources":["../../../src/tools/entries/createEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"createEntry.js","sourceRoot":"","sources":["../../../src/tools/entries/createEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAC;IACzD,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,mDAAmD,CAAC;IAChE,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SACf,QAAQ,CACP,sGAAsG,CACvG;IACH,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC;AAIH,KAAK,UAAU,IAAI,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC;IAEF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAClD;QACE,GAAG,MAAM;QACT,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,EACD;QACE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CACF,CAAC;IAEF,8CAA8C;IAC9C,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC"}
|
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { createSuccessResponse, withErrorHandling, } from '../../utils/response.js';
|
|
3
3
|
import { BaseToolSchema, createToolClient } from '../../utils/tools.js';
|
|
4
|
+
import { EntryMetadataSchema } from '../../types/taxonomySchema.js';
|
|
4
5
|
export const UpdateEntryToolParams = BaseToolSchema.extend({
|
|
5
6
|
entryId: z.string().describe('The ID of the entry to update'),
|
|
6
7
|
fields: z
|
|
7
8
|
.record(z.any())
|
|
8
9
|
.describe('The field values to update. Keys should be field IDs and values should be the field content. Will be merged with existing fields.'),
|
|
9
|
-
metadata:
|
|
10
|
-
.object({
|
|
11
|
-
tags: z.array(z.object({
|
|
12
|
-
sys: z.object({
|
|
13
|
-
type: z.literal('Link'),
|
|
14
|
-
linkType: z.literal('Tag'),
|
|
15
|
-
id: z.string(),
|
|
16
|
-
}),
|
|
17
|
-
})),
|
|
18
|
-
})
|
|
19
|
-
.optional(),
|
|
10
|
+
metadata: EntryMetadataSchema,
|
|
20
11
|
});
|
|
21
12
|
async function tool(args) {
|
|
22
13
|
const params = {
|
|
@@ -36,12 +27,17 @@ async function tool(args) {
|
|
|
36
27
|
...(existingEntry.metadata?.tags || []),
|
|
37
28
|
...(args.metadata?.tags || []),
|
|
38
29
|
];
|
|
30
|
+
const allConcepts = [
|
|
31
|
+
...(existingEntry.metadata?.concepts || []),
|
|
32
|
+
...(args.metadata?.concepts || []),
|
|
33
|
+
];
|
|
39
34
|
// Update the entry with merged fields
|
|
40
35
|
const updatedEntry = await contentfulClient.entry.update(params, {
|
|
41
36
|
...existingEntry,
|
|
42
37
|
fields: mergedFields,
|
|
43
38
|
metadata: {
|
|
44
39
|
tags: allTags,
|
|
40
|
+
concepts: allConcepts,
|
|
45
41
|
},
|
|
46
42
|
});
|
|
47
43
|
//return info about the entry that was updated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateEntry.js","sourceRoot":"","sources":["../../../src/tools/entries/updateEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateEntry.js","sourceRoot":"","sources":["../../../src/tools/entries/updateEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC7D,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SACf,QAAQ,CACP,mIAAmI,CACpI;IACH,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC;AAIH,KAAK,UAAU,IAAI,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IAEF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhD,gCAAgC;IAChC,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE/D,iDAAiD;IACjD,MAAM,YAAY,GAAG;QACnB,GAAG,aAAa,CAAC,MAAM;QACvB,GAAG,IAAI,CAAC,MAAM;KACf,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;KAC/B,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;KACnC,CAAC;IAEF,sCAAsC;IACtC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;QAC/D,GAAG,aAAa;QAChB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,WAAW;SACtB;KACF,CAAC,CAAC;IAEH,8CAA8C;IAC9C,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC"}
|
|
@@ -40,4 +40,28 @@ export const ContentTypeMetadataSchema = z
|
|
|
40
40
|
taxonomy: z.array(TaxonomyValidationLinkSchema).optional(),
|
|
41
41
|
})
|
|
42
42
|
.optional();
|
|
43
|
+
/**
|
|
44
|
+
* Schema for entry type metadata
|
|
45
|
+
* Matches Contentful's MetadataProps type structure
|
|
46
|
+
*/
|
|
47
|
+
export const EntryMetadataSchema = z
|
|
48
|
+
.object({
|
|
49
|
+
tags: z.array(z.object({
|
|
50
|
+
sys: z.object({
|
|
51
|
+
type: z.literal('Link'),
|
|
52
|
+
linkType: z.literal('Tag'),
|
|
53
|
+
id: z.string(),
|
|
54
|
+
}),
|
|
55
|
+
})),
|
|
56
|
+
concepts: z
|
|
57
|
+
.array(z.object({
|
|
58
|
+
sys: z.object({
|
|
59
|
+
type: z.literal('Link'),
|
|
60
|
+
linkType: z.literal('TaxonomyConcept'),
|
|
61
|
+
id: z.string(),
|
|
62
|
+
}),
|
|
63
|
+
}))
|
|
64
|
+
.optional(),
|
|
65
|
+
})
|
|
66
|
+
.optional();
|
|
43
67
|
//# sourceMappingURL=taxonomySchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taxonomySchema.js","sourceRoot":"","sources":["../../src/types/taxonomySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC1D,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KACjE,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,mCAAmC;IACnC,yCAAyC;CAC1C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC;KACD,QAAQ,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"taxonomySchema.js","sourceRoot":"","sources":["../../src/types/taxonomySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC1D,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KACjE,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,mCAAmC;IACnC,yCAAyC;CAC1C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,KAAK,CACX,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,CAAC;KACH,CAAC,CACH;IACD,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,CAAC;KACH,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC;KACD,QAAQ,EAAE,CAAC"}
|