Sanity MCP server
Sanity in any MCP client, through Memtro: Sanity does not publish this server. Memtro's Sanity connector reads Sanity through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Sanity content: documents of a type (posts, pages, products, authors…) newest-changed first with a total, one document in full with its rich text as plain text, and drafting a new document, and on request editing a draft's fields, publishing or unpublishing a document, discarding a draft or deleting a document. Reads published content only.
Reads
sanity_list_documentsSanity documents of one type (post, page, product, author… as named in the schema), most recently changed first…sanity_get_documentOne Sanity document by its id, with every field: rich text as plain text, references as the ids they point to, images marked.
Acts, when you ask
These change something in Sanity. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
sanity_create_draftCreate a new draft document in Sanity, of a type the schema defines, with the fields given.sanity_edit_draftChange fields on a Sanity document's draft (drafts.<id>): set the given top-level fields to new values and clear the fields named in unset.sanity_publish_documentPublish a Sanity document's draft (drafts.<id>) so it replaces the live version: everyone reading the site or app sees it.sanity_unpublish_documentUnpublish a live Sanity document: it disappears from the site or app for everyone, and its content is kept as the draft drafts.<id>.sanity_discard_draftDiscard a Sanity document's unpublished draft (drafts.<id>), throwing away its unpublished changes.sanity_delete_documentDelete one Sanity document, permanently: it disappears from the site or app and from the Studio.
Connect it
First connect Sanity on Dashboard → Connections, then add Memtro to your client once. The Sanity tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Sanity connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › What blog posts were published most recently?
- › How many product documents do we have in Sanity?
- › Show me the full text of the pricing page
- › Create a draft post titled Year in review with this introduction
- › Publish the draft of the spring pricing page
Questions
- Is this an official Sanity MCP server?
- No. It is Memtro's MCP server with Memtro's Sanity connector behind it: the connector reads Sanity through its API with the credentials you connect on Dashboard → Connections, and Sanity publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Sanity?
- Only when you ask, and only what it has been granted: create a new draft document of a given type, unpublished until an editor publishes it; set or clear top-level fields on a document's draft; publish a document's draft so it goes live; unpublish a live document, keeping its content as a draft; discard a document's unpublished draft; delete a document, and its draft if asked (permanent). Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.