Sanity MCP Server

Official
by sanity-io
MIT License
315
39
  • 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 Serverは、モデルコンテキストプロトコルを実装し、SanityプロジェクトをClaude、Cursor、VS CodeなどのAIツールに接続します。これにより、AIモデルはコンテンツ構造を理解し、自然言語による指示に基づいて操作を実行できるようになります。

✨ 主な特徴

  • 🤖コンテンツインテリジェンス: AIがコンテンツライブラリを探索して理解します
  • 🔄コンテンツ操作:自然言語指示によるタスクの自動化
  • 📊スキーマ認識: AIはコンテンツの構造と検証ルールを尊重します
  • 🚀リリース管理: コンテンツのリリースを簡単に計画、整理
  • 🔍セマンティック検索:キーワードだけでなく意味に基づいてコンテンツを検索します

目次

🔌 クイックスタート

前提条件

MCP サーバーを使用する前に、次のことを行う必要があります。

  1. スキーママニフェストを使用してSanity StudioをデプロイするMCPサーバーが効果的に機能するには、コンテンツ構造にアクセスする必要があります。スキーママニフェストは、次のいずれかの方法でデプロイしてください。
    # 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

    [!NOTE] スキーマのデプロイには、最新の CLI バージョンと SANITY_CLI_SCHEMA_STORE_ENABLED フラグの両方が必要です。この機能は、将来のリリースでデフォルトで有効化される予定です。

  2. API認証情報を取得する
    • プロジェクトID
    • データセット名
    • 適切な権限を持つAPIトークン

この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 Desktop 構成ファイル
カーソルワークスペースまたはグローバル設定
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 – 特定のリリースのドキュメントのバージョンを作成する
  • 破棄バージョン– リリースから特定のバージョンのドキュメントを削除する
  • 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_TOKENSanity APIトークン
SANITY_PROJECT_IDSanityプロジェクトID
SANITY_DATASET使用するデータセット
SANITY_API_HOSTAPI ホスト (デフォルトはhttps://api.sanity.io )
MCP_USER_ROLEツールのアクセス レベル (開発者または編集者) を決定します

[!警告]
生産データセットでの AI の活用
本番環境データセットへの書き込みアクセス権を持つトークンを使用してMCPサーバーを設定する場合、AIがコンテンツの作成、更新、削除といった破壊的なアクションを実行できることにご注意ください。読み取り専用トークンを使用している場合は、この点は問題になりません。現在、ガードレールの開発を積極的に進めておりますが、書き込みアクセス権を必要とするAI操作のテストには、開発/ステージングデータセットの使用をご検討の上、慎重にご対応ください。

🔑 APIトークンと権限

MCPサーバーが正しく機能するには、適切なAPIトークンと権限が必要です。必要な情報は以下のとおりです。

  1. ロボットトークンを生成する:
    • プロジェクトの管理コンソールに移動します: 設定 > API > トークン
    • 「新しいトークンを追加」をクリックします
    • MCPサーバーの使用専用のトークンを作成する
    • トークンは安全に保管してください。表示されるのは 1 回だけです。
  2. 必要な権限:
    • トークンには使用状況に応じた適切な権限が必要です
    • 基本的な読み取り操作の場合: viewerロールで十分です
    • コンテンツ管理の場合: editorまたはdeveloper役割を推奨
    • 高度な操作(データセットの管理など)にはadministratorロールが必要になる場合があります
  3. データセットアクセス:
    • 公開データセット: 認証されていないユーザーでもコンテンツを読み取ることができます
    • プライベートデータセット: 適切なトークン認証が必要
    • 下書きおよびバージョン管理されたコンテンツ: 適切な権限を持つ認証済みユーザーのみがアクセスできます
  4. セキュリティのベストプラクティス:
    • 異なる環境(開発、ステージング、本番)ごとに別々のトークンを使用する
    • トークンをバージョン管理にコミットしない
    • トークン管理には環境変数の使用を検討する
    • セキュリティのためにトークンを定期的にローテーションする

👥 ユーザーロール

サーバーは 2 つのユーザー ロールをサポートします。

  • 開発者: すべてのツールへのアクセス
  • エディター: プロジェクト管理のないコンテンツ重視のツール

📦 Node.js 環境のセットアップ

Node Version Manager ユーザーの皆様へ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. 次に、必要なシンボリックリンクを作成します(OS を選択してください)。macOS/Linuxの場合:
    sudo ln -sf "$(which node)" /usr/local/bin/node && sudo ln -sf "$(which npx)" /usr/local/bin/npx

    [!NOTE] 一般的に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サーバーは、 nodeおよびnpxバイナリを直接呼び出すことで起動されます。Nodeバージョンマネージャーを使用する場合、これらのバイナリはシステムアプリケーションから自動的にアクセスできない隔離された環境で管理されます。上記のシンボリックリンクは、バージョンマネージャーとMCPサーバーが使用するシステムパスの間にブリッジを作成します。

🔍 トラブルシューティング

Node バージョンを頻繁に切り替える場合:

  • Nodeのバージョンを変更するときは、シンボリックリンクを更新することを忘れないでください
  • これを自動化するには、シェル エイリアスまたはスクリプトを作成します。
    # 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エージェントに接続します。Claude、Cursor、VS Codeをモデルコンテキストプロトコル経由で使用し、構造化されたコンテンツを作成、更新、探索できます。コンテンツ操作を複雑なクエリからシンプルな会話へと変換することで、構造を損なうことなくチームに大きな力を与えます。

  1. ✨ 主な特徴
    1. 目次
      1. 🔌 クイックスタート
        1. 前提条件
        2. Sanity MCPサーバーの設定を追加する
      2. 🛠️ 利用可能なツール
        1. コンテキストとセットアップ
        2. ドキュメント操作
        3. リリース管理
        4. バージョン管理
        5. データセット管理
        6. スキーマ情報
        7. GROQサポート
        8. 埋め込みとセマンティック検索
        9. プロジェクト情報
      3. ⚙️ 構成
        1. 🔑 APIトークンと権限
        2. 👥 ユーザーロール
      4. 📦 Node.js 環境のセットアップ
        1. 🛠 Node バージョン マネージャー ユーザー向けのクイック セットアップ
        2. 🤔 なぜこれが必要なのでしょうか?
        3. 🔍 トラブルシューティング
      5. 💻 開発
        1. デバッグ

      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 -
        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 -
        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 -
        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 -
        JavaScript
        • Apple

      View all related MCP servers

      ID: s8v5wceait