{"slug": "hello-november-singletons-media-library-mcp-server-app-sdk-typegen-and-activity", "title": "Hello November: Singletons, Media Library + MCP server, App SDK TypeGen, and activity feed export", "summary": "Sanity released its November product update, adding first-class support for singleton document types in beta, agent access to Media Library through the Sanity MCP server, App SDK TypeGen in beta, and activity feed export for Enterprise organizations on selected plans. The MCP server lets an agent upload assets up to 50 MB from a public URL or local file, query assets by aspect, type, folder or title, and edit titles and aspect values as drafts, with writes validated against the library schema and run under the signed-in user's permissions; the tools cannot delete assets or collections, change aspect definitions, or place assets in folders. App SDK TypeGen, which shipped in beta on Oct. 13 with SDK React 3.9.0, requires Sanity CLI 8.16.0 or later and Sanity SDK React 3.9.1 or later, and the activity feed export writes gzipped NDJSON mapped to OCSF 1.9.0 to a customer-owned Google Cloud Storage bucket at five past every hour UTC with a manifest listing event counts and a SHA-256 checksum.", "body_md": "# Hello November: Singletons, Media Library + MCP server, App SDK TypeGen, and activity feed export\n\nIt’s time to retire some some old workarounds with built-in singletons, agents in Media Library, generated App SDK types, and activity logs you control.\n\n- Kelsey Bernius Staff Enterprise Product Marketing Manager at Sanity\n- John Siciliano Senior Technical Product Marketing Manager\n\nPublished\n\nThere’s probably a function that hides the \"add\" button on site settings somewhere in your Studio. As of this month, you can delete it. Singleton document types now have first-class support in Sanity (in beta). Other November releases let your agent work in Media Library, extend TypeGen support to App SDK (beta), and send your organization's activity to a bucket you own. Sounds like less chores for us humans, and we are down with that.\n\n## \n\nA singleton is a document type with exactly one instance, like your navigation, site settings, or homepage. Until now, the Studio still offered \"add\" and \"duplicate\" on those types, so teams wrote custom code to hide them. If that code broke, or nobody wrote it, an editor could end up with a second copy of your site settings.\n\nSanity config now has a document property that accepts singleton types. [Register your singleton](https://www.sanity.io/docs/studio/create-a-link-to-a-single-edit-page-in-your-main-document-type-list#singh2register) there, and the Studio hides the multi-document UI for it and surfaces the document in the structure builder. If an editor on your team ever accidentally created a second copy of your site settings by accident, they will no more.\n\nIf you already maintain custom singleton code, [there is a skill](https://github.com/sanity-io/agent-toolkit/blob/main/skills/sanity-singletons/SKILL.md) that migrates it to the official support.\n\n## \n\nUploading an image from a URL or fixing a batch of asset titles is routine work that nobody wants to open an app for. If Media Library is enabled in your organization, your agent can now handle it through the Sanity MCP server. Your agent can:\n\n- Upload assets from a public URL or a local file, up to 50 MB\n- Query assets by aspect, type, folder, or title\n- Edit titles and aspect values, which save as drafts\n- Change visibility and collections, which apply immediately\n\nWrites are validated against your library schema and run with the permissions of the signed-in user. The tools do not delete assets or collections, change aspect definitions, or place assets in folders, which limits what a misfiring agent can touch. [Read the docs](https://www.sanity.io/docs/media-library/mcp).\n\n## \n\nIf you build custom apps on Sanity, you have probably written a type for a query and then rewritten it when the query changed. [App SDK TypeGen](https://www.sanity.io/docs/app-sdk/sdk-typegen) shipped in beta on Oct. 13 with SDK React 3.9.0 and generates those types for you.\n\nYou configure it per dataset in `sanity.cli.ts` under `typegen.resources`, and it writes one types file for each dataset. The `useDocument`, `useQuery`, and `useDocumentProjection` hooks infer their types from those files automatically, so you don't pass types to the hooks yourself. It needs Sanity CLI 8.16.0 or later and Sanity SDK React 3.9.1 or later.\n\nTypeGen replaces the experimental TypeGen packages. If you are still on those, this is the one to move to.\n\n## \n\nEnterprise organizations on selected plans can now send activity feed management events to their own Google Cloud Storage bucket. Once Enterprise Support enables it for your organization, an organization admin connects a bucket in Manage under Settings > Activity feed export and grants Storage Object Creator to the service account shown there. After that, Sanity starts a new export at five past every hour, UTC, covering the previous complete hour.\n\nFiles arrive as gzipped NDJSON mapped to OCSF 1.9.0, and each batch comes with a manifest that lists event counts and a SHA-256 checksum. The export covers management activity such as membership and role changes, API token lifecycle, security configuration, and project and dataset administration. Document and asset content changes are outside its scope. Your security and compliance teams get an audit trail in a standard schema, in a bucket you own.\n\nActivity Feed Export is separate from log drains. Log drains deliver logs per project, while [Activity Feed Export](https://www.sanity.io/docs/platform-management/export-activity-to-google-cloud-storage) works per organization in Manage. If you are not sure it is enabled for your organization, Enterprise Support can confirm.\n\n## \n\n**Maciej Trzciński runs a sales pipeline on Sanity.** Sales offers are not an obvious content problem. Maciej Trzciński treated them like one and [built a system to prepare them in Sanity](https://www.linkedin.com/posts/maciejtrzcinski_published-a-sanity-plugin-to-npm-its-an-ugcPost-7520890975062224896-xAm3/).\n\nDeals sync in from Pipedrive. AI researches the client and drafts the offer from past projects. An approval step built with Sanity Workflows (in beta now) checks it, and one click sends a branded PDF and email to the client. The pipeline tracks each deal until it is won or lost.\n\nWhat Maciej did not expect was how easy it is to manage through MCP. As he describes it, the \n\nHe has also published a Sanity [plugin to npm](https://www.npmjs.com/package/@maciejtrzcinski/sanity-plugin-schema-visualization), a schema visualizer.\n\nFollow [Maciej on LinkedIn](https://www.linkedin.com/in/maciejtrzcinski/) to see what he builds next.\n\n*Psst:* Maciej is part of Sanity Pioneers, our community program for practitioners building with AI and Sanity. Pioneers get early access to betas, extra AI credits, and a direct line to the engineering team. Learn more or apply at sanity.io/pioneers.\n\nThat’s, it, that’s the post. Join us on [Discord](https://discord.com/servers/sanity-1304483263171264613) to see community projects and new releases as they ship. See you all in December.", "url": "https://wpnews.pro/news/hello-november-singletons-media-library-mcp-server-app-sdk-typegen-and-activity", "canonical_source": "https://www.sanity.io/blog/november-releases-2026", "published_at": "2026-11-09 14:07:58+00:00", "updated_at": "2026-11-09 14:54:39.121895+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["Sanity", "Sanity MCP server", "Media Library", "App SDK TypeGen", "Sanity CLI", "Sanity SDK React", "Kelsey Bernius", "John Siciliano"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/hello-november-singletons-media-library-mcp-server-app-sdk-typegen-and-activity", "markdown": "https://wpnews.pro/news/hello-november-singletons-media-library-mcp-server-app-sdk-typegen-and-activity.md", "text": "https://wpnews.pro/news/hello-november-singletons-media-library-mcp-server-app-sdk-typegen-and-activity.txt", "jsonld": "https://wpnews.pro/news/hello-november-singletons-media-library-mcp-server-app-sdk-typegen-and-activity.jsonld"}}