Call metaobjectDefinitionCreate mutation with a type handle, name, and fieldDefinitions array — each field has key, type (e.g., single_line_text_field, number_integer, file_reference), and validations
Set capabilities.publishable.enabled to true on the definition if entries need to be published/unpublished independently
Create entries with metaobjectCreate, passing the definition's type handle and fields array of {key, value} pairs; file_reference fields take a GID of a previously uploaded File
Query entries with the metaobjects connection, filtering by type; use the edges.node.fields to read back typed values
Reference metaobject entries from products or other resources by writing a metafield of type metaobject_reference pointing to the entry GID
Known gotchas
Metaobject type handles are immutable after creation; plan your naming convention carefully — changing a type requires deleting and recreating the definition along with all entries
The file_reference field type requires that the file already exist in Shopify's Files system (uploaded via stagedUploadsCreate + fileCreate) before the metaobject entry can reference it
Querying metaobjects by type requires the type argument on the metaobjects connection — omitting it returns all types and can be unexpectedly slow on stores with many metaobject types
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp