CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
sanity-io avatar

Sanity

sanity-io/agent-toolkit
41 toolsHTTPregistry active
Summary

Connects your MCP-compatible editor directly to Sanity's content management platform through their official API. Exposes tools for running GROQ queries, creating and patching documents, deploying schemas, managing publish states, and generating images. You can query content, push schema changes, and manipulate documents without leaving your editor. Includes comprehensive agent skills covering GROQ optimization, Visual Editing setup, Portable Text handling, and framework integrations. Works with Cursor, Claude Code, VS Code, and other MCP clients. Particularly solid if you're building content-heavy applications and want your AI assistant to understand Sanity's conventions around content modeling and performance patterns.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →

Tools

Public tool metadata for what this MCP can expose to an agent.

41 tools
get_schemaGet the full schema of the current Sanity workspace3 params

Get the full schema of the current Sanity workspace

Parameters* required
resourceobject
Resource information indicating which project id and dataset to target
typestring
Optional: Specific type name to fetch. If not provided, returns the full schema without detailed field definitions. Full field definitions are only available when requesting a specific type.
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
list_workspace_schemasGet a list of all available workspace schema names1 params

Get a list of all available workspace schema names

Parameters* required
resourceobject
Resource information indicating which project id and dataset to target
deploy_schemaDeploy Sanity schema directly to cloud (project and dataset). IMPORTANT: Only use this for projects WITHOUT a local Sanity Studio. If sanity.config.ts/js or a schema directory exists, generate local schema files instead. Can be called iteratively to add/overwrite types.3 params

Deploy Sanity schema directly to cloud (project and dataset). IMPORTANT: Only use this for projects WITHOUT a local Sanity Studio. If sanity.config.ts/js or a schema directory exists, generate local schema files instead. Can be called iteratively to add/overwrite types.

Parameters* required
resourceobject
Resource information indicating which project id and dataset to target
schemaDeclarationstring
Sanity schema declaration <syntax> - Requires literal values only: no spread operators, variables, dynamic expressions, imports, or function bodies - If your schema makes references to othe...
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
create_documents_from_jsonCreate one or more draft documents by directly providing JSON content. Creates drafts (drafts.* prefix) unless releaseId is specified for version creation.4 params

Create one or more draft documents by directly providing JSON content. Creates drafts (drafts.* prefix) unless releaseId is specified for version creation.

Parameters* required
documentsarray
Array of documents to create. Each document must have a type and content.
releaseIdstring
Optional release ID for creating versioned documents. If provided, documents will be created under the specified release version instead of as drafts.
resourceobject
Resource information indicating which project id and dataset to target
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
create_documents_from_markdownCreate one or more draft documents from Markdown content. Creates drafts (drafts.* prefix) unless releaseId is specified for version creation.4 params

Create one or more draft documents from Markdown content. Creates drafts (drafts.* prefix) unless releaseId is specified for version creation.

Parameters* required
documentsarray
Array of documents to create. Each document must have a type and Markdown content.
releaseIdstring
Optional release ID for creating versioned documents. If provided, documents will be created under the specified release version instead of as drafts.
resourceobject
Resource information indicating which project id and dataset to target
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
create_versionCreate a version document (versions.{releaseId}.* prefix) for a specific release. Versions are separate from drafts and published documents, and are used for scheduled release workflows.5 params

Create a version document (versions.{releaseId}.* prefix) for a specific release. Versions are separate from drafts and published documents, and are used for scheduled release workflows.

