delete_metaobject
Permanently delete a metaobject by its GID. This irreversible action breaks any metafield references; Shopify does not auto-clean them, requiring manual fixes.
Instructions
Permanently delete a metaobject by GID. Irreversible. Any metafield references pointing at this metaobject will become broken — Shopify does NOT auto-clean references, you have to find and fix them. Use get_metaobject to confirm the right record before deleting. Returns the deleted GID, or a no-op message if nothing matched.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | GID of the metaobject to delete. Irreversible; metafield references to this metaobject become broken (Shopify does not auto-clean referrers). |
Implementation Reference
- src/tools/metaobjects.ts:464-487 (handler)Registration and handler for the 'delete_metaobject' tool. Calls the metaobjectDelete GraphQL mutation with the supplied GID, throws on user errors, and returns the deleted ID or a no-op message.
server.tool( "delete_metaobject", "Permanently delete a metaobject by GID. Irreversible. Any metafield references pointing at this metaobject will become broken — Shopify does NOT auto-clean references, you have to find and fix them. Use get_metaobject to confirm the right record before deleting. Returns the deleted GID, or a no-op message if nothing matched.", deleteMetaobjectSchema, async (args) => { const data = await client.graphql<{ metaobjectDelete: { deletedId: string | null; userErrors: ShopifyUserError[]; }; }>(METAOBJECT_DELETE_MUTATION, { id: args.id }); throwIfUserErrors(data.metaobjectDelete.userErrors, "metaobjectDelete"); return { content: [ { type: "text" as const, text: data.metaobjectDelete.deletedId ? `Deleted metaobject ${data.metaobjectDelete.deletedId}.` : "No metaobject matched; nothing deleted.", }, ], }; }, ); - src/tools/metaobjects.ts:251-257 (schema)Input schema for the delete_metaobject tool. Takes a single required parameter 'id' (string) – the GID of the metaobject to delete.
const deleteMetaobjectSchema = { id: z .string() .describe( "GID of the metaobject to delete. Irreversible; metafield references to this metaobject become broken (Shopify does not auto-clean referrers).", ), }; - src/tools/metaobjects.ts:132-139 (helper)GraphQL mutation string used by the delete_metaobject handler. Sends a MetaobjectDelete mutation with $id and returns deletedId + userErrors.
const METAOBJECT_DELETE_MUTATION = /* GraphQL */ ` mutation MetaobjectDelete($id: ID!) { metaobjectDelete(id: $id) { deletedId userErrors { field message } } } `; - src/server.ts:67-67 (registration)Registration call in the main server setup. registerMetaobjectTools(s, shopify) is invoked inside buildServer() to wire up all metaobject tools including delete_metaobject.
registerMetaobjectTools(s, shopify);