@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.
@@ -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: z
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;AAExE,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,CAAC;SACR,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CACX,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;aACf,CAAC;SACH,CAAC,CACH;KACF,CAAC;SACD,QAAQ,EAAE;CACd,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,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,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
+ {"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: z
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;AAExE,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,CAAC;SACR,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CACX,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;aACf,CAAC;SACH,CAAC,CACH;KACF,CAAC;SACD,QAAQ,EAAE;CACd,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,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;SACd;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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/mcp-server",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/contentful/contentful-mcp-server"