Skip to main content
Glama
awslabs
by awslabs

get_oscal_schema

Retrieve the JSON or XSD schema for a specified OSCAL model to examine its structure and fields.

Instructions

A tool that returns the schema for specified OSCAL model. Try this tool first for any questions about the structure of OSCAL models. By default we return a JSON schema, but schema_type parameter can change that behavior. You can use the list_models tool to get a list of valid model names. Request the complete schema only as a last resort - it's very large and may overflow your context window.

Args: ctx: MCP server context (should be injected automatically by MCP server) model_name: The name of the OSCAL model. If no value is provided, then we return a "complete" schema including all models, which is large. schema_type: If json (default) then return the JSON schema for the specified model. Otherwise, return its XSD (XML) schema.

Returns: str: The requested schema as JSON string

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
model_nameNocomplete
schema_typeNojson

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

With no annotations, the description carries full burden. It explains default behavior (returns JSON schema, default model_name='complete' returns all-models schema) and warns about large context consumption. However, it does not mention error handling for invalid model names or prerequisites, though these are minor omissions.

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 concisely structured: first sentence states purpose, then usage guidance, then warning, then parameter details. Every sentence adds value; no fluff. It's appropriately sized for the tool's complexity.

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 the tool's complexity (schema retrieval with two parameters and large outputs), the description covers all essential aspects: purpose, parameters, defaults, a critical warning, and cross-reference to list_models. The output schema is provided separately, so return format needs no further detail. Complete for an AI agent to use correctly.

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?

Schema coverage is 0%, so description adds critical meaning. It explains that model_name defaults to 'complete' (returning all models, large), and schema_type controls format (json vs XSD). It also suggests using list_models for valid model names, which is not in the schema. This far exceeds the schema's minimal info.

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 description clearly states the tool returns the schema for a specified OSCAL model, with a verb 'returns' and resource 'schema for specified OSCAL model'. It distinguishes itself by suggesting using list_models for valid model names, and no sibling tool performs the same function.

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?

The description provides explicit guidance: 'Try this tool first for any questions about the structure of OSCAL models.' It warns against requesting the 'complete' schema unless necessary due to size, and directs users to list_models for valid names. This gives clear when-to-use and exclusions.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/awslabs/mcp-server-for-oscal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server