# Sanity

Hosted structured-content backend with an open-source Studio and an official remote MCP server.

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.

Alternative to: Contentful

- Capabilities: adaptable, operable
- Vertical: content-publishing
- Shape: product
- Form factor: web-app
- Execution model: deterministic
- Provenance: human-written (recorded, never ranked)
- Repo: https://github.com/sanity-io/sanity (MIT), 6309 stars, last commit 2026-09-03
- Last activity: 2026-09-03
- Page: apps/sanity-io--sanity.html
- JSON: apps/sanity-io--sanity.json

## Use it when

- 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

## 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

## Editions

- Free: Free, open source
  - source: https://github.com/sanity-io/sanity
  - installable: npm create sanity@latest
  - hosted: https://www.sanity.io/pricing
- Growth: $15 per month, closed source
  - hosted: https://www.sanity.io/pricing
- Enterprise: Free, closed source

## Adaptable: make it yours

Effort: light-edit (5 things to edit)

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.

- Env vars: SANITY_STUDIO_PROJECT_ID, SANITY_STUDIO_DATASET
- Config files: sanity.config.ts, sanity.cli.ts, schemaTypes/
- Prompt files: none
- Accounts you'll need: Sanity

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://mcp.sanity.io (published by the builder, remote).

### Reach (partial coverage)

- Query content with GROQ: reachable. MCP docs: GROQ query execution and document retrieval
- Create, patch, publish, and unpublish documents: reachable. MCP docs: document creation, patching, publishing, unpublishing
- Stage changes as content releases: reachable. MCP docs: release management (create, list, publish, discard)
- Deploy schema changes: reachable. MCP docs: schema deployment and management
- Deploy the Studio: reachable. MCP docs: Studio deployment
- Manage datasets, projects, and CORS: reachable. MCP docs: dataset and project management, CORS origin configuration
- Generate and transform images: reachable. MCP docs: generate_image, transform_image; consume AI credits
- Customize the Studio UI and structure: not reachable. sanity.config.ts is code shipped with the Studio, not an MCP operation
- Real-time collaborative editing and presence: not reachable. Studio feature; no MCP tool
- Comments and tasks on documents: not reachable. not in MCP tool list; also gated to Growth and Enterprise per pricing page

## Code stack

- Languages: TypeScript
- Frameworks: React, Vite
- Package manager: pnpm
- Database: Sanity Content Lake (hosted)
- Hosting target: sanity.studio hosting, any static host

## Model stack

- Providers: Sanity AI credits (image generation, AI-assisted versions)
- Models: none
- Keys you need (names only): none
- Prompts live in: none
- Tools: GROQ query, create/patch/publish document, release management, schema deploy, studio deploy, generate_image, transform_image, semantic search

## Skills

contributor: Repo tooling for Sanity contributors: code review, simplification, performance, Playwright practices.
- Paths: .agents/skills/*/SKILL.md

## Evidence and confidence

- formFactor: README: Studio is an open-source single-page application; content hosted in Content Lake (confidence 0.85)
- executionModel: Studio and API are deterministic; AI tools are optional and metered (confidence 0.8)
- operability: sanity.io/docs/compute-and-ai/mcp-server documents mcp.sanity.io with OAuth or token auth, published by Sanity (confidence 0.9)
- effort: README: 'complete studio customization framework'; sanity.config.ts is the documented entry point (confidence 0.8)
- editions: sanity.io/pricing: Free $0, Growth $15 per seat per month, Enterprise custom; Studio MIT on GitHub (confidence 0.8)
- active: pushedAt 2026-09-03
- provenance: company-built product since 2017; no vibe-coded claim (confidence 0.9)
- reach:  (confidence 0.85)

## Open questions

- 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

- https://github.com/sanity-io/sanity (sourcing:content-publishing:registries)
- https://www.sanity.io/docs/compute-and-ai/mcp-server (analysis:content-publishing)
- https://www.sanity.io/pricing (analysis:content-publishing)
