Skip to main content
Glama

Last Price

set_feature_contract

DestructiveIdempotent

Save your workspace's feature contract, replacing the one saved: the request fields, by API path, your buyer-aware pricing models learn from, and how each becomes a label (a category, a numeric bin or a flag). Fields that identify a person are refused. Needs a Last Price credential with routing write scope; from the dashboard, an owner or admin.

Input Schema

NameRequiredDescriptionDefault
opt_inNoThe customer segment and geo fields are used only when listed here, as in buyer-aware pricing.
contractYesThe contract: { inputs: [...] } in model column order, at most 64. Each input has a name, the field's path in the pricing request context (a top-level field such as the buyer type or channel, or metadata.<path> such as metadata.device.type; a list is read through [] and reduced, as in metadata.items[]:count, metadata.items[].price:sum or metadata.items[].kind:has=hdmi), and a type: category (with vocabulary, 1 to 50 values), bucket (with edges, rising numbers) or flag. infer_feature_contract proposes one from sample requests.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

The description adds meaningful behavior beyond the annotations: it says the saved contract is replaced, that personally identifying fields are refused, and what credentials or dashboard role are required. It does not cover validation behavior or atomicity in much detail, but the key operational constraints are disclosed.

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?

The purpose is front-loaded and the sentences are information-dense without obvious filler. The long first sentence is somewhat packed, but every clause contributes useful context.

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

Completeness4/5

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

Given the nested input schema and the absence of an output schema, the description plus schema give enough context to invoke the tool correctly. It could say more about response behavior or failure modes, but the core operational and authorization context is present.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the nested contract and opt_in parameters in detail. The description reinforces the concept of request-field paths and label types, but it does not add syntax or semantics beyond what the schema already provides, and it does not mention opt_in at all.

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

Purpose4/5

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

The description names a specific verb and resource: saving the workspace's feature contract and replacing the existing one. It is clear what the tool does, though it does not explicitly contrast with sibling tools such as infer_feature_contract or get_feature_contract.

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

Usage Guidelines3/5

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

Usage is implied by 'Save your workspace's feature contract, replacing the one saved,' and useful prerequisites are given. However, it does not explicitly state when to choose this over alternatives like infer_feature_contract or delete_feature_contract.

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