Parameters* required
documentIdsarray
Array of document IDs to create versions for (min 1, max 10)
instructionstring
Natural language instruction for internal Sanity AI to modify the document while creating the version. Use this to make content updates, rewrites, or improvements (e.g., "Update all dates to 2025",...
releaseIdstring
ID of the release to associate this version with
resourceobject
Resource information indicating which project id and dataset to target
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
patch_document_from_jsonApply precise modifications to document fields. When targeting a published document, this creates or updates a draft with the changes (published document remains unchanged). When targeting a draft or version, updates it in place.7 params

Apply precise modifications to document fields. When targeting a published document, this creates or updates a draft with the changes (published document remains unchanged). When targeting a draft or version, updates it in place.

Parameters* required
appendarray
Adds items to the END of an array. Can ONLY append to arrays that already EXIST in the document. CANNOT be used on non-array fields. Each append operation targets ONE specific array. For referen...
documentIdstring
Document ID to patch. For drafts use "drafts." prefix (e.g., "drafts.myDocId"). For published use ID directly.
releaseIdstring
Optional release ID for patching within a specific release. Omit for standard drafts.
resourceobject
Resource information indicating which project id and dataset to target
setarray
BATCHED operation that replaces field values at specified paths. Can set fields that don't exist yet - the field will be created based on schema. CRITICAL: 'set' is DESTRUCTIVE - scope matters: -...
unsetarray
Removes fields and array items from the document. Use UNSET to delete data - specify only what to remove. Array item removal: - Object arrays (with _key): "categories[_key==\"guide\"]", "tags[_ke...
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
patch_document_from_markdownPatch a specific field in a document using Markdown content6 params

Patch a specific field in a document using Markdown content

Parameters* required
documentIdstring
The ID of the document to patch
markdownstring
Markdown content to apply to the target field. The content will be converted to the appropriate structure based on the target field schema.
pathstring
Path to the field to update (e.g., "bio", "hero.contents")
releaseIdstring
Optional release ID for patching versioned documents. If provided, the document in the specified release will be patched.
resourceobject
Resource information indicating which project id and dataset to target
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
query_documentsQuery documents from Sanity using GROQ query language6 params

Query documents from Sanity using GROQ query language

Parameters* required
limitinteger
Maximum number of documents to returndefault: 10
paramsobject
Optional parameters for the GROQ query
perspectivevalue
Optional perspective to query from: "raw", "drafts", "published", or a release ID. Models should examine available releases and perspectives in the dataset before selecting one to ensure they are q...default: raw
querystring
Complete GROQ query (e.g. "*[_type == \"post\"][0...10]{title, _id}")
resourceobject
Resource information indicating which project id and dataset to target
singleboolean
Whether to return a single document or a listdefault: false
generate_imageGenerate a new image in a document using AI. When targeting a published document, this creates or updates a draft with the generated image (published document remains unchanged). The draft must be published separately to make changes live. For image arrays, automatically adds...5 params

Generate a new image in a document using AI. When targeting a published document, this creates or updates a draft with the generated image (published document remains unchanged). The draft must be published separately to make changes live. For image arrays, automatically adds...

Parameters* required
documentIdstring
The ID of the document containing the image
imagePathstring
Path to the image field in the document (e.g., "image", "hero.image", "images"). For arrays of images, provide the array field name and a new image will be added automatically.
instructionstring
Natural language instructions for generating the image. Acts like a prompt telling the internal Sanity AI what to do. Describe the complete image to create (e.g., "A serene mountain landscape at da...
resourceobject
Resource information indicating which project id and dataset to target
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
transform_imageTransform an existing image in a document using AI. When targeting a published document, this creates or updates a draft with the transformed image (published document remains unchanged). The draft must be published separately to make changes live. Note: Image transformation i...5 params

Transform an existing image in a document using AI. When targeting a published document, this creates or updates a draft with the transformed image (published document remains unchanged). The draft must be published separately to make changes live. Note: Image transformation i...

Parameters* required
documentIdstring
The ID of the document containing the image
imagePathstring
Path to the image field in the document (e.g., "image", "hero.image"). For image arrays, target with _key filtering: "images[_key==\"img1\"]".
instructionstring
Natural language instructions for transforming the image. Acts like a prompt telling the internal Sanity AI what to do. Describe the desired changes (e.g., "Make the background more vibrant and add...
resourceobject
Resource information indicating which project id and dataset to target
workspaceNamestring
Workspace name derived from the manifest, not document type. Derived from context or listSchemaWorkspacesTooldefault: default
get_documentFetch a single document by its exact ID. This is a direct ID lookup only - it does not search, filter, or query. Use when you have a specific document ID and need its full content.2 params

Fetch a single document by its exact ID. This is a direct ID lookup only - it does not search, filter, or query. Use when you have a specific document ID and need its full content.

Parameters* required
documentIdstring
The exact document ID to fetch. Must be a complete, known document ID (e.g., "movie-123" or "drafts.article-456"). This is a direct ID lookup only - it does not search, filter, or query.
resourceobject
Resource information indicating which project id and dataset to target
publish_documentsPublish one or more draft documents to make them live2 params

Publish one or more draft documents to make them live

Parameters* required
idsarray
IDs of the documents to publish
resourceobject
Resource information indicating which project id and dataset to target
unpublish_documentsUnpublish one or more published documents (moves them back to drafts)2 params

Unpublish one or more published documents (moves them back to drafts)

Parameters* required
idsarray
IDs of the documents to unpublish (published document IDs only)
resourceobject
Resource information indicating which project id and dataset to target
version_replace_documentReplace the contents of a document version with contents from another document5 params

Replace the contents of a document version with contents from another document

Parameters* required
idstring
ID of the published document
releaseIdstring
ID of the release that contains this document version
resourceobject
Resource information indicating which project id and dataset to target
sourceDocumentIdstring
ID of the document to copy contents from
typestring
discard_draftsDiscard one or more draft documents (deletes drafts while keeping published documents intact). Can also discard release versions if releaseId is provided.3 params

Discard one or more draft documents (deletes drafts while keeping published documents intact). Can also discard release versions if releaseId is provided.

Parameters* required
idsarray
IDs of the documents to discard (published IDs without drafts. prefix)
releaseIdstring
Optional release ID. If provided, discards the versions from this release instead of the draft versions.
resourceobject
Resource information indicating which project id and dataset to target
version_unpublish_documentMark a document to be unpublished when the release is run3 params

Mark a document to be unpublished when the release is run

Parameters* required
idstring
ID of the published document
releaseIdstring
ID of the release that contains this document version
resourceobject
Resource information indicating which project id and dataset to target
list_organizationsLists all organizations the user has access to in Sanity

Lists all organizations the user has access to in Sanity

No parameter schema in public metadata yet.

list_projectsLists all Sanity projects associated with your account

Lists all Sanity projects associated with your account

No parameter schema in public metadata yet.

get_project_studiosRetrieves all studio applications linked to a specific Sanity project1 params

Retrieves all studio applications linked to a specific Sanity project

Parameters* required
resourceobject
create_projectCreates a new Sanity project and initializes it with a dataset and API tokens4 params

Creates a new Sanity project and initializes it with a dataset and API tokens

Parameters* required
allowCredentialsboolean
Allow authenticated requests from this origin. Required for hosting a Studio. Defaults to truedefault: true
corsOriginstring
CORS origin to allow, in format protocol://hostname[:port]. Use * for wildcard. Common values: - http://localhost:3000: For embedding Studio in Next.js, React, or similar frameworks during local d...
displayNamestring
The display name for the new project
organizationIdstring
Organization ID to create the project in
add_cors_originAdds CORS origin(s) to allow client-side requests to a Sanity project3 params

Adds CORS origin(s) to allow client-side requests to a Sanity project

Parameters* required
allowCredentialsboolean
Allow authenticated requests from this origin. Required for hosting a Studio or making authenticated API requests. Defaults to true.default: true
originstring
CORS origin to allow, in format protocol://hostname[:port]. Wildcards (*) are supported for subdomains (e.g., https://*.example.com). Common values: - http://localhost:3000: Local development wit...
projectIdstring
The ID of the Sanity project to add the CORS origin to
list_datasetsLists all datasets in your Sanity project1 params

Lists all datasets in your Sanity project

Parameters* required
resourceobject
create_datasetCreates a new dataset with specified name and access settings3 params

Creates a new dataset with specified name and access settings

Parameters* required
aclModestring
The ACL mode for the datasetone of private · public
datasetNamestring
The name of the dataset (will be automatically formatted to match requirements)
resourceobject
update_datasetModifies a dataset's name or access control settings2 params

Modifies a dataset's name or access control settings

Parameters* required
aclModestring
The ACL mode for the datasetone of private · public
resourceobject
Resource information indicating which project id and dataset to target
list_releasesList content releases in Sanity, optionally filtered by state (active, scheduled, etc)2 params

List content releases in Sanity, optionally filtered by state (active, scheduled, etc)

Parameters* required
resourceobject
Resource information indicating which project id and dataset to target
statestring
Filter releases by state. Use "all" to get all non-archived releases (active, scheduled, published). Use "archived" or "deleted" to specifically list those.one of active · scheduled · published · archived · deleted · alldefault: active
create_releaseCreate a new content release in Sanity with an automatically generated ID5 params

Create a new content release in Sanity with an automatically generated ID

Parameters* required
descriptionstring
Description for the release
intendedPublishAtstring
Date can be ISO format (2025-04-04T18:36:00.000Z) or natural language like "in two weeks"
releaseTypestring
Type of release (asap, undecided, scheduled)one of asap · undecided · scheduleddefault: undecided
resourceobject
Resource information indicating which project id and dataset to target
titlestring
Title for the release (e.g., "Spring 2025 Product Launch")
edit_releaseUpdate metadata for an existing content release6 params

Update metadata for an existing content release

Parameters* required
descriptionstring
Description for the release
intendedPublishAtstring
When the release is intended to be published (informational only)
releaseIdstring
ID of the release
releaseTypestring
Type of release (asap, undecided, scheduled)one of asap · undecided · scheduled
resourceobject
Resource information indicating which project id and dataset to target
titlestring
Title for the release (e.g., "Spring 2025 Product Launch")
schedule_releaseSchedule a content release to be published at a specific time3 params

Schedule a content release to be published at a specific time

Parameters* required
publishAtstring
Date can be ISO format (2025-04-04T18:36:00.000Z) or natural language like "in two weeks"
releaseIdstring
ID of the release
resourceobject
Resource information indicating which project id and dataset to target
publish_releasePublish a release immediately2 params

Publish a release immediately

Parameters* required
releaseIdstring
ID of the release
resourceobject
Resource information indicating which project id and dataset to target
archive_releaseArchive a release that is no longer active2 params

Archive a release that is no longer active

Parameters* required
releaseIdstring
ID of the release
resourceobject
Resource information indicating which project id and dataset to target
unarchive_releaseRestore an archived release2 params

Restore an archived release

Parameters* required
releaseIdstring
ID of the release
resourceobject
Resource information indicating which project id and dataset to target
unschedule_releaseRemove a previously set schedule from a release2 params

Remove a previously set schedule from a release

Parameters* required
releaseIdstring
ID of the release
resourceobject
Resource information indicating which project id and dataset to target
delete_releaseDelete a release2 params

Delete a release

Parameters* required
releaseIdstring
ID of the release
resourceobject
Resource information indicating which project id and dataset to target
list_embeddings_indicesList all available embeddings indices for a dataset1 params

List all available embeddings indices for a dataset

Parameters* required
resourceobject
Resource information indicating which project id and dataset to target
semantic_searchPerform a semantic search on an embeddings index4 params

Perform a semantic search on an embeddings index

Parameters* required
indexNamestring
The name of the embeddings index to search
limitinteger
Maximum number of results to returndefault: 10
querystring
The search query to find semantically similar content
resourceobject
Resource information indicating which project id and dataset to target
migration_guideGet comprehensive guidance for migrating existing projects to Sanity. Supports general migration guides, analyzing existing content structures + designing Sanity schemas, and migrating content from various CMS platforms (like Contentful, WordPress, Strapi). Use this tool when...1 params

Get comprehensive guidance for migrating existing projects to Sanity. Supports general migration guides, analyzing existing content structures + designing Sanity schemas, and migrating content from various CMS platforms (like Contentful, WordPress, Strapi). Use this tool when...

Parameters* required
guidestring
The type of migration guide to retrieve. - Use "general" for a high-level Sanity migration guide - Use "schema.{platform}" for a platform-specific guide for migrating schemas to Sanity - Use "conte...one of general · schema.generic · schema.contentful · schema.wordpress · schema.strapi · schema.drupal
search_docsSearch Sanity docs2 params

Search Sanity docs

Parameters* required
limitinteger
Maximum number of results to return (default: 10, max: 50)default: 10
querystring
The search query for documentation
read_docsRead a specific Sanity documentation article1 params

Read a specific Sanity documentation article

Parameters* required
pathstring
The documentation path (e.g., "/docs/studio/installation") or full URL (e.g., "https://www.sanity.io/docs/studio/installation")
list_sanity_rulesIMPORTANT: Call this FIRST before any Sanity development work. Returns available best practice rules for schemas, queries, frameworks, and visual editing. You MUST load relevant rules before writing Sanity code.

IMPORTANT: Call this FIRST before any Sanity development work. Returns available best practice rules for schemas, queries, frameworks, and visual editing. You MUST load relevant rules before writing Sanity code.

No parameter schema in public metadata yet.

get_sanity_rulesLoad Sanity development rules. ALWAYS call list_sanity_rules first to see available rules, then load all rules relevant to your task in a single call.1 params

Load Sanity development rules. ALWAYS call list_sanity_rules first to see available rules, then load all rules relevant to your task in a single call.

Parameters* required
rulesarray
One or more rule names to load. Use list_sanity_rules to see available rules.

d6cf401d52c33b7a5a354a14ab7de94dea2f0c02 192x192

Sanity Agent Toolkit

Collection of resources to help AI agents build better with Sanity. Supports Cursor, Claude Code, Codex, VS Code, Lovable, v0, Replit, OpenCode, and any other editor/agent compatible with MCP or Agent Skills.


Features

  • MCP server: Direct access to your Sanity projects (content, datasets, releases, schemas) and agent rules.
  • Agent skills: Comprehensive best practices skills for Sanity development, content modeling, SEO/AEO, and experimentation. Includes 21 integration/topic guides and 26 focused best-practice rules.
  • Agent Plugin: plugin.json, skills/, and mcp.json components for any Agent Plugins-compatible client.
  • Claude Code plugin: MCP server, agent skills, and slash commands for Claude Code users. Available on the official Anthropic plugin marketplace.
  • Cursor plugin: MCP server, agent skills, and commands on the Cursor Marketplace.
  • Codex plugin: MCP server and agent skills for OpenAI Codex users.

Get started

Choose your path based on how you want agents to work with Sanity:

  1. MCP server — Give your agent always up-to-date rules and full access to your Sanity projects. No local files to maintain. Works with Cursor, VS Code, Claude Code, Lovable, v0, Replit, OpenCode, and other MCP-compatible clients.
  2. Agent skills — Install best practices skills for Sanity, content modeling, SEO/AEO, and experimentation. Works with Cursor, Claude Code, and any Agent Skills-compatible agent.
  3. Plugin — Install the Sanity plugin for Cursor, Claude Code, or any Agent Plugins-compatible client. Bundles MCP server, agent skills, and commands.
  4. Manual installation — Copy the skill references locally for offline use. You'll need to update them yourself.

Option 1: Install MCP server (recommended)

Give agents direct access to Sanity projects and always up-to-date agent rules via the MCP server.

Quick install via Sanity CLI

Run in terminal to detect and configure MCP for Cursor, Claude Code and VS Code automatically:

npx sanity@latest mcp configure

Uses your logged-in CLI user for authentication — no manual tokens or OAuth needed.

Client-specific instructions
Cursor

One-click install:
Install MCP Server

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"
    }
  }
}
Claude Code

