Skip to main content
Glama
sassoftware

SAS MCP Server

Official
by sassoftware

Create Glossary Term

create_glossary_term

Adds business terms to the SAS Business Glossary with validated attributes and immediate publishing, preventing rejected or invisible draft entries.

Instructions

Create a business term in the SAS Business Glossary.

attributes is keyed by the attribute labels from get_glossary_term_type — call that first, because a term type can make attributes mandatory and a term missing one is rejected. Pass each value in its natural Python form and it is converted to the one spelling the glossary accepts:

  • booleanTrue / False (the strings "true"/"false" are rejected by Viya; that conversion happens here)

  • multi-select — a list, e.g. ["Retail", "Wholesale"]

  • date"2026-09-04"

  • date-time"2026-09-04T13:41:24Z"; a bare date or a numeric offset is normalised to UTC rather than rejected

  • time"15:41:28Z"; seconds and the Z are required, and a numeric offset is converted to UTC rather than dropped

Values are validated before the call, so a mistake comes back naming the attribute and what it expected, instead of as an opaque HTTP 400.

Terms are published by default. The underlying API defaults to creating a draft, which nobody but its author can see; that is almost never what a caller asking to "create a term" means, so this publishes unless publish is set false. A draft is promoted afterwards with update_glossary_term(publish=true), and is visible to list_glossary_terms only under include_drafts.

A term's name must be unique among its siblings (case-insensitively) and differ from its parent's; a clash is rejected, not merged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesTerm name, max 100 characters, no backslashes.
labelNoDisplay name, if it should differ from ``name``.
publishNoPublish immediately (default true). False leaves a draft, which ``update_glossary_term(publish=true)`` promotes later.
parent_idNoParent term id, to nest this term in the hierarchy.
term_typeYesThe term type — its UUID or its name. Immutable afterwards.
attributesNoCustom attributes keyed by label, e.g. ``{"Scope": "Group", "Used in Risk": True, "Regions": ["EMEA", "APAC"]}``.
definitionNoWhat the term means. The field users read; worth filling in.
descriptionNoShort overview, max 1000 characters.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.14.0

TDQS

A5/5.0
Behavior5/5

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

Beyond the minimal annotations, the description discloses major behavioral quirks: attribute values are converted to Viya's accepted spelling, validation fails with attribute-specific errors before the HTTP call, terms are published by default even though the underlying API defaults to draft, and name uniqueness is enforced case-insensitively among siblings. This is far more than the annotations provide.

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?

The description is front-loaded with a one-line purpose, then uses bold labels and bullets to organize conversion rules, publish behavior, and uniqueness constraints. Although longer than average, every sentence carries operational information an agent needs to avoid failed calls.

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?

Given 8 parameters, a custom attributes object, a surprising publish default, and sibling workflow dependencies, the description covers all critical invocation details: prerequisites, value formats, failure behavior, publishing, and uniqueness. An output schema exists, so not restating return values is acceptable.

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

Parameters5/5

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

Although the input schema has 100% coverage, the description adds important meaning to the attributes parameter by specifying accepted Python forms for booleans, multi-selects, dates, date-times, and times. It also clarifies the publish parameter's default and effect, and explains name uniqueness for the name parameter beyond the schema text.

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?

The opening sentence uses a specific verb and resource: 'Create a business term in the SAS Business Glossary.' The rest of the description refers to term-specific behaviors (term type, attributes, publish) that separate it from sibling tools like create_glossary_term_type and update_glossary_term.

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?

It explicitly instructs callers to invoke get_glossary_term_type first because term types can impose mandatory attributes. It also names update_glossary_term(publish=true) for promoting drafts and notes that drafts are visible under list_glossary_terms only with include_drafts, giving clear workflow direction.

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

Deploy Server

Other Tools