mcpField
M
mcp-sanity-images

mcp-sanity-images

ローカル
github.com/pijuszファイル・ストレージ16 日前に更新

mcp-sanity-images について

mcp-sanity-imagesは、ローカル画像をSanity CMSに取り込むMCPサーバーです。単体・フォルダー単位のアップロード、ドキュメントへのアセット設定、GROQによるコンテンツ検索に対応します。

主な機能

  1. 01画像アセットの単体アップロード
  2. 02アップロードとドキュメントへの設定
  3. 03フォルダー内画像の一括アップロード
  4. 04ローカル画像ファイルの一覧表示
  5. 05読み取り専用GROQクエリの実行

活用シーン

  1. 01ローカル画像をSanityドキュメントに追加
  2. 02ディレクトリ内の画像アセットをアップロード
  3. 03画像設定前にドキュメントIDを検索

MCP 対応

ローカル画像のSanityへのアップロード、ドキュメントフィールドの更新、ファイル一覧、GROQクエリのツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pijusz-mcp-sanity-images": {
"command": "npx",
"args": [
"-y",
"mcp-sanity-images"
]
}
}
}
起動コマンドnpx -y mcp-sanity-images

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-sanity-images0.3.7

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
altstringいいえ
datasetstringいいえ
filePathstringはい
projectIdstringいいえ

詳細

MCPi sanity-images

ローカル画像をSanity CMSにアップロードする MCP サーバーです。
AI アシスタントがファイルシステムから Sanity に画像ファイルをアセットとして直接アップロードできます。


クイックスタート

1. Sanity トークンを取得する

SANITY_TOKEN 環境変数を設定するか、Sanity CLI でログインしてください。

npx sanity login

サーバーは Sanity CLI の設定からトークンを自動的に読み取ります(すべてのプラットフォームで ~/.config/sanity/config.json)。

2. Claude Code に追加する
claude mcp add sanity-images --scope user --transport stdio \
  -e SANITY_PROJECT_ID=your-project-id \
  -- npx -y mcp-sanity-images@latest

これで完了です。Claude Code を再起動すると、ツールを利用できます。各セッションでは、常に最新バージョンが自動的に実行されます。

Bun がインストールされている場合は、bunx mcp-sanity-images@latest も使用できます。

代替方法:スタンドアロンバイナリ

リリースからビルド済みのバイナリをダウンロードします。

プラットフォームファイル
macOS(Apple Silicon)mcp-sanity-images-darwin-arm64
macOS(Intel)mcp-sanity-images-darwin-x64
Linuxmcp-sanity-images-linux-x64
Windowsmcp-sanity-images-windows-x64.exe

macOS / Linux:

curl -Lo mcp-sanity-images https://github.com/pijusz/mcp-sanity-images/releases/latest/download/mcp-sanity-images-darwin-arm64
chmod +x mcp-sanity-images
sudo mv mcp-sanity-images /usr/local/bin/
claude mcp add sanity-images --scope user --transport stdio \
  -e SANITY_PROJECT_ID=your-project-id \
  -- /usr/local/bin/mcp-sanity-images

Windows(PowerShell):

Invoke-WebRequest -Uri "https://github.com/pijusz/mcp-sanity-images/releases/latest/download/mcp-sanity-images-windows-x64.exe" -OutFile "$env:LOCALAPPDATA\mcp-sanity-images.exe"
claude mcp add sanity-images --scope user --transport stdio -e SANITY_PROJECT_ID=your-project-id -- "%LOCALAPPDATA%\mcp-sanity-images.exe"
Claude Desktop

claude_desktop_config.json に追加します。

npx を使用(自動更新)
{
  "mcpServers": {
    "sanity-images": {
      "command": "npx",
      "args": ["-y", "mcp-sanity-images@latest"],
      "env": {
        "SANITY_PROJECT_ID": "your-project-id"
      }
    }
  }
}
バイナリを使用(macOS / Linux)
{
  "mcpServers": {
    "sanity-images": {
      "command": "/usr/local/bin/mcp-sanity-images",
      "env": {
        "SANITY_PROJECT_ID": "your-project-id"
      }
    }
  }
}
バイナリを使用(Windows)
{
  "mcpServers": {
    "sanity-images": {
      "command": "%LOCALAPPDATA%\\mcp-sanity-images.exe",
      "env": {
        "SANITY_PROJECT_ID": "your-project-id"
      }
    }
  }
}

ツール