Run in terminal. Authenticate with OAuth on next launch:

claude mcp add Sanity -t http https://mcp.sanity.io --scope user
Codex

Run in terminal. Authenticate with OAuth on next launch:

codex mcp add Sanity --url https://mcp.sanity.io

Or manually add to ~/.codex/config.toml:

[mcp_servers.Sanity]
url = "https://mcp.sanity.io"
VS Code

Open Command Palette (Cmd+Shift+P / Ctrl+Shift+P) → MCP: Open User Configuration → add:

{
  "servers": {
    "Sanity": {
      "type": "http",
      "url": "https://mcp.sanity.io"
    }
  }
}
Lovable

Sanity is available as a prebuilt chat connector in Lovable:

  1. Open Connectors → Chat connectors
  2. Select Sanity
  3. Click Connect and sign in to authorize your Sanity account

In your next prompt, reference your Sanity project or ask the agent to read your schema.

See the Lovable MCP documentation or Sanity + Lovable guide for more details.

v0

In the prompt input field, click Prompt Tools → MCPs → Add New → Select Sanity → Authorize → Authenticate with OAuth.

Replit

Go to Integrations Page → 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.

OpenCode

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

Other clients

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"]
    }
  }
}

Authorization and troubleshooting

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 for authorization options and troubleshooting.

