Skip to main content
Glama
qase-tms

Qase MCP Server

Official
by qase-tms

Create or update custom field

qase_custom_field_upsert

Create or update a Qase custom field, setting entity, type, visibility, and project scope; use an ID to update and omit it to create.

Instructions

Create or update a custom field. On create, entity (case, run, defect) and type are required and fixed forever — the update endpoint cannot change them. Fields are workspace-wide; scope with projects_codes or is_enabled_for_all_projects. Read existing fields with qase_project_context or qase_get. Cost: one call to create, two to update, 0.5-0.9s.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoCustom field ID — if provided, updates; if omitted, creates
typeNoField type. Required when creating; cannot be changed later
titleYesField title
valueNoOption titles — required for selectbox, radio and multiselect
entityNoWhat the field is attached to. Required when creating; cannot be changed later
is_visibleNoWhether the field is shown on the entity
is_requiredNoWhether a value must be given on create
placeholderNoHint shown in the empty field
default_valueNoValue a new entity gets when none is entered
is_filterableNoWhether the field can be used as a filter
projects_codesNoProjects the field applies to. Ignored when is_enabled_for_all_projects is true
is_enabled_for_all_projectsNoApply to every project in the workspace, instead of only those in projects_codes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.0.0

TDQS

A4.2/5.0
Behavior4/5

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

With only destructiveHint=false in annotations, the description does real work: it discloses that entity/type are fixed forever after create, that fields are workspace-wide with projects_codes/is_enabled_for_all_projects scoping, and gives per-call cost and latency. It omits one important behavior for an upsert with 12 params — whether an update merges or replaces unspecified fields.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the action, then the immutability constraint, then scoping, read alternative, and cost. No filler; each clause adds an actionable fact.

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?

For a 12-parameter, no-output-schema mutation tool it covers purpose, key constraints, scoping, read alternatives, and cost. The only notable omission is update merge/replace semantics, which leaves one gap for correct invocation.

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 every parameter, including the id create-vs-update semantics and the projects_codes/is_enabled_for_all_projects precedence. The description largely restates what the schema already conveys, yielding the baseline 3.

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?

States a specific verb (create or update) plus resource (custom field), and the pairing with the qase_custom_field_delete sibling is unambiguous. The added note that entity/type are required on create and immutable afterwards further pins down what this tool does versus a generic upsert.

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

Usage Guidelines4/5

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

It routes the agent to alternatives for the read path ('Read existing fields with qase_project_context or qase_get') and effectively distinguishes create vs update via the id parameter. It stops short of stating when NOT to use it (e.g., use the delete tool to remove a field), so no explicit exclusions.

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