Sanity MCP Server

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Runs as a Node.js application, requiring proper Node.js environment setup to function correctly with MCP-compatible applications.

  • Provides special configuration instructions for users of Node Version Manager to ensure the MCP server can access Node.js properly.

  • Enables AI-powered tools for content operations in Sanity CMS, allowing users to create, update, and manage documents, handle release management, perform semantic searches, and access schema information through natural language instructions.

Servidor MCP de Sanity

Transforma tus operaciones de contenido con herramientas basadas en IA para Sanity. Crea, gestiona y explora tu contenido mediante conversaciones en lenguaje natural en tu editor con IA favorito.

El servidor Sanity MCP implementa el Protocolo de Contexto de Modelo para conectar sus proyectos Sanity con herramientas de IA como Claude, Cursor y VS Code. Permite que los modelos de IA comprendan la estructura de su contenido y realicen operaciones mediante instrucciones en lenguaje natural.

✨ Características principales

  • 🤖 Inteligencia de contenido : deja que la IA explore y comprenda tu biblioteca de contenido
  • 🔄 Operaciones de contenido : Automatiza tareas mediante instrucciones en lenguaje natural
  • 📊 Schema-Aware : la IA respeta la estructura de su contenido y las reglas de validación
  • 🚀 Gestión de lanzamientos : planifique y organice lanzamientos de contenido sin esfuerzo
  • 🔍 Búsqueda semántica : encuentre contenido según el significado, no solo en palabras clave

Tabla de contenido

🔌 Inicio rápido

Prerrequisitos

Antes de poder utilizar el servidor MCP, debe:

  1. Implemente su Sanity Studio con el manifiesto de esquemaEl servidor MCP necesita acceder a la estructura de contenido para funcionar correctamente. Implemente el manifiesto del esquema con uno de estos métodos:
    # Option A: Force latest CLI version (recommended) cd /path/to/studio SANITY_CLI_SCHEMA_STORE_ENABLED=true npx --ignore-existing sanity@latest schema deploy # Option B: If you have the CLI installed globally npm install -g sanity cd /path/to/studio SANITY_CLI_SCHEMA_STORE_ENABLED=true sanity schema deploy # Option C: Update your Studio first cd /path/to/studio npm update sanity SANITY_CLI_SCHEMA_STORE_ENABLED=true npx sanity schema deploy

    [!NOTA] La implementación del esquema requiere la última versión de la CLI y el indicador SANITY_CLI_SCHEMA_STORE_ENABLED. Esta función se habilitará de forma predeterminada en una próxima versión.

  2. Obtenga sus credenciales de API
    • Identificación del proyecto
    • Nombre del conjunto de datos
    • Token de API con permisos adecuados

Este servidor MCP se puede usar con cualquier aplicación compatible con el Protocolo de Contexto de Modelo. A continuación, se muestran algunos ejemplos populares:

Agregar configuración para el servidor Sanity MCP

Para utilizar el servidor Sanity MCP, agregue la siguiente configuración a la configuración MCP de su aplicación:

{ "mcpServers": { "sanity": { "command": "npx", "args": ["-y", "@sanity/mcp-server@latest"], "env": { "SANITY_PROJECT_ID": "your-project-id", "SANITY_DATASET": "production", "SANITY_API_TOKEN": "your-sanity-api-token" } } } }

La ubicación exacta de esta configuración dependerá de su aplicación:

SolicitudUbicación de la configuración
Escritorio de ClaudeArchivo de configuración de Claude Desktop
CursorEspacio de trabajo o configuración global
Código VSEspacio de trabajo o configuración de usuario (depende de la extensión)
Aplicaciones personalizadasConsulta la documentación de integración de MCP de tu aplicación

¿No lo consigues? Consulta la sección sobre configuración de Node.js.

🛠️ Herramientas disponibles

Contexto y configuración

  • get_initial_context – IMPORTANTE: Debe llamarse antes de usar cualquier otra herramienta para inicializar el contexto y obtener instrucciones de uso.
  • get_sanity_config – Recupera la configuración actual de Sanity (projectId, dataset, apiVersion, etc.)