Option 2: Install Agent Skills

Install best practices skills that work with any Agent Skills-compatible agent.

npx skills add sanity-io/agent-toolkit

See Option 3 for plugin installation.

Option 3: Install plugin

Install the Sanity plugin to get MCP server, agent skills, and commands. Available on the Claude Code marketplace, Cursor Marketplace, or from this repo as an Agent Plugin.

Claude Code

The Sanity plugin is listed on the official Anthropic plugin marketplace. 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-official

If the plugin is not found, refresh the marketplace catalog and retry:

/plugin marketplace update claude-plugins-official

Then run /reload-plugins to activate without restarting.

Alternative: interactive install

  1. Run /plugin and open the Discover tab
  2. Search for Sanity
  3. Review what the plugin will install — commands, skills, hooks, and MCP servers — before confirming (Anthropic recommends reviewing plugin permissions and source before installing)
  4. Choose an installation scope:
    • User (default): all projects on this machine
    • Project: shared with collaborators via .claude/settings.json
    • Local: this repository only
  5. Run /reload-plugins to activate without restarting

Verify 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.

Cursor

Install from the Cursor Marketplace by running this in Cursor chat:

/add-plugin sanity

Verify 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
  1. Add the Sanity marketplace:
codex plugin marketplace add sanity-io/agent-toolkit
  1. Install the plugin from Codex's plugin directory (select the Sanity Agent Toolkit marketplace, then install Sanity).

  2. Restart Codex. Verify by asking: "which skills do you have access to?" — you should see the Sanity skills listed.

