{
  "name": "io.github.l33tdawg/strapi-mcp",
  "description": "A community MCP for Strapi, the self-hosted headless CMS teams pick when the content store has to run on their own infrastructure. Twenty tools cover the content lifecycle — list types, read, create, update and delete entries, publish and unpublish, upload media, connect and disconnect relations — plus admin-level schema work: create, update and delete content types and components.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-09-17",
    "com.top-mcps/score": {
      "value": 50,
      "rubricVersion": "2026-09",
      "lastComputed": "2026-10-15T10:09:13.501Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-10-15T10:09:13.500Z",
      "githubStars": 25,
      "lastCommitAt": "2025-07-25T09:47:31Z",
      "npmWeeklyDownloads": 1425,
      "githubFetchedAt": "2026-10-15T10:09:13.500Z",
      "npmFetchedAt": "2026-10-15T10:09:13.500Z",
      "githubRepo": "l33tdawg/strapi-mcp",
      "npmPackage": "strapi-mcp"
    }
  },
  "repository": {
    "url": "https://github.com/l33tdawg/strapi-mcp",
    "source": "github"
  },
  "homepage": "https://docs.strapi.io/",
  "author": {
    "name": "Community (l33tdawg)"
  },
  "packages": [
    {
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "identifier": "strapi-mcp@latest",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "name": "STRAPI_URL",
          "description": "STRAPI_URL — required credential for Strapi.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "STRAPI_ADMIN_EMAIL",
          "description": "STRAPI_ADMIN_EMAIL — required credential for Strapi.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "STRAPI_ADMIN_PASSWORD",
          "description": "STRAPI_ADMIN_PASSWORD — required credential for Strapi.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "list_content_types",
        "description": "List every content type in the Strapi instance.",
        "sideEffect": "read"
      },
      {
        "name": "get_content_type_schema",
        "description": "Return fields, types and relations for one content type.",
        "sideEffect": "read"
      },
      {
        "name": "get_entries",
        "description": "List entries with filtering, pagination, sorting and relation population.",
        "sideEffect": "read"
      },
      {
        "name": "create_entry",
        "description": "Create an entry for a content type.",
        "sideEffect": "write"
      },
      {
        "name": "update_entry",
        "description": "Update an existing entry by ID.",
        "sideEffect": "write"
      },
      {
        "name": "delete_entry",
        "description": "Delete a specific entry.",
        "sideEffect": "write"
      },
      {
        "name": "publish_entry",
        "description": "Publish an entry.",
        "sideEffect": "write"
      },
      {
        "name": "unpublish_entry",
        "description": "Unpublish an entry.",
        "sideEffect": "write"
      },
      {
        "name": "upload_media_from_path",
        "description": "Upload media from a local path, up to 10MB, avoiding base64 bloat.",
        "sideEffect": "write"
      },
      {
        "name": "connect_relation",
        "description": "Connect related entries to a relation field.",
        "sideEffect": "write"
      },
      {
        "name": "create_content_type",
        "description": "Create a content type. Requires admin privileges.",
        "sideEffect": "write"
      },
      {
        "name": "delete_content_type",
        "description": "Delete a content type. Requires admin privileges.",
        "sideEffect": "write"
      }
    ],
    "toolsListedCount": 12,
    "toolsReportedTotal": 20,
    "security": {
      "scope": "read-write",
      "sandbox": "No sandbox. Run it against a local or staging Strapi instance before pointing it at production.",
      "gotchas": [
        "The schema tools need Strapi admin credentials — email and password, not a scoped API token. That is a full admin grant sitting in an MCP config.",
        "`delete_content_type` drops the type and, with it, the entries modelled on it. There is no confirmation step.",
        "The API-token fallback works but has limited permissions; schema access in particular will fail, which reads as a missing tool rather than a permission error."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/strapi",
    "markdown": "https://top-mcps.com/mcp/strapi.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