Operaciones de documentos

  • create_document – Crea un nuevo documento con contenido generado por IA según instrucciones
  • update_document – Actualizar un documento existente con contenido generado por IA según instrucciones
  • patch_document - Aplicar operaciones de parche directo para modificar partes específicas de un documento sin usar la generación de IA
  • query_documents – Ejecuta consultas GROQ para buscar y recuperar contenido
  • document_action – Realizar acciones sobre documentos como publicar, cancelar la publicación o eliminar documentos

Gestión de versiones

  • list_releases – Lista de lanzamientos de contenido, opcionalmente filtrados por estado
  • create_release – Crea un nuevo lanzamiento de contenido
  • edit_release – Actualizar metadatos para una versión existente
  • schedule_release – Programar un lanzamiento para publicarlo en un momento específico
  • release_action – Realizar acciones en los lanzamientos (publicar, archivar, desarchivar, desprogramar, eliminar)

Gestión de versiones

  • create_version – Crea una versión de un documento para una versión específica
  • discard_version – Eliminar un documento de versión específico de un lanzamiento
  • mark_for_unpublish – Marcar un documento para que no se publique cuando se publique una versión específica

Gestión de conjuntos de datos

  • get_datasets – Lista todos los conjuntos de datos del proyecto
  • create_dataset – Crea un nuevo conjunto de datos
  • update_dataset – Modificar la configuración del conjunto de datos

Información del esquema

  • get_schema – Obtener detalles del esquema, ya sea el esquema completo o para un tipo específico
  • list_schema_ids : enumera todos los ID de esquema disponibles

Soporte de GROQ

  • get_groq_specification – Obtener el resumen de la especificación del lenguaje GROQ

Incrustaciones y búsqueda semántica

  • list_embeddings_indices – Lista todos los índices de incrustaciones disponibles
  • semantic_search – Realizar una búsqueda semántica en un índice de incrustaciones

Información del proyecto

  • list_projects – Lista todos los proyectos de Sanity asociados con tu cuenta
  • get_project_studios – Obtener aplicaciones de estudio vinculadas a un proyecto específico

⚙️ Configuración

El servidor toma las siguientes variables de entorno:

