[!NOTE] 此仓库已存档且不再积极维护。 我们现在推荐使用托管服务器 mcp.sanity.io,它提供流式HTTP传输、OAuth认证、持续更新的工具以及无需本地设置即可使用的生产级可靠性。
使用AI驱动的工具来革新您的内容操作。通过您喜欢的AI启用编辑器中的自然语言对话创建、管理和探索您的内容。
Sanity MCP Server 实现了 Model Context Protocol,以连接您的Sanity项目与AI工具如Claude、Cursor和VS Code。它使AI模型能够理解您的内容结构并通过自然语言指令执行操作。
托管在 mcp.sanity.io 的服务器支持现代流式HTTP传输和OAuth认证。将以下配置添加到您的MCP客户端中:
{
"mcpServers": {
"Sanity": {
"url": "https://mcp.sanity.io",
"type": "http"
}
}
}
远程服务器的好处:
请参阅 mcp.sanity.io 获取完整的安装说明,适用于Claude Code、Cursor和其他MCP客户端。
注意: 下面的本地服务器说明仅适用于自托管。此仓库已存档且不再维护。
在您可以使用MCP服务器之前,您需要:
部署您的Sanity Studio带有模式清单
MCP服务器需要访问您的内容结构才能有效工作。使用以下方法之一部署您的模式清单:
cd /path/to/studio
npm update sanity
npx sanity schema deploy
在CI环境中运行而没有Sanity登录时,您需要提供一个认证令牌:
SANITY_AUTH_TOKEN=<token> sanity schema deploy
[!NOTE] 模式部署需要Sanity CLI版本3.88.1或更高版本。
此MCP服务器可以与任何支持Model Context Protocol的应用程序一起使用。这里是一些流行的例子:
要使用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",
"MCP_USER_ROLE": "developer"
}
}
}
}
有关所有必需和可选环境变量的完整列表,请参阅 配置部分。
此配置的确切位置取决于您的应用程序:
| 应用程序 | 配置位置 |
|---|---|
| Claude Desktop | Claude Desktop配置文件 |
| Cursor | 工作区或全局设置 |
| VS Code | 工作区或用户设置(取决于扩展) |
| 自定义应用 | 参考您的应用MCP集成文档 |
无法正常工作?请参阅 Node.js配置 部分。
服务器接受以下环境变量:
| 变量 | 描述 | 必需 |
|---|---|---|
SANITY_API_TOKEN | 您的Sanity API令牌 | ✅ |
SANITY_PROJECT_ID | 您的Sanity项目ID | ✅ |
SANITY_DATASET | 要使用的数据集 | ✅ |
MCP_USER_ROLE | 决定工具访问级别(开发者或编辑者) | ✅ |
SANITY_API_HOST | API主机(默认为https://api.sanity.io) | ❌ |
MAX_TOOL_TOKEN_OUTPUT | 工具响应的最大令牌输出(默认为50000)。根据您的模型上下文限制进行调整。更高的限制可能会因过多数据而污染对话上下文 | ❌ |
[!WARNING] 使用AI与生产数据集
当使用具有写入权限的令牌配置MCP服务器时,请注意AI可以执行破坏性操作,例如创建、更新或删除内容。如果您使用的是只读令牌,则这不是问题。虽然我们正在积极开发防护措施,但您应该谨慎行事,并考虑使用开发/测试数据集来测试需要写入权限的AI操作。
MCP服务器需要适当的API令牌和权限才能正确运行。以下是您需要了解的信息:
从终端:
npx sanity tokens add "MCP Server" --role <role>
或者从管理:
npx sanity managemcp-server)令牌需要基于您的使用情况的适当权限
viewer 角色足够editor 或 developer 角色administrator 角色服务器支持两种用户角色:
[!IMPORTANT] 对于Node版本管理器用户
如果您使用nvm、mise、fnm、nvm-windows或类似工具,您需要按照下面的步骤设置,以确保MCP服务器可以访问Node.js。这是一个一次性设置,可以节省您以后的故障排查时间。这是一个 正在进行的问题 与MCP服务器。
首先,激活您选择的Node.js版本:
# 使用nvm
nvm use 20 # 或您选择的版本
# 使用mise
mise use node@20
# 使用fnm
fnm use 20
然后,创建必要的符号链接(选择您的操作系统):
在macOS/Linux上:
sudo ln -sf "$(which node)" /usr/local/bin/node && sudo ln -sf "$(which npx)" /usr/local/bin/npx
[!NOTE] 虽然通常使用
sudo需要谨慎,但在这种情况下是安全的,因为:
- 我们只是创建指向您已安装和信任的二进制文件的符号链接
- 目标目录(
/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
验证设置:
# 应该显示您选择的Node版本
/usr/local/bin/node --version # macOS/Linux
"C:\Program Files\nodejs\node.exe" --version # Windows
MCP服务器通过直接调用 node 和 npx 二进制文件启动。当使用Node版本管理器时,这些二进制文件是在隔离环境中管理的,系统应用程序不能自动访问。上面的符号链接创建了一个桥梁,连接您的版本管理器和MCP服务器使用的系统路径。
如果您经常切换Node版本:
# 示例别名,用于您的 .bashrc 或 .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)
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_API_HOST=https://api.sanity.io \
-e SANITY_DATASET=<ds> \
-e MCP_USER_ROLE=developer \
node build/index.js
这将提供一个Web界面,用于检查和测试可用工具。