@contentful/mcp-server 1.12.4-next.2 → 1.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/README.md CHANGED
@@ -71,6 +71,7 @@ npm run build
71
71
  | `CONTENTFUL_HOST` | ❌ No | `api.contentful.com` | Contentful API host |
72
72
  | `NODE_ENV` | ❌ No | `production` | Node Environment to run in |
73
73
  | `MAX_BULK_SIZE` | ❌ No | `10` | Maximum number of IDs allowed in a single bulk-operation tool call (1–100). Caps publish/unpublish/archive/unarchive on entries and assets. Mitigates accidental mass operations from AI hallucinations. |
74
+ | `ENABLE_EXO_TOOLS` | ❌ No | `false` | Opt in to Experience Orchestration (ExO) tools. Set to `true` to register the ExO tool collections (component types, data assemblies, experiences, templates, fragments). Also requires the token to hold the `exoM1` entitlement in at least one accessible org — both gates must pass. |
74
75
 
75
76
  ### Configuration
76
77
 
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ function registerAllResources(_server) {
21
21
 
22
22
  // src/tools/register.ts
23
23
  init_esm_shims();
24
- import { ContentfulMcpTools } from "@contentful/mcp-tools";
24
+ import { ContentfulMcpTools, hasExoM1Entitlement } from "@contentful/mcp-tools";
25
25
 
26
26
  // src/config/env.ts
27
27
  init_esm_shims();
@@ -4106,7 +4106,7 @@ var EnvSchema = external_exports.object({
4106
4106
  ),
4107
4107
  ORGANIZATION_ID: external_exports.string().optional().describe("Contentful organization ID"),
4108
4108
  ENABLE_EXO_TOOLS: external_exports.string().optional().transform((v) => v === "true").describe(
4109
- 'Opt in to Experience Orchestration (ExO) tools. Set to "true" to register the ExO tool collections (component types, data assemblies, experiences, templates, fragments). Defaults to off.'
4109
+ 'Opt in to Experience Orchestration (ExO) tools. Set to "true" to register the ExO tool collections (component types, data assemblies, experiences, templates, fragments). Tools register only if the token also holds the exoM1 entitlement in at least one accessible org \u2014 both gates must pass. Defaults to off.'
4110
4110
  ),
4111
4111
  CONTENTFUL_DELIVERY_TOKEN: external_exports.string().optional().describe(
4112
4112
  "Contentful CDA token (used with export_space to export only published content)"
@@ -4126,7 +4126,7 @@ init_esm_shims();
4126
4126
 
4127
4127
  // src/mcpVersion.ts
4128
4128
  init_esm_shims();
4129
- var MCP_VERSION = "1.12.4-next.1";
4129
+ var MCP_VERSION = "1.13.0";
4130
4130
 
4131
4131
  // src/getVersion.ts
4132
4132
  var getVersion = () => {
@@ -4134,7 +4134,7 @@ var getVersion = () => {
4134
4134
  };
4135
4135
 
4136
4136
  // src/tools/register.ts
4137
- function registerAllTools(server) {
4137
+ async function registerAllTools(server) {
4138
4138
  if (!env.success || !env.data) {
4139
4139
  throw new Error("Environment variables are not properly configured");
4140
4140
  }
@@ -4154,7 +4154,7 @@ function registerAllTools(server) {
4154
4154
  protectedEnvironments,
4155
4155
  maxBulkSize
4156
4156
  };
4157
- const registerExoTools = env.data.ENABLE_EXO_TOOLS;
4157
+ const registerExoTools = env.data.ENABLE_EXO_TOOLS && await hasExoM1Entitlement(baseConfig);
4158
4158
  const tools = new ContentfulMcpTools({
4159
4159
  ...baseConfig,
4160
4160
  exoToolsRegistered: registerExoTools
@@ -4253,7 +4253,7 @@ async function initializeServer() {
4253
4253
  name: MCP_SERVER_NAME,
4254
4254
  version: getVersion()
4255
4255
  });
4256
- registerAllTools(server);
4256
+ await registerAllTools(server);
4257
4257
  registerAllPrompts(server);
4258
4258
  registerAllResources(server);
4259
4259
  return server;