{
  "name": "io.github.contentful/contentful-mcp-server",
  "description": "Contentful's official MCP server covers the Content Management API end to end: 73 tools spanning entries, assets, content types, editor interfaces, AI actions, spaces and environments. It is the deepest headless-CMS surface in this directory, and the only one where an agent can change the content *model* — create a content type, add and omit fields, update the editor interface — rather than only the records inside it.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-09-17",
    "com.top-mcps/score": {
      "value": 79,
      "rubricVersion": "2026-09",
      "lastComputed": "2026-10-15T10:09:13.500Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-10-15T10:09:13.499Z",
      "githubStars": 60,
      "lastCommitAt": "2026-09-15T17:27:13Z",
      "npmWeeklyDownloads": 2921,
      "githubFetchedAt": "2026-10-15T10:09:13.499Z",
      "npmFetchedAt": "2026-10-15T10:09:13.499Z",
      "githubRepo": "contentful/contentful-mcp-server",
      "npmPackage": "@contentful/mcp-server"
    }
  },
  "repository": {
    "url": "https://github.com/contentful/contentful-mcp-server",
    "source": "github"
  },
  "homepage": "https://www.contentful.com/developers/docs/",
  "author": {
    "name": "Contentful"
  },
  "packages": [
    {
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "identifier": "@contentful/mcp-server",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "name": "CONTENTFUL_MANAGEMENT_ACCESS_TOKEN",
          "description": "CONTENTFUL_MANAGEMENT_ACCESS_TOKEN — required credential for Contentful.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "SPACE_ID",
          "description": "SPACE_ID — required credential for Contentful.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "ENVIRONMENT_ID",
          "description": "ENVIRONMENT_ID — required credential for Contentful.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "CONTENTFUL_HOST",
          "description": "CONTENTFUL_HOST — required credential for Contentful.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "get_initial_context",
        "description": "Documented mandatory first call — loads space context and usage rules.",
        "sideEffect": "read"
      },
      {
        "name": "search_entries",
        "description": "Search entries in a space and environment.",
        "sideEffect": "read"
      },
      {
        "name": "semantic_search",
        "description": "Find entries by meaning using vector search.",
        "sideEffect": "network"
      },
      {
        "name": "create_entry",
        "description": "Create an entry; requires the contentTypeId, not the name.",
        "sideEffect": "write"
      },
      {
        "name": "update_entry",
        "description": "Update an entry; requires the sys.version read from get_entry.",
        "sideEffect": "write"
      },
      {
        "name": "publish_entry",
        "description": "Publish one entry or up to 100 in one call.",
        "sideEffect": "write"
      },
      {
        "name": "get_entry_snapshot",
        "description": "List or read version snapshots of an entry for rollback.",
        "sideEffect": "read"
      },
      {
        "name": "upload_asset",
        "description": "Upload a new asset to the space.",
        "sideEffect": "write"
      },
      {
        "name": "create_content_type",
        "description": "Create a content type with a display field and field set.",
        "sideEffect": "write"
      },
      {
        "name": "update_content_type",
        "description": "Merge field updates into an existing content type draft.",
        "sideEffect": "write"
      },
      {
        "name": "delete_content_type_field",
        "description": "Permanently mark a field deleted. Irreversible once published.",
        "sideEffect": "write"
      },
      {
        "name": "update_editor_interface",
        "description": "Configure field widgets, sidebar and editor layout for a content type.",
        "sideEffect": "write"
      }
    ],
    "toolsListedCount": 12,
    "toolsReportedTotal": 73,
    "security": {
      "scope": "read-write",
      "sandbox": "No sandbox, but Contentful environments serve the purpose — point `ENVIRONMENT_ID` at a non-master environment first.",
      "gotchas": [
        "The CMA token is space-wide. Scope the agent by pointing it at a sandbox environment, not by trusting the token.",
        "Delete tools are two-phase — the first call returns a confirmation token rather than deleting — but `delete_content_type_field` is described by the vendor as destructive and irreversible once published.",
        "`update_entry` needs the `sys.version` from a prior `get_entry`. An agent that skips the read gets a version conflict, which is the correct behaviour and worth leaving in place."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/contentful",
    "markdown": "https://top-mcps.com/mcp/contentful.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