ツール説明
upload_imageローカル画像を 1 枚、アセットとして Sanity にアップロードします
upload_and_set画像をアップロードし、ドキュメントのフィールドにパッチを適用します
batch_uploadフォルダー内のすべての画像をアセットとしてアップロードします
list_imagesディレクトリ内の画像ファイルを一覧表示します
groq_queryGROQ クエリを実行します(添付前にドキュメントを検索)。オプションで perspective を指定できます(デフォルトは raw、published、drafts)

対応形式:PNG、JPG/JPEG、WebP、GIF、SVG。

設定

環境変数必須デフォルト説明
SANITY_PROJECT_IDはい—Sanity プロジェクト ID
SANITY_DATASETいいえproductionデータセット名
SANITY_TOKENいいえ*—API トークン(*CLI 認証にフォールバックします)

すべてのツールで projectId と dataset もパラメーターとして受け付け、呼び出しごとに環境変数を上書きできます。

ツールの詳細

upload_image

単一のファイルをアップロードし、アセット参照を取得します。

filePath: "/path/to/hero.png"
alt: "Hero banner"  (optional — derived from filename)

{ assetId, url, alt, reference } を返します。reference は Sanity の任意の画像フィールドにパッチを適用できる状態です。

upload_and_set

アップロードとパッチ適用を 1 回の呼び出しで行います。

filePath: "/path/to/hero.png"
documentId: "product-123"      # or "drafts.product-123" to patch the draft
fieldPath: "hero.image"

アップロード前に、ツールは <id> と drafts.<id> のどちらが存在するかを確認するため、ID が間違っていてもアップロードされません。

渡す値存在するものパッチ適用先
product-123公開版のみproduct-123
product-123公開版とドラフトproduct-123。ドラフトは変更されない旨の note が付きます(Studio ではドラフトが表示され、公開するとフィールドが上書きされます)
product-123ドラフトのみ(未公開)drafts.product-123。note と requestedDocumentId が付きます
drafts.product-123ドラフトdrafts.product-123
いずれかどちらも存在しない何も行われず、"Document not found" を返します

応答の documentId は、実際にパッチが適用されたドキュメントです。ミューテーションは returnIds=true&visibility=sync を指定して送信されるため、後続の groq_query で変更を確認できます。

batch_upload

ディレクトリ内のすべての画像をアップロードします。

directory: "/path/to/images"
recursive: true

{ uploaded, assets } を返します。一部のファイルが失敗しても、残りはアップロードされ、失敗したファイルは failed(および failedCount)に一覧表示されます。

list_images

アップロードせずに画像ファイルを一覧表示します。AI が利用可能な画像を確認するのに便利です。

directory: "/path/to/images"
recursive: true
groq_query

任意の GROQ クエリを実行します(読み取り専用)。長いクエリは自動的に POST で送信されます。upload_and_set を使用する前にドキュメント ID を見つけるのに便利です。

query: "*[_type == 'product']{_id, title, slug}"
perspective: "raw"   # optional: raw (default) | published | drafts
視点クエリで参照できる内容
raw(デフォルト)公開済みドキュメントと下書きを、それぞれの実際の ID(下書きは drafts. が接頭辞として付いた ID)とともに並べて表示します。これらの ID をそのまま upload_and_set に渡せます。
published公開済みドキュメントのみを表示します。下書きは表示されません。
draftsすべての下書きを、公開済みであるかのように適用します。_id は常に公開済み ID です(これまで一度も公開されていない下書きの場合も同様です)。保存されている ID は _originalId にあります。

サーバーでは Sanity API バージョン v2025-02-19 を固定して使用します。このバージョンでは、API のデフォルトの視点が published に変更されました。このツールは、指定がない場合は raw を送信するため、以前のリリース(API v2021-10-21、デフォルトは raw)と同じ結果が得られます。

更新

npx @latest を使用する場合(推奨):常に最新バージョンを取得できるため、手動で更新する必要はありません。

バイナリを使用する場合:サーバーは起動時に新しいリリースを確認し、古いバージョンの場合は stderr にログを出力します。

[mcp-sanity-images] WARN v0.5.0 available (current: v0.4.1). Download: https://github.com/pijusz/mcp-sanity-images/releases/latest

インストール済みのバージョンを確認します。

mcp-sanity-images --version

更新するには、新しいバイナリをダウンロードして古いものと置き換えます。

開発

Bun が必要です。

git clone https://github.com/pijusz/mcp-sanity-images.git
cd mcp-sanity-images
bun install
bun test
bun run lint      # biome check
bun run build     # compile standalone binary

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。