Option 4: Manual installation

Install the skill references locally to teach your editor Sanity best practices:

  1. Copy skills/sanity-best-practices/ to your project.
  2. (Recommended) Copy AGENTS.md to your project root to act as a knowledge router.

Capabilities

MCP tools

With MCP connected, your AI can use tools like:

  • query_documents — run GROQ queries directly
  • create_documents — create draft documents from structured content, or version documents when a release ID is provided
  • patch_documents — surgical edits to existing documents; published documents are edited by creating or updating drafts
  • publish_documents / unpublish_documents — manage document lifecycle
  • deploy_schema / get_schema — deploy MCP-managed schemas and inspect deployed schemas
  • deploy_studio — deploy a hosted Studio bound to an MCP-managed schema
  • create_release / list_releases — create and inspect Content Releases
  • create_version — create version documents for releases
  • generate_image / transform_image — AI image generation and editing
  • whoami — verify the authenticated Sanity user
  • get_project_studios — list Studio applications linked to a project
  • search_docs / read_docs — search and read Sanity documentation
  • list_sanity_rules / get_sanity_rules — load agent rules on demand
  • give_feedback — report MCP tool errors, missing capabilities, confusing output, or documentation issues

MCP-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.

Agent skills

Best practices skills that agents like Claude Code, Cursor, GitHub Copilot, etc. can discover and use automatically. Skills follow the Agent Skills format. See Option 2 for installation.

SkillDescription
sanity-best-practicesGROQ performance, schema design, Visual Editing, images, Portable Text, Studio, TypeGen, localization, migrations, and framework integration guides
content-modeling-best-practicesStructured content principles: separation of concerns, references vs embedding, content reuse
seo-aeo-best-practicesSEO/AEO with EEAT principles, structured data (JSON-LD), technical SEO patterns
content-experimentation-best-practicesA/B testing methodology, statistical foundations, experiment design

Getting started flow

The onboarding guide follows three phases:

  1. Studio & Schema — Set up Sanity Studio and define your content model
  2. Content — Import existing content or generate placeholder content via MCP
  3. Frontend — Integrate with your application (framework-specific)

Just say: "Get started with Sanity" to begin.

Slash commands (Claude Code)

CommandWhat it does
/sanityList available skills and help topics
/sanity-reviewReview code for Sanity best practices
/typegenRun TypeGen and troubleshoot issues
/deploy-schemaDeploy schema with verification

Repository structure

Note: The reference files in skills/sanity-best-practices/references/ are the canonical content for the Sanity MCP server's list_sanity_rules / get_sanity_rules tools. Each file must have valid name and description frontmatter — 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 (22 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

All 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.


Resources

  • Create Sanity account
  • Sanity documentation
  • GROQ language reference
  • Visual Editing guide
  • Sanity TypeGen
  • MCP server docs
  • Agent Plugins specification
  • Blueprints Infrastructure as Code

