Connect your AI Agents to Sanity in minutes

Available tools
list_cors_origins
List CORS origins allowed to call the project's API from a browser.
create_cors_origin
Whitelist an origin (e.g., https://example.com) to call the API from a browser.
delete_cors_origin
Remove a CORS origin by its numeric ID. Use list_cors_origins to find IDs.
list_datasets
List all datasets in a project with their ACL mode and creation time.
create_dataset
Create a new dataset in a project. Name must be lowercase alphanumeric with '_' or '-'.
update_dataset
Update a dataset's ACL mode to 'public' or 'private'.
delete_dataset
Delete a dataset permanently. All documents inside are removed. This cannot be undone.
query_documents
Run a GROQ query over a dataset. Use bound $params for user input. Supports pagination via GROQ slicing like [0...100].
get_document
Fetch one or more documents by ID, bypassing any CDN cache. Use query_documents to discover IDs.
create_document
Create a new document. The document must include a '_type' field. If '_id' is omitted, Sanity assigns one.
create_or_replace_document
Create a document, or fully replace an existing document with the same _id. Use get_document first to check existence.
patch_document
Apply a partial update (set / unset / inc / dec / setIfMissing) to an existing document. Use query_documents to find IDs.
delete_document
Delete a document by ID. For drafts, prefix the ID with 'drafts.'. This cannot be undone.
get_document_history
Retrieve a document's state at a specific revision or point in time. Provide either 'revision' or 'time'.
list_projects
List all Sanity projects the authenticated user is a member of.
get_project
Get details for a specific Sanity project. Uses project_id from credentials if not provided.
update_project
Update a project's display name, studio host, or metadata. Use list_projects to find valid IDs.
list_project_features
List feature flags enabled for a project, such as private datasets or scheduled publishing.
validate_credential
Validate Sanity API token and project ID by fetching the configured project.
list_webhooks
List all webhooks configured for a project.
get_webhook
Get a webhook's full configuration including filter, projection, and headers.
create_webhook
Create a webhook that fires on document create/update/delete events matching a GROQ filter.
update_webhook
Update a webhook's configuration. Only provided fields are changed.
delete_webhook
Delete a webhook permanently. Use list_webhooks to find IDs.
list_webhook_attempts
List delivery attempts for a webhook including HTTP status codes. Use offset from page_info for the next page.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's Sanity MCP server
FAQs on using Merge's Sanity MCP server
Explore other MCP servers built and managed by Merge




















Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now
