Skip to main content
Glama

Costory: Your Finops MCP

publish_label_dimensions

Destructive

Merge add/update/delete operations onto published label dimensions, then replace the stored document (one feature-engineering refresh, about 10 minutes). Input is operations[], never the full labels array — sibling labels you do not mention are kept. add: sourceKeys (required), optional name/maps (id is generated). update/delete: target by id from list_label_dimensions (or an id created by an earlier add in the same array). Duplicate sourceKeys across labels are rejected; move a key with update on the owner in the same array. Names must be unique across labels and virtual dimension bqNames (default name is a sanitized sourceKeys[0]); a collision rejects the whole operations array — send a different unique name. Deleting a label and adding it back (same name or sourceKeys) in the same array is allowed, in either order. dryRun defaults true (preview the full next labels document, no write). Persist once with dryRun: false and confirm: true. Check list_label_dimension_usages before rename or delete. Demo orgs are read-only; dimensionsAdminOnly requires an org admin. Real write is Clerk MCP only — the service route accepts dry-run only. Do not call publish twice. EXAMPLES: • Preview adding environment + team → { dryRun: true, operations: [{ op: "add", sourceKeys: ["env", "environment"], name: "environment", maps: [{ value: "prd", to: "production" }] }, { op: "add", sourceKeys: ["team"], name: "team" }] } • Persist the same ops once → { dryRun: false, confirm: true, operations: [] }

Input Schema

NameRequiredDescriptionDefault
slugNoOrganization slug. Omit to auto-detect from your account (fails if you belong to multiple orgs).
dryRunNoWhen true (default), merge and validate only — no Prisma write and no feature-engineering job.
confirmNoMust be true to persist. Merges add/update/delete onto all existing label dimensions, replaces the stored document, and starts a feature-engineering refresh that takes about 10 minutes. Put every change into this one call. Check list_label_dimension_usages before delete or rename.
operationsYesadd / update / delete operations applied in order onto the currently published labels.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark it destructive and non-read-only, and the description adds substantial context beyond them: a ~10 minute feature-engineering refresh, sibling labels not mentioned are preserved, duplicate sourceKeys and name collisions reject the whole array, delete-then-re-add is permitted in either order, and an auth/route constraint (admin-only, Clerk-only writes). This is far more than the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the dryRun-first workflow are front-loaded, and given the merge/collision/ordering complexity few sentences are wasted. It is a dense single paragraph rather than a structured list, which makes the many constraints harder to scan, but it is not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers what dryRun returns (the full next labels document, preview only) versus what the real write does, plus ordering, collision, and auth constraints. An agent has everything needed to construct a correct call for this high-risk mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3, but the description adds array-level semantics the schema cannot express: ids are generated for add, update/delete target an id from list_label_dimensions or an earlier add in the same array, default name is a sanitized sourceKeys[0], and moving a key with update on the owner in the same array. It largely restates but usefully frames the per-item fields in operation terms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: 'Merge add/update/delete operations onto published label dimensions, then replace the stored document.' It immediately distinguishes itself from read-only siblings (list_label_dimensions, list_label_dimension_usages) and from the virtual-dimension publish path, so an agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use and when-not-to: dryRun defaults true for preview, persist once with dryRun:false and confirm:true, check list_label_dimension_usages before rename/delete, demo orgs are read-only, dimensionsAdminOnly requires an org admin, and real writes happen through Clerk MCP only (the service route is dry-run only). It also warns not to call publish twice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources