Sanity MCP Server

Official
by sanity-io
MIT License
615
29
  • Linux
  • Apple

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.

Sanity MCP 服务器

使用 Sanity 的 AI 驱动工具,革新您的内容运营。在您喜爱的 AI 编辑器中,通过自然语言对话创建、管理和探索您的内容。

Sanity MCP 服务器实现了模型上下文协议 (MCP) ,将您的 Sanity 项目与 Claude、Cursor 和 VS Code 等 AI 工具连接起来。它使 AI 模型能够理解您的内容结构并通过自然语言指令执行操作。

✨ 主要特点

  • 🤖内容智能:让 AI 探索并理解您的内容库
  • 🔄内容运营:通过自然语言指令自动执行任务
  • 📊 Schema-Aware :AI 尊重您的内容结构和验证规则
  • 🚀发布管理:轻松规划和组织内容发布
  • 🔍语义搜索:根据含义(而不仅仅是关键字)查找内容

目录

🔌 快速入门

先决条件

在使用 MCP 服务器之前,您需要:

  1. 使用架构清单部署您的 Sanity StudioMCP 服务器需要访问您的内容结构才能有效运行。请使用以下方法之一部署您的架构清单:
    # 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

    架构部署需要最新的 CLI 版本和 SANITY_CLI_SCHEMA_STORE_ENABLED 标志。此功能将在未来版本中默认启用。

  2. 获取您的 API 凭证
    • 项目 ID
    • 数据集名称
    • 具有适当权限的 API 令牌

此 MCP 服务器可与任何支持模型上下文协议 (MCP) 的应用程序一起使用。以下是一些常见示例:

添加 Sanity MCP 服务器的配置

要使用 Sanity MCP 服务器,请将以下配置添加到应用程序的 MCP 设置中:

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

此配置的具体位置取决于您的应用程序:

应用配置位置
克劳德桌面Claude桌面配置文件
光标工作区或全局设置
VS 代码工作区或用户设置(取决于扩展)
自定义应用程序请参阅您应用的 MCP 集成文档

你不明白它是怎么工作的?请参阅Node.js 配置部分。

🛠️ 可用工具

上下文和设置

  • get_initial_context – 重要:在使用任何其他工具初始化上下文和获取使用说明之前必须调用此函数。
  • get_sanity_config – 检索当前 Sanity 配置(projectId、dataset、apiVersion 等)

文档操作

  • create_document – 根据指令创建包含 AI 生成内容的新文档
  • update_document – 根据指令使用 AI 生成的内容更新现有文档
  • patch_document - 应用直接修补操作来修改文档的特定部分,而无需使用 AI 生成
  • query_documents – 执行 GROQ 查询来搜索和检索内容
  • document_action – 执行文档操作,例如发布、取消发布或删除文档

发布管理

  • list_releases – 列出内容发布,可选择按状态过滤
  • create_release – 创建新的内容发布
  • edit_release – 更新现有版本的元数据
  • Schedule_release – 安排在特定时间发布
  • release_action – 对发布执行操作(发布、存档、取消存档、取消计划、删除)

版本管理

  • create_version – 为特定版本创建文档版本
  • discorn_version – 从版本中删除特定版本的文档
  • mark_for_unpublish – 当特定版本发布时将文档标记为未发布

数据集管理

  • get_datasets – 列出项目中的所有数据集
  • create_dataset – 创建新数据集
  • update_dataset – 修改数据集设置

架构信息

  • get_schema – 获取架构详细信息,包括完整架构或特定类型架构
  • list_schema_ids – 列出所有可用的模式 ID

GROQ 支持

  • get_groq_specification – 获取 GROQ 语言规范摘要

嵌入和语义搜索

  • list_embeddings_indices – 列出所有可用的嵌入索引
  • semantic_search – 对嵌入索引执行语义搜索

项目信息

  • list_projects – 列出与您的帐户关联的所有 Sanity 项目
  • get_project_studios – 获取链接到特定项目的工作室应用程序

⚙️ 配置

服务器采用以下环境变量:

多变的描述必需的
SANITY_API_TOKEN您的 Sanity API 令牌
SANITY_PROJECT_ID您的 Sanity 项目 ID
SANITY_DATASET要使用的数据集
SANITY_API_HOSTAPI 主机(默认为https://api.sanity.io
MCP_USER_ROLE确定工具访问级别(开发人员或编辑者)

[!警告]
将 AI 与生产数据集结合使用
使用对生产数据集具有写入权限的令牌配置 MCP 服务器时,请注意 AI 可能会执行破坏性操作,例如创建、更新或删除内容。如果您使用只读令牌,则无需担心。虽然我们正在积极开发防护措施,但您仍应谨慎行事,并考虑使用开发/预发布数据集来测试需要写入权限的 AI 操作。

🔑 API 令牌和权限

MCP 服务器需要相应的 API 令牌和权限才能正常运行。以下是您需要了解的信息:

  1. 生成机器人令牌
    • 转到项目管理控制台:设置 > API > 令牌
    • 点击“添加新令牌”
    • 为您的 MCP 服务器使用创建专用令牌
    • 安全存储令牌 - 它只显示一次!
  2. 所需权限
    • 根据您的使用情况,令牌需要适当的权限
    • 对于基本的读取操作: viewer角色就足够了
    • 对于内容管理:建议editordeveloper角色
    • 对于高级操作(如管理数据集):可能需要administrator角色
  3. 数据集访问
    • 公共数据集:未经身份验证的用户可读内容
    • 私有数据集:需要正确的令牌认证
    • 草稿和版本化内容:只有经过身份验证且拥有适当权限的用户才能访问
  4. 安全最佳实践
    • 对不同的环境(开发、准备、生产)使用不同的令牌
    • 永远不要将令牌提交到版本控制
    • 考虑使用环境变量进行令牌管理
    • 定期轮换代币以确保安全

👥 用户角色

服务器支持两种用户角色:

  • 开发人员:访问所有工具
  • 编辑器:无需项目管理的以内容为中心的工具

Node.js 环境设置

Node 版本管理器用户须知:如果您使用nvmmisefnmnvm-windows或类似工具,则需要按照以下设置步骤操作,以确保 MCP 服务器能够访问 Node.js。此设置步骤一次性完成,可节省您后续的故障排除时间。这是 MCP 服务器的一个持续存在的问题

🛠 Node 版本管理器用户的快速设置

  1. 首先,激活您喜欢的 Node.js 版本:
    # Using nvm nvm use 20 # or your preferred version # Using mise mise use node@20 # Using fnm fnm use 20
  2. 然后,创建必要的符号链接(选择您的操作系统):在 macOS/Linux 上:
    sudo ln -sf "$(which node)" /usr/local/bin/node && sudo ln -sf "$(which npx)" /usr/local/bin/npx

    虽然使用sudo通常需要谨慎,但在这种情况下它是安全的,因为:

    • 我们仅创建指向您现有 Node.js 二进制文件的符号链接
    • 目标目录( /usr/local/bin )是用户安装程序的标准系统位置
    • 符号链接仅指向您已安装并信任的二进制文件
    • 稍后您可以使用sudo rm轻松删除这些符号链接
    在 Windows 上(以管理员身份使用 PowerShell):
    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. 验证设置:
    # Should show your chosen Node version /usr/local/bin/node --version # macOS/Linux "C:\Program Files\nodejs\node.exe" --version # Windows

🤔 为什么需要这个?

MCP 服务器通过直接调用nodenpx二进制文件来启动。使用 Node 版本管理器时,这些二进制文件在隔离环境中进行管理,系统应用程序无法自动访问。上面的符号链接在您的版本管理器和 MCP 服务器使用的系统路径之间建立了桥梁。

🔍 故障排除

如果你经常切换 Node 版本:

  • 更改 Node 版本时记得更新符号链接
  • 您可以创建一个 shell 别名或脚本来自动执行此操作:
    # 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'

稍后删除符号链接:

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

💻 开发

安装依赖项:

pnpm install

在开发模式下构建并运行:

pnpm run dev

构建服务器:

pnpm run build

运行构建好的服务器:

pnpm start

调试

对于调试,您可以使用 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

这将提供一个用于检查和测试可用工具的 Web 界面。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

将您的 Sanity 内容连接到 AI 代理。通过模型上下文协议 (MCP),使用 Claude、Cursor 和 VS Code 创建、更新和探索结构化内容。将内容操作从复杂的查询转变为简单的对话,让您的团队在不牺牲结构的情况下获得超能力。

  1. ✨ Key Features <!-- omit in toc -->
    1. Table of Contents <!-- omit in toc -->
      1. 🔌 Quickstart
        1. Prerequisites
        2. Add configuration for the Sanity MCP server
      2. 🛠️ Available Tools
        1. Context & Setup <!-- omit in toc -->
        2. Document Operations <!-- omit in toc -->
        3. Release Management <!-- omit in toc -->
        4. Version Management <!-- omit in toc -->
        5. Dataset Management <!-- omit in toc -->
        6. Schema Information <!-- omit in toc -->
        7. GROQ Support <!-- omit in toc -->
        8. Embeddings & Semantic Search <!-- omit in toc -->
        9. Project Information <!-- omit in toc -->
      3. ⚙️ Configuration
        1. 🔑 API Tokens and Permissions
        2. 👥 User Roles
      4. 📦 Node.js Environment Setup
        1. 🛠 Quick Setup for Node Version Manager Users
        2. 🤔 Why Is This Needed?
        3. 🔍 Troubleshooting
      5. 💻 Development
        1. Debugging

      Related MCP Servers

      • A
        security
        A
        license
        A
        quality
        Enables AI agents to manage issues, projects, and teams on the Linear platform programmatically.
        Last updated 2 months ago
        7
        123
        22
        JavaScript
        MIT License
        • Apple
      • -
        security
        A
        license
        -
        quality
        Facilitates integration with Claude Desktop to run AI agents and execute purchased actions without code, leveraging the Model Context Protocol framework.
        Last updated 3 months ago
        1
        TypeScript
        GPL 3.0
      • -
        security
        A
        license
        -
        quality
        Enables AI agents and assistants like Goose or Claude to interact with VS Code through the Model Context Protocol.
        Last updated a month ago
        14
        TypeScript
        Apache 2.0
        • Apple
      • -
        security
        F
        license
        -
        quality
        Enables AI assistants to interact with Metabase, providing access to dashboards, questions, databases, and tools for executing queries and viewing data through natural language.
        Last updated 2 months ago
        JavaScript
        • Apple

      View all related MCP servers

      ID: s8v5wceait