Collection of resources to help AI agents build better with Sanity.
Start reading — 1 minnpx skills add sanity-io/agent-toolkit/plugin marketplace add sanity-io/agent-toolkitMIT197 stars7,249 wordsUpdated 6 November 2026
Collection of resources to help AI agents build better with Sanity (opens in a new tab). Supports Cursor, Claude Code, Codex, VS Code, Lovable, v0, Replit, OpenCode, and any other editor/agent compatible with MCP or Agent Skills (opens in a new tab).
plugin.json, skills/, and mcp.json components for any Agent Plugins-compatible client.Choose your path based on how you want agents to work with Sanity:
Give agents direct access to Sanity projects and always up-to-date agent rules via the MCP server.
Run in terminal to detect and configure MCP for Cursor, Claude Code and VS Code automatically:
npx sanity@latest mcp configureUses your logged-in CLI user for authentication — no manual tokens or OAuth needed.
One-click install:
(opens in a new tab)
Or manually: Open Command Palette (Cmd+Shift+P / Ctrl+Shift+P) → View: Open MCP Settings → + New MCP Server → add to mcp.json:
{
"mcpServers": {
"Sanity": {
"type": "http",
"url": "https://mcp.sanity.io"
}
}
}Run in terminal. Authenticate with OAuth on next launch:
claude mcp add Sanity -t http https://mcp.sanity.io --scope userRun in terminal. Authenticate with OAuth on next launch:
codex mcp add Sanity --url https://mcp.sanity.ioOr manually add to ~/.codex/config.toml:
[mcp_servers.Sanity]
url = "https://mcp.sanity.io"Open Command Palette (Cmd+Shift+P / Ctrl+Shift+P) → MCP: Open User Configuration → add:
{
"servers": {
"Sanity": {
"type": "http",
"url": "https://mcp.sanity.io"
}
}
}Sanity is available as a prebuilt chat connector in Lovable:
In your next prompt, reference your Sanity project or ask the agent to read your schema.
See the Lovable MCP documentation (opens in a new tab) or Sanity + Lovable guide (opens in a new tab) for more details.
In the prompt input field, click Prompt Tools → MCPs → Add New → Select Sanity → Authorize → Authenticate with OAuth.
Go to Integrations Page (opens in a new tab) → scroll to MCP Servers for Replit Agent → Add MCP server → Enter Sanity as name and https://mcp.sanity.io as Server URL → Test & Save → Authenticate with OAuth.
Add to your opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sanity": {
"type": "remote",
"url": "https://mcp.sanity.io",
"oauth": {}
}
}
}Then run: opencode mcp auth sanity
For any MCP-compatible client, add https://mcp.sanity.io as the server URL.
If your client doesn’t support remote MCP servers, use a proxy like mcp-remote:
{
"mcpServers": {
"Sanity": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.sanity.io", "--transport", "http-only"]
}
}
}Manual MCP configuration uses OAuth by default. You can use token auth instead by setting an Authorization: Bearer <token> header in the MCP config. If authentication fails after CLI setup, rerun npx sanity@latest mcp configure and restart your MCP client. For OAuth reset issues, Cursor provides Cursor: Clear All MCP Tokens and VS Code provides Authentication: Remove Dynamic Authentication Providers.
See the Sanity MCP docs (opens in a new tab) for authorization options and troubleshooting.
Install best practices skills that work with any Agent Skills (opens in a new tab)-compatible agent.
npx skills add sanity-io/agent-toolkitSee Option 3 for plugin installation.
Install the Sanity plugin to get MCP server, agent skills, and commands. Available on the Claude Code marketplace (opens in a new tab), Cursor Marketplace (opens in a new tab), or from this repo as an Agent Plugin (opens in a new tab).
The Sanity plugin is listed on the official Anthropic plugin marketplace (opens in a new tab). The official marketplace (claude-plugins-official) is pre-registered when you start Claude Code — you do not need to add a custom marketplace.
Install from Claude Code:
/plugin install sanity@claude-plugins-officialIf the plugin is not found, refresh the marketplace catalog and retry:
/plugin marketplace update claude-plugins-officialThen run /reload-plugins to activate without restarting.
Alternative: interactive install
/plugin and open the Discover tab.claude/settings.json/reload-plugins to activate without restartingVerify installation: Ask Claude Code: “which skills do you have access to?”
You should see the Sanity skills listed.
Start using: Use natural language and skills activate automatically:
Help me create a blog post schema in Sanity
Review my GROQ query and Next.js Visual Editing setup
Or run /sanity to explore all capabilities.
Install from the Cursor Marketplace (opens in a new tab) by running this in Cursor chat:
/add-plugin sanityVerify installation: Ask Cursor: “which skills do you have access to?”
You should see the Sanity skills listed.
Start using: Use natural language and skills activate automatically:
Help me create a blog post schema in Sanity
Review my GROQ query and Next.js Visual Editing setup
codex plugin marketplace add sanity-io/agent-toolkitInstall the plugin from Codex’s plugin directory (select the Sanity Agent Toolkit marketplace, then install Sanity).
Restart Codex. Verify by asking: “which skills do you have access to?” — you should see the Sanity skills listed.
Install the skill references locally to teach your editor Sanity best practices:
skills/sanity-best-practices/ to your project.AGENTS.md to your project root to act as a knowledge router.With MCP connected, your AI can use tools like:
query_documents — run GROQ queries directlycreate_documents — create draft documents from structured content, or version documents when a release ID is providedpatch_documents — surgical edits to existing documents; published documents are edited by creating or updating draftspublish_documents / unpublish_documents — manage document lifecycledeploy_schema / get_schema — deploy MCP-managed schemas and inspect deployed schemasdeploy_studio — deploy a hosted Studio bound to an MCP-managed schemacreate_release / list_releases — create and inspect Content Releasescreate_version — create version documents for releasesgenerate_image / transform_image — AI image generation and editingwhoami — verify the authenticated Sanity userget_project_studios — list Studio applications linked to a projectsearch_docs / read_docs — search and read Sanity documentationlist_sanity_rules / get_sanity_rules — load agent rules on demandgive_feedback — report MCP tool errors, missing capabilities, confusing output, or documentation issuesMCP-managed schemas are resolved before Studio-deployed and legacy schemas. If you deploy schema changes with deploy_schema, redeploy any matching MCP-managed Studio with deploy_studio so it picks up the latest schema. generate_image, transform_image, and create_version with an instruction consume Sanity AI credits.
See the full list of available tools (opens in a new tab).
Best practices skills that agents like Claude Code, Cursor, GitHub Copilot, etc. can discover and use automatically. Skills follow the Agent Skills (opens in a new tab) format. See Option 2 for installation.
| Skill | Description |
|---|---|
| sanity-best-practices | GROQ performance, schema design, Visual Editing, images, Portable Text, Studio, TypeGen, localization, migrations, and framework integration guides |
| content-modeling-best-practices | Structured content principles: separation of concerns, references vs embedding, content reuse |
| seo-aeo-best-practices | SEO/AEO with EEAT principles, structured data (JSON-LD), technical SEO patterns |
| content-experimentation-best-practices | A/B testing methodology, statistical foundations, experiment design |
| sanity-singletons | First-class singleton documents via document.singletons, Structure helpers, and migrating from userland or plugin-based singletons |
| sanity-form-component-suspense | Fix custom Studio form components (inputs, fields, array items) that suspend without their own Suspense boundary, causing layout shift or blocking new documents |
The onboarding guide follows three phases:
Just say: “Get started with Sanity” to begin.
| Command | What it does |
|---|---|
/sanity | List available skills and help topics |
/sanity-review | Review code for Sanity best practices |
/typegen | Run TypeGen and troubleshoot issues |
/deploy-schema | Deploy schema with verification |
Note: The reference files in
skills/sanity-best-practices/references/are the canonical content for the Sanity MCP server’slist_sanity_rules/get_sanity_rulestools. Each file must have validnameanddescriptionfrontmatter — rule names are derived from filenames (e.g.,nextjs.md→nextjs).
sanity-io/agent-toolkit/
├── AGENTS.md # Knowledge router & agent behavior
├── README.md # This file
├── plugin.json # Portable Agent Plugins v1 manifest
├── mcp.json # Portable Agent Plugins v1 MCP configuration
├── .agents/plugins/ # Codex marketplace
│ └── marketplace.json # Codex marketplace metadata
├── .claude-plugin/ # Claude Code plugin configuration (distributed via claude-plugins-official)
│ ├── plugin.json # Plugin manifest (name: sanity)
│ └── marketplace.json # Marketplace manifest for repo-based discovery
├── .codex-plugin/ # Codex plugin configuration
│ └── plugin.json # Codex plugin manifest
├── .cursor-plugin/ # Cursor plugin configuration (distributed via cursor.com/marketplace)
│ ├── marketplace.json # Cursor marketplace metadata
│ └── plugin.json # Per-plugin manifest
├── .mcp.json # Legacy client MCP compatibility configuration
├── assets/ # Plugin branding
│ └── logo.svg # Sanity logo for marketplace display
├── commands/ # Agent commands
│ ├── sanity.md # /sanity help
│ ├── sanity-review.md # /sanity-review
│ ├── typegen.md # /typegen
│ └── deploy-schema.md # /deploy-schema
├── scripts/ # Validation and CI scripts
│ ├── validate-agent-plugin.mjs # Validate manifests against the v1 JSON Schemas
│ └── validate-cursor-plugin.mjs # Cursor plugin validator
└── skills/ # Agent skills (agentskills.io format)
├── sanity-best-practices/ # Comprehensive Sanity skill
│ ├── SKILL.md # Skill definition and quick reference
│ └── references/ # Canonical content (25 guides)
│ ├── get-started.md # Onboarding guide
│ ├── nextjs.md # Next.js integration
│ ├── groq.md # GROQ patterns & performance
│ ├── schema.md # Schema design & validation
│ └── ... # See SKILL.md for full index
├── content-modeling-best-practices/ # Modeling guidance + topic references
├── seo-aeo-best-practices/ # SEO/AEO guidance + topic references
├── content-experimentation-best-practices/ # Experiment design + stats references
├── sanity-singletons/ # First-class singleton documents (Studio 6.17+)
└── sanity-form-component-suspense/ # Suspense boundaries for custom form componentsAll skills use references/ for detailed content loaded on demand. The sanity-best-practices references are also the canonical source for the MCP server’s Sanity rules.
Found a better pattern? Missing a framework or best practice? Read the contributing guide (opens in a new tab) for how skills work and what makes a good contribution, then:
npm install.skills/<skill-name>/.npm run validate:all to check skill and plugin validity.License: MIT
main, last pushed 6 November 2026.SKILL.md, not by matching a directory convention. One layout observed: skills/*/SKILL.md..claude-plugin/marketplace.json by Sanity, declaring 1 plugin. It is read for editorial metadata only — never as the skill index, which is always the repository tree./sanity-io/agent-toolkit.md, and each skill at its own .md URL.