Contributing

Found a better pattern? Missing a framework or best practice? Read the contributing guide for how skills work and what makes a good contribution, then:

  1. Fork the repo.
  2. Install dependencies with npm install.
  3. Make your changes in skills/<skill-name>/.
  4. Run npm run validate:all to check skill and plugin validity.
  5. Submit a PR.

Support

  • Sanity Community (Discord)
  • GitHub issues

License: MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
inference shell
inference shell
create and run specialised agents in minutes
build now →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
Categories
AI & LLM Tools
Registryactive
TransportHTTP
UpdatedJun 10, 2026
View on GitHub

Related AI & LLM Tools MCP Servers

View all →
junjiem avatar
Dify

junjiem/dify-plugin-agent-mcp_sse

Agent strategies for discovering and calling tools via MCP using Function Calling and ReAct over SSE or Streamable HTTP
135
langchain-ai avatar
LangSmith

langchain-ai/langsmith-mcp-server

A production-ready MCP server that connects language models with LangSmith for conversation history, prompts, and analytics.
110
imran-siddique avatar
Agentos

imran-siddique/agent-os

Build and manage policy-compliant AI agents with safety enforcement and compliance checking
70
mastercard avatar
Mastercard Developers MCP

io.github.mastercard/developers-mcp

Access Mastercard Developers APIs, documentation, and API specifications through MCP.
51
igorganapolsky avatar
Rlhf Feedback Loop

io.github.igorganapolsky/rlhf-feedback-loop

RLHF feedback loop for AI agents. Capture signals, promote memories, block mistakes, export DPO.
23
sumup avatar
SumUp MCP Server

io.github.sumup/mcp

Tools to explore SumUp accounts, payments, customers, and payouts.
11