Skip to main content
Glama

create_song

Creates a new song from a validated structured AST and automatically formats and serializes it to .evox markup for songbook authoring.

Instructions

Creates a new song from a validated structured AST. Automatically formats and serializes to .evox markup.

Input Schema

NameRequiredDescriptionDefault
slugNoOptional filename slug (e.g. 'hotel_california'). If omitted, automatically derived from metadata.name.
upsertNoIf true, overwrite existing song if it already exists. Defaults to false.
columnsYesList of columns. Each column contains stanzas, and each stanza contains lines with 0-indexed chord-over-lyric pairs: { chords?: string, lyrics?: string }.
metadataYesSong metadata including name (max 60 chars), author, font size (pt), column_width (pt), and gutter (pt).
project_dirNoSongbook directory path (defaults to EVOX_PROJECT_DIR or cwd).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses formatting/serialization to .evox and validation of the AST, but omits duplicate/existing-song handling, permission requirements, and whether creation is destructive or reversible.

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 two tight sentences with the core action and output format front-loaded. There is no wasted wording or tangential detail.

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

Completeness3/5

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

The tool is complex, with nested columns/stanzas/lines, five parameters, no output schema, and no annotations. The description covers the core create-and-serialize behavior, but is thin on operational context such as upsert/overwrite and target directory; the rich schema supplies parameter detail, so 3 is appropriate rather than lower.

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 all five parameters and nested fields are already documented in the schema. The description only alludes to the structured AST and adds no syntax or format detail beyond what the schema provides, making baseline 3 appropriate.

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 uses a specific verb, "Creates," and resource, "a new song," and adds the source (validated structured AST) and output format (.evox markup). It does not explicitly name update_song or other siblings, so it stops short of full sibling differentiation.

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?

No when-to-use guidance, prerequisites, or alternatives are given. The reader must infer that this is the creation path and that update_song handles existing songs; upsert behavior is documented only in the schema.

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