VariableDescripciónRequerido
SANITY_API_TOKENSu token API de Sanity
SANITY_PROJECT_IDTu ID de proyecto Sanity
SANITY_DATASETEl conjunto de datos a utilizar
SANITY_API_HOSTHost de API (predeterminado: https://api.sanity.io )
MCP_USER_ROLEDetermina el nivel de acceso a la herramienta (desarrollador o editor)

[!ADVERTENCIA]
Uso de IA con conjuntos de datos de producción
Al configurar el servidor MCP con un token con acceso de escritura a un conjunto de datos de producción, tenga en cuenta que la IA puede realizar acciones destructivas, como crear, actualizar o eliminar contenido. Esto no es un problema si utiliza un token de solo lectura. Mientras desarrollamos activamente las medidas de seguridad, le recomendamos tener cuidado y considerar el uso de un conjunto de datos de desarrollo/preparación para probar las operaciones de IA que requieren acceso de escritura.

🔑 Tokens y permisos de API

El servidor MCP requiere tokens API y permisos adecuados para funcionar correctamente. Esto es lo que necesita saber:

  1. Generar un token de robot :
    • Vaya a la consola de administración de su proyecto: Configuración > API > Tokens
    • Haga clic en "Agregar nuevo token"
    • Cree un token dedicado para el uso de su servidor MCP
    • Guarda el token de forma segura: ¡solo se muestra una vez!
  2. Permisos requeridos :
    • El token necesita permisos apropiados según su uso
    • Para operaciones básicas de lectura: el rol viewer es suficiente
    • Para la gestión de contenido: se recomienda el rol de editor o developer
    • Para operaciones avanzadas (como administrar conjuntos de datos): puede ser necesario el rol administrator
  3. Acceso al conjunto de datos :
    • Conjuntos de datos públicos: el contenido puede ser leído por usuarios no autenticados
    • Conjuntos de datos privados: requieren autenticación de token adecuada
    • Contenido borrador y versionado: solo accesible para usuarios autenticados con los permisos adecuados
  4. Mejores prácticas de seguridad :
    • Utilice tokens separados para diferentes entornos (desarrollo, ensayo, producción)
    • Nunca envíe tokens al control de versiones
    • Considere usar variables de entorno para la gestión de tokens
    • Rotar tokens regularmente por seguridad

👥 Roles de usuario

El servidor admite dos roles de usuario:

  • Desarrollador : Acceso a todas las herramientas
  • editor : Herramientas centradas en el contenido sin administración de proyectos

Configuración del entorno Node.js

Importante para usuarios del Administrador de versiones de Node : Si usa nvm , mise , fnm , nvm-windows o herramientas similares, deberá seguir los pasos de configuración a continuación para garantizar que los servidores MCP puedan acceder a Node.js. Esta configuración es única y le ahorrará tiempo en la resolución de problemas posteriores. Este es un problema recurrente con los servidores MCP.

🛠 Configuración rápida para usuarios de Node Version Manager

  1. Primero, activa tu versión preferida de Node.js:
    # Using nvm nvm use 20 # or your preferred version # Using mise mise use node@20 # Using fnm fnm use 20
  2. Luego, crea los enlaces simbólicos necesarios (elige tu sistema operativo):En macOS/Linux:
    sudo ln -sf "$(which node)" /usr/local/bin/node && sudo ln -sf "$(which npx)" /usr/local/bin/npx

    [!NOTA] Si bien el uso sudo generalmente requiere precaución, es seguro en este contexto porque:

    • Solo estamos creando enlaces simbólicos a sus binarios Node.js existentes
    • El directorio de destino ( /usr/local/bin ) es una ubicación estándar del sistema para los programas instalados por el usuario
    • Los enlaces simbólicos solo apuntan a binarios que ya has instalado y en los que confías
    • Puedes eliminar fácilmente estos enlaces simbólicos más tarde con sudo rm
    En Windows (PowerShell como administrador):
    New-Item -ItemType SymbolicLink -Path "C:\Program Files\nodejs\node.exe" -Target (Get-Command node).Source -Force New-Item -ItemType SymbolicLink -Path "C:\Program Files\nodejs\npx.cmd" -Target (Get-Command npx).Source -Force
  3. Verificar la configuración:
    # Should show your chosen Node version /usr/local/bin/node --version # macOS/Linux "C:\Program Files\nodejs\node.exe" --version # Windows

¿Por qué es necesario esto?

Los servidores MCP se inician llamando directamente a los binarios node y npx . Al usar los administradores de versiones de Node, estos binarios se administran en entornos aislados a los que las aplicaciones del sistema no pueden acceder automáticamente. Los enlaces simbólicos anteriores crean un puente entre el administrador de versiones y las rutas del sistema que utilizan los servidores MCP.

🔍 Solución de problemas

Si cambia las versiones de Node con frecuencia:

  • Recuerde actualizar sus enlaces simbólicos cuando cambie las versiones de Node
  • Puedes crear un alias de shell o un script para automatizar esto:
    # Example alias for your .bashrc or .zshrc alias update-node-symlinks='sudo ln -sf "$(which node)" /usr/local/bin/node && sudo ln -sf "$(which npx)" /usr/local/bin/npx'

Para eliminar los enlaces simbólicos más tarde:

# macOS/Linux sudo rm /usr/local/bin/node /usr/local/bin/npx # Windows (PowerShell as Admin) Remove-Item "C:\Program Files\nodejs\node.exe", "C:\Program Files\nodejs\npx.cmd"

💻 Desarrollo

Instalar dependencias:

pnpm install

Construir y ejecutar en modo de desarrollo:

pnpm run dev

Construir el servidor:

pnpm run build

Ejecute el servidor compilado:

pnpm start

Depuración

Para la depuración, puede utilizar el inspector MCP:

npx @modelcontextprotocol/inspector -e SANITY_API_TOKEN=<token> -e SANITY_PROJECT_ID=<project_id> -e SANITY_DATASET=<ds> -e MCP_USER_ROLE=developer node path/to/build/index.js

Esto proporcionará una interfaz web para inspeccionar y probar las herramientas disponibles.

ID: s8v5wceait