mcp-sanity-images
Uploads local images to Sanity CMS as assets, and allows patching them onto documents, running GROQ queries, and managing image assets.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-sanity-imagesUpload the image at ~/Desktop/banner.jpg to Sanity"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Quick Start
1. Get your Sanity token
Either set the SANITY_TOKEN env var, or just log in with the Sanity CLI:
npx sanity loginThe server reads the token from the Sanity CLI config automatically (~/.config/sanity/config.json on all platforms).
2. Add to Claude Code
claude mcp add sanity-images --scope user --transport stdio \
-e SANITY_PROJECT_ID=your-project-id \
-- npx -y mcp-sanity-images@latestThat's it. Restart Claude Code and the tools are available. Every session runs the latest version automatically.
Also works with
bunx mcp-sanity-images@latestif you have Bun.
Download a pre-built binary from Releases:
Platform | File |
macOS (Apple Silicon) |
|
macOS (Intel) |
|
Linux |
|
Windows |
|
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-imagesWindows (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
Add to your claude_desktop_config.json:
{
"mcpServers": {
"sanity-images": {
"command": "npx",
"args": ["-y", "mcp-sanity-images@latest"],
"env": {
"SANITY_PROJECT_ID": "your-project-id"
}
}
}
}{
"mcpServers": {
"sanity-images": {
"command": "/usr/local/bin/mcp-sanity-images",
"env": {
"SANITY_PROJECT_ID": "your-project-id"
}
}
}
}{
"mcpServers": {
"sanity-images": {
"command": "%LOCALAPPDATA%\\mcp-sanity-images.exe",
"env": {
"SANITY_PROJECT_ID": "your-project-id"
}
}
}
}Related MCP server: mcp-local-image-reader
Tools
Tool | Description |
| Upload a single local image to Sanity as an asset |
| Upload an image and patch it onto a document field |
| Upload all images from a folder as assets |
| List image files in a directory |
| Run a GROQ query (find documents before attaching) |
Supported formats: PNG, JPG/JPEG, WebP, GIF, SVG.
Configuration
Env var | Required | Default | Description |
| Yes | — | Your Sanity project ID |
| No |
| Dataset name |
| No* | — | API token (*falls back to CLI auth) |
All tools also accept projectId and dataset as parameters, overriding the env vars per-call.
Tool Details
upload_image
Upload a single file and get back the asset reference.
filePath: "/path/to/hero.png"
alt: "Hero banner" (optional — derived from filename)Returns { assetId, url, alt, reference } — the reference is ready to patch onto any Sanity image field.
upload_and_set
Upload + patch in one call.
filePath: "/path/to/hero.png"
documentId: "product-123"
fieldPath: "hero.image"batch_upload
Upload all images from a directory.
directory: "/path/to/images"
recursive: truelist_images
List image files without uploading — useful for the AI to see what's available.
directory: "/path/to/images"
recursive: truegroq_query
Run any GROQ query. Useful to find document IDs before using upload_and_set.
query: "*[_type == 'product']{_id, title, slug}"Updates
Using npx @latest (recommended): You always get the latest version — no manual updates needed.
Using a binary: The server checks for new releases on startup and logs to stderr if outdated:
[update] v0.2.0 available (current: v0.1.0). Download: https://github.com/pijusz/mcp-sanity-images/releases/latestCheck your installed version:
mcp-sanity-images --versionTo update, download the new binary and replace the old one.
Development
Requires Bun.
git clone https://github.com/pijusz/mcp-sanity-images.git
cd mcp-sanity-images
bun install
bun test # 37 tests
bun run lint # biome check
bun run build # compile standalone binaryLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
MCP server for Qwen Image 3 AI image generation
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for uploading images to ImgBB from Claude-compatible clients.3MIT
- AlicenseAqualityDmaintenanceA simple MCP server that reads local images and returns them as ImageContent for LLM vision analysis.1MIT
- AlicenseAqualityDmaintenanceMCP server for managing personal assets (images, files) in Vercel Blob storage, enabling upload, list, metadata, delete, and copy operations.514MIT
- FlicenseBqualityBmaintenanceOpenAI-compatible MCP server for running image analysis tools against your own vision model endpoint.74-