Skip to main content
Glama
gabguerin

Hooktheory MCP Server

by gabguerin

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOOKTHEORY_PASSWORDYesYour Hooktheory account password
HOOKTHEORY_USERNAMEYesYour Hooktheory account username

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_songs_by_progressionA
Get songs that contain a specific chord progression from Hooktheory.

Args:
    cp: Chord progression using comma-separated chord IDs (e.g., "1,5,6,4" for I-V-vi-IV, "4,1" for IV-I)
    page: Page number for pagination (default: 1, each page contains ~20 results)
    key: Musical key filter (e.g., "C", "Am")
    mode: Scale mode filter (e.g., "major", "minor")

Returns:
    JSON string containing array of songs with artist, song, section, and URL
get_chord_transitionsA
Get chord statistics and transition probabilities from Hooktheory database.

Args:
    cp: Optional chord progression to get transitions from (e.g., "4" for chords after IV, "4,1" for chords after IV-I)
        If not provided, returns overall chord frequency statistics
    key: Musical key filter (e.g., "C", "Am")
    mode: Scale mode filter ("major" or "minor")

Returns:
    JSON string containing chord nodes with chord_ID, chord_HTML (Roman numeral), probability, and child_path
    - Without cp: Shows overall chord frequencies (I=18.9%, IV=17.2%, etc.)
    - With cp: Shows what chords follow the progression (e.g., after IV: I=32.4%, V=28.9%)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: get_chord_transitions retrieves chord statistics and transition probabilities, while get_songs_by_progression finds songs containing specific chord progressions. There is no overlap in functionality, making it easy for an agent to select the correct tool based on whether it needs analytical data or song references.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern with get_ as the verb prefix and descriptive nouns (chord_transitions, songs_by_progression). The naming is predictable and readable, adhering to snake_case throughout without any deviations or mixed conventions.

Tool Count2/5

With only 2 tools, the server feels under-scoped for a music theory domain, as it lacks essential operations like searching for chords, analyzing melodies, or accessing other Hooktheory features. This minimal set may force agents to work around gaps, limiting the server's utility beyond basic queries.

Completeness2/5

The tool surface is severely incomplete for a Hooktheory server, missing core functionalities such as chord lookup, melody analysis, or accessing user data. While the existing tools cover chord transitions and song searches, they do not provide a full CRUD/lifecycle or comprehensive coverage of the music theory domain, leading to potential agent failures in broader tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues