Skip to main content
Glama

generate_historical_oltp

Generate historical customer, address, order, line, shipment, and entity_link records to populate the ecommerce lakehouse for analytics testing.

Instructions

Write customer, address, order, line, shipment, and entity_link tables.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
as_jobNo
year_countNo
customer_countNo
orders_per_yearNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies mutation via 'Write' but discloses nothing about whether existing data is overwritten, whether execution is synchronous or asynchronous (despite the as_job parameter hinting at job-based execution), or what side effects occur. For a tool that writes multiple tables, this is a significant gap.

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

Conciseness3/5

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

A single, front-loaded sentence with no wasted words - structurally clean. However, this is under-specification rather than effective conciseness: the description omits critical information about parameters and behavior, making it too brief for the tool's complexity.

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

Completeness1/5

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

This is a 4-parameter mutation tool that writes six tables, with no annotations and no output schema. The description is far too thin - it doesn't explain parameter semantics, execution model, data implications, or any context an agent needs to invoke it correctly. Completely inadequate for a tool of this complexity.

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

Parameters2/5

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

Schema description coverage is 0% and the description adds nothing about the 4 parameters. While year_count, customer_count, and orders_per_year are somewhat self-explanatory by name, as_job is ambiguous (job vs synchronous execution) and none of the parameters are explained or contextualized. The description fails to compensate for the complete lack of schema-level parameter documentation.

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?

States a specific action ('Write') with an enumerated resource list (customer, address, order, line, shipment, entity_link tables). The purpose is clear and concrete. However, differentiation from siblings relies mostly on the tool name ('historical' vs generate_realtime_orders) rather than the description itself, and 'write' is a generic verb that doesn't clarify whether this creates, populates, or overwrites.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus alternatives. Siblings include generate_realtime_orders (similar generation, realtime) and etl_star_historical (ETL for historical data), yet the description gives no selection criteria, prerequisites, or exclusions. An agent must infer usage entirely from the tool name.

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