Sanity tools in Cogny
Cogny's Sanity integration exposes 17 tools (7 read, 8 write, 2 destructive) to an AI agent over MCP. The same tools are available on every plan, from your own AI client or inside the Cogny app.
- Read (7): only reads data.
- Write (8): creates or changes something.
- Destructive (2): deletes, removes or replaces something.
Over MCP your own AI client asks before it runs a write. To take a tool away from your agent, block it in Settings → Integrations. Plans, approvals and limits.
All tools
| Tool | Kind | What it does |
|---|---|---|
tool_query_groq | Read | Execute a GROQ query against the Sanity Content Lake. |
tool_get_document | Read | Get a single document by its ID. |
tool_list_documents | Read | List documents of a specific type with pagination and filtering. |
tool_search_documents | Read | Full-text search across documents. |
tool_get_schema_types | Read | Discover all document types and their counts in the dataset. |
tool_list_assets | Read | List assets (images and/or files) in the dataset. |
tool_get_references | Read | Find all documents that reference a given document. |
tool_create_document | Write | Create a new document. |
tool_create_or_replace_document | Write | Create a document if it doesn't exist, or completely replace it. |
tool_patch_document | Write | Partially update a document. |
tool_delete_document | Destructive | Delete a document by ID. |
tool_delete_documents_by_filter | Destructive | Delete all documents matching a GROQ filter. |
tool_publish_document | Write | Publish a draft document, making it live. |
tool_unpublish_document | Write | Unpublish a document, moving it back to draft state. |
tool_batch_patch | Write | Apply multiple patches in a single transaction. |
tool_upload_image_from_url | Write | Upload an image from an external URL to Sanity. |
tool_upload_file_from_url | Write | Upload a file from an external URL to Sanity. |
Exact input schemas come from tools/list once Sanity is connected; the free plan is enough to check. Missing something? Your agent can ask for it with request_feature.