JUHE API Marketplace
jlmelis avatar
MCP Server

Sanity MCP Server

An MCP server that enables Claude Desktop to interact with Sanity.io content, providing tools to create, edit, list documents and get schema templates.

1
GitHub Stars
8/23/2025
Last Updated
MCP Server Configuration
1{
2 "command": "node",
3 "args": [
4 "src/sanity-mcp-server.ts"
5 ],
6 "env": {
7 "SANITY_PROJECT_ID": "your_project_id",
8 "SANITY_DATASET": "your_dataset",
9 "SANITY_TOKEN": "your_token"
10 }
11}
JSON11 lines

README Documentation

Sanity MCP Server

This MCP server provides tools for interacting with Sanity.io content from Claude Desktop.

Installation

  1. Clone this repository
  2. Install dependencies:
npm install
  1. Create a .env file with your Sanity credentials:
SANITY_PROJECT_ID=your_project_id
SANITY_DATASET=your_dataset
SANITY_TOKEN=your_token

Usage with Claude Desktop

  1. In Claude Desktop, go to Settings > MCP Servers
  2. Add a new server with these settings:
{
  "command": "node",
  "args": ["src/sanity-mcp-server.ts"],
  "env": {
    "SANITY_PROJECT_ID": "your_project_id",
    "SANITY_DATASET": "your_dataset", 
    "SANITY_TOKEN": "your_token"
  }
}

Available Tools

Create Document

Creates a new document in Sanity

Parameters:

  • type: Document type
  • content: Document content

Example:

{
  "type": "post",
  "content": {
    "title": "My Post",
    "body": [
      {
        "_type": "block",
        "children": [
          {
            "_type": "span",
            "text": "Hello world!"
          }
        ]
      }
    ]
  }
}

Edit Document

Edits an existing document

Parameters:

  • id: Document ID
  • content: Updated content

List Documents

Lists documents of a specific type

Parameters:

  • type: Document type
  • limit: Maximum number of documents to return (default: 10)

Get Schema

Gets a schema template based on an existing document

Note: For best results, manually create at least one document of each type before using this tool.

Parameters:

  • type: Document type

Example Usage

  1. Create a new blog post:
{
  "tool": "create-document",
  "arguments": {
    "type": "post",
    "content": {
      "title": "My First Post",
      "slug": "my-first-post",
      "body": [
        {
          "_type": "block",
          "children": [
            {
              "_type": "span",
              "text": "This is my first post!"
            }
          ]
        }
      ]
    }
  }
}
  1. Edit an existing post:
{
  "tool": "edit-document",
  "arguments": {
    "id": "post-id-123",
    "content": {
      "title": "Updated Title"
    }
  }
}
  1. List recent posts:
{
  "tool": "list-documents",
  "arguments": {
    "type": "post",
    "limit": 5
  }
}
  1. Get schema for posts:
{
  "tool": "get-schema",
  "arguments": {
    "type": "post"
  }
}

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source