MCP Server

Zachary Roth Music

com.zacharyr0th.music/public
Media & Content Public & reachable MCP 2025-11-25

What this MCP does

Analyzes and generates bounded cyclic musical scales, exports MusicXML, and searches public recordings, releases, tracks, and sheet-music resources.

analyze_cyclic_scale
Analyze Cyclic Scale
Use this when an agent needs to analyze one bounded cyclic interval word, including its pitch path, rotations, reversal partners, reflection class, and limited-transposition status. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['modulus', 'intervalWord'], 'properties': {'modulus': {'type': 'integer', 'maximum': 16, 'minimum': 5}, 'intervalWord': {'type': 'array', 'items': {'type': 'integer', 'maximum': 16, 'minimum': 1}, 'maxItems': 10, 'minItems': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
calculate_equal_division_frequency
Calculate Equal Division Frequency
Use this when an agent needs to calculate one deterministic frequency in an equal division of the octave with an optional concert-root transposition. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['divisionsPerCycle', 'division'], 'properties': {'division': {'type': 'number', 'maximum': 16, 'minimum': 0}, 'baseFrequency': {'type': 'number', 'default': 261.63, 'maximum': 20000, 'minimum': 20}, 'rootSemitones': {'type': 'integer', 'default': 0, 'maximum': 11, 'minimum': 0}, 'divisionsPerCycle': {'type': 'integer', 'maximum': 16, 'minimum': 5}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
classify_cyclic_mode
Classify Cyclic Mode
Use this when an agent needs to classify one bounded cyclic mode by acting group: its rotation, reversal, and set classes; transposition-symmetry kernel; reflection structure; interval and Fourier content; evenness and generation; and every direct-sum factorization. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['modulus', 'intervalWord'], 'properties': {'modulus': {'type': 'integer', 'maximum': 16, 'minimum': 5}, 'intervalWord': {'type': 'array', 'items': {'type': 'integer', 'maximum': 16, 'minimum': 1}, 'maxItems': 10, 'minItems': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
export_cyclic_scale_musicxml
Export Cyclic Scale Musicxml
Use this when an agent needs to create a bounded, two-measure MusicXML representation of a 12-division cyclic scale for local import, in the mixed, sharp, or flat accidental spelling. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['modulus', 'intervalWord'], 'properties': {'root': {'type': 'integer', 'default': 0, 'maximum': 11, 'minimum': 0}, 'modulus': {'type': 'number', 'const': 12}, 'accidentals': {'enum': ['mixed', 'sharp', 'flat'], 'type': 'string', 'default': 'mixed'}, 'intervalWord': {'type': 'array', 'items': {'type': 'integer', 'maximum': 16, 'minimum': 1}, 'maxItems': 10, 'minItems': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
generate_cyclic_scales
Generate Cyclic Scales
Use this when an agent needs to generate at most 24 canonical cyclic interval words under bounded equal-division, cardinality, interval, reflection, and transpositional-symmetry constraints. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['modulus', 'notes', 'maxStep'], 'properties': {'notes': {'type': 'integer', 'maximum': 10, 'minimum': 2}, 'maxStep': {'type': 'integer', 'maximum': 8, 'minimum': 1}, 'modulus': {'type': 'integer', 'maximum': 16, 'minimum': 5}, 'reflection': {'enum': ['any', 'mixed', 'self', 'paired', 'external'], 'type': 'string', 'default': 'any'}, 'limitedTransposition': {'enum': ['any', 'yes', 'no'], 'type': 'string', 'default': 'any'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
get_composition
Get Composition
Use this when an agent needs to get public recordings matching a composition title. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 240, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
get_release
Get Release
Use this when an agent needs to get one public release by slug. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 240, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
get_sheet_music
Get Sheet Music
Use this when an agent needs to check for an explicitly published sheet-music resource. Never infers rights or availability. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 240, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
get_track
Get Track
Use this when an agent needs to get one public track by blob identifier or title. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 240, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
list_releases
List Releases
Use this when an agent needs to list public album and release records. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
search_music
Search Music
Use this when an agent needs to search the public music catalog. Do not infer ownership, licensing, or unpublished availability.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'definitions': {'__schema0': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}, {'type': 'array', 'items': {'$ref': '#/definitions/__schema0'}}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}]}}, 'additionalProperties': {'$ref': '#/definitions/__schema0'}}
Added
export_cyclic_scale_musicxml
Sept. 17, 2026, 12:38 p.m.
Added
calculate_equal_division_frequency
Sept. 17, 2026, 12:38 p.m.
Added
classify_cyclic_mode
Sept. 17, 2026, 12:38 p.m.
Added
analyze_cyclic_scale
Sept. 17, 2026, 12:38 p.m.
Added
generate_cyclic_scales
Sept. 17, 2026, 12:38 p.m.
Added
get_sheet_music
Sept. 17, 2026, 12:38 p.m.
Added
get_composition
Sept. 17, 2026, 12:38 p.m.
Added
get_track
Sept. 17, 2026, 12:38 p.m.
Added
get_release
Sept. 17, 2026, 12:38 p.m.
Added
list_releases
Sept. 17, 2026, 12:38 p.m.
Added
search_music
Sept. 17, 2026, 12:38 p.m.