{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "sanity-io--sanity",
    "name": "Sanity",
    "tagline": "Hosted structured-content backend with an open-source Studio and an official remote MCP server.",
    "shortTagline": "Hosted structured-content backend",
    "description": "Sanity pairs a hosted content store (Content Lake, GROQ queries) with Sanity Studio, an MIT-licensed React editing app you configure in code. The Builder runs an MCP server at mcp.sanity.io that lets an agent query, create, patch, publish, and release documents and deploy schema. Adapting means editing the Studio config and schema; the backend itself is closed.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "content-publishing",
    "alternativeTo": [
      "Contentful"
    ],
    "shape": "product",
    "formFactor": "web-app",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "TypeScript"
      ],
      "frameworks": [
        "React",
        "Vite"
      ],
      "packageManager": "pnpm",
      "database": [
        "Sanity Content Lake (hosted)"
      ],
      "hostingTarget": [
        "sanity.studio hosting",
        "any static host"
      ]
    },
    "modelStack": {
      "providers": [
        "Sanity AI credits (image generation, AI-assisted versions)"
      ],
      "models": [],
      "requiredKeys": [],
      "promptLocations": [],
      "tools": [
        "GROQ query",
        "create/patch/publish document",
        "release management",
        "schema deploy",
        "studio deploy",
        "generate_image",
        "transform_image",
        "semantic search"
      ]
    },
    "repos": [
      {
        "url": "https://github.com/sanity-io/sanity",
        "owner": "sanity-io",
        "name": "sanity",
        "license": "MIT",
        "stars": 6309,
        "lastCommit": "2026-09-03"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://mcp.sanity.io",
      "official": true,
      "hosted": "remote"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Query content with GROQ",
        "reachable": true,
        "evidence": "MCP docs: GROQ query execution and document retrieval"
      },
      {
        "job": "Create, patch, publish, and unpublish documents",
        "reachable": true,
        "evidence": "MCP docs: document creation, patching, publishing, unpublishing"
      },
      {
        "job": "Stage changes as content releases",
        "reachable": true,
        "evidence": "MCP docs: release management (create, list, publish, discard)"
      },
      {
        "job": "Deploy schema changes",
        "reachable": true,
        "evidence": "MCP docs: schema deployment and management"
      },
      {
        "job": "Deploy the Studio",
        "reachable": true,
        "evidence": "MCP docs: Studio deployment"
      },
      {
        "job": "Manage datasets, projects, and CORS",
        "reachable": true,
        "evidence": "MCP docs: dataset and project management, CORS origin configuration"
      },
      {
        "job": "Generate and transform images",
        "reachable": true,
        "evidence": "MCP docs: generate_image, transform_image; consume AI credits"
      },
      {
        "job": "Customize the Studio UI and structure",
        "reachable": false,
        "evidence": "sanity.config.ts is code shipped with the Studio, not an MCP operation"
      },
      {
        "job": "Real-time collaborative editing and presence",
        "reachable": false,
        "evidence": "Studio feature; no MCP tool"
      },
      {
        "job": "Comments and tasks on documents",
        "reachable": false,
        "evidence": "not in MCP tool list; also gated to Growth and Enterprise per pricing page"
      }
    ],
    "editions": [
      {
        "name": "Free",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/sanity-io/sanity"
          },
          {
            "kind": "installable",
            "url": "https://www.sanity.io/docs/getting-started-with-sanity",
            "command": "npm create sanity@latest"
          },
          {
            "kind": "hosted",
            "url": "https://www.sanity.io/pricing"
          }
        ]
      },
      {
        "name": "Growth",
        "price": {
          "amount": 15,
          "currency": "USD",
          "period": "month"
        },
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://www.sanity.io/pricing"
          }
        ]
      },
      {
        "name": "Enterprise",
        "price": null,
        "open": false,
        "distributions": []
      }
    ],
    "skills": {
      "kind": "contributor",
      "paths": [
        ".agents/skills/*/SKILL.md"
      ],
      "install": null,
      "note": "Repo tooling for Sanity contributors: code review, simplification, performance, Playwright practices."
    },
    "customization": {
      "summary": "The Studio is yours: sanity.config.ts sets project, dataset, plugins, structure, and theming; schemaTypes/ defines document types in TypeScript. Project ID and dataset come from SANITY_STUDIO_ prefixed env vars. Adapting means writing schema code, so this is a light edit rather than pure config. The content backend cannot be self-hosted.",
      "envVars": [
        "SANITY_STUDIO_PROJECT_ID",
        "SANITY_STUDIO_DATASET"
      ],
      "configFiles": [
        "sanity.config.ts",
        "sanity.cli.ts",
        "schemaTypes/"
      ],
      "promptFiles": [],
      "effort": "light-edit",
      "editCount": 5
    },
    "useWhen": [
      "I want a structured content backend my agent can write to and my site reads from, without running a database",
      "I need editors to have a real CMS UI while my agent bulk-creates and publishes content"
    ],
    "accounts": [
      "Sanity"
    ],
    "active": true,
    "lastActivity": "2026-09-03",
    "gotchas": [
      "The pricing page lists the MCP server under Enterprise only, while the MCP docs show any project configuring it with npx sanity mcp configure; confirm before relying on it on the Free plan",
      "Content Lake is hosted and closed; only the Studio is open source",
      "generate_image, transform_image, and AI-assisted versions consume AI credits (1,000 per month on Free)",
      "The repo's .env.example is for end-to-end tests, not for adapting the Studio",
      "Free plan: 10,000 documents, 250k API requests per month, public datasets only"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 2
    },
    "evidence": {
      "formFactor": "README: Studio is an open-source single-page application; content hosted in Content Lake",
      "executionModel": "Studio and API are deterministic; AI tools are optional and metered",
      "operability": "sanity.io/docs/compute-and-ai/mcp-server documents mcp.sanity.io with OAuth or token auth, published by Sanity",
      "effort": "README: 'complete studio customization framework'; sanity.config.ts is the documented entry point",
      "editions": "sanity.io/pricing: Free $0, Growth $15 per seat per month, Enterprise custom; Studio MIT on GitHub",
      "active": "pushedAt 2026-09-03",
      "provenance": "company-built product since 2017; no vibe-coded claim"
    },
    "confidence": {
      "formFactor": 0.85,
      "executionModel": 0.8,
      "operability": 0.9,
      "effort": 0.8,
      "reach": 0.85,
      "editions": 0.8,
      "provenance": 0.9
    },
    "openQuestions": [
      "Is the MCP server usable on the Free plan? Pricing page says Enterprise only; docs imply otherwise. Operable fit is 2 until resolved, 3 if free",
      "Confirm the SANITY_STUDIO_ env var names from the Studio environment docs"
    ],
    "sources": [
      {
        "url": "https://github.com/sanity-io/sanity",
        "foundBy": "sourcing:content-publishing:registries"
      },
      {
        "url": "https://www.sanity.io/docs/compute-and-ai/mcp-server",
        "foundBy": "analysis:content-publishing"
      },
      {
        "url": "https://www.sanity.io/pricing",
        "foundBy": "analysis:content-publishing"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Official remote MCP with broad content Reach; Studio is adaptable in code. Fit held at 2/2 because the backend is closed and MCP plan gating is disputed between the pricing page and the docs.",
      "disputed": [
        "MCP plan availability: pricing page says Enterprise only; MCP docs show general CLI setup"
      ]
    },
    "url": "apps/sanity-io--sanity.html",
    "coverage": "partial",
    "paid": true,
    "source": "research/verified/sanity-io--sanity.json"
  }
}
