MCP.Market

PlayByKey Music Theory MCP server

by playbykey.com·com.playbykey/theory-mcp·v1.6.0·1 stars

Chords, scales, progressions, transposition, and MIDI tools for music theory AI agents.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

full report

Adoption
Growing

1 stars76 downloads/wk

Reviews

Write one

Nobody has reviewed PlayByKey Music Theory yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

PlayByKey Music Theory tools (32)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • build_note_map

    Returns structured per-note data for a scale: note name, scale degree (1-based), and semitone offset from root.

  • get_available_inversions

    Returns the valid inversion numbers for a chord type, based on its note count.

  • get_bebop_scale_notes

    Returns the eight notes of a bebop scale variant for a root - a diatonic scale plus one chromatic passing tone.

  • get_chord_by_degree

    Returns the diatonic chord at a specific scale degree (1-7) for a key/mode.

  • get_chord_inversion

    Reorders a chord's notes so the given inversion's chord tone is lowest.

  • get_chord_notes

    Returns the notes of a chord given a root and chord type.

  • get_circle_of_fifths

    Returns all 12 chromatic notes in ascending-fifths order starting from C.

  • get_diatonic_chords

    Returns the 7 diatonic triads for a key/mode, one per scale degree, in degree order.

  • get_enharmonic_labels

    Returns combined sharp/flat display labels for a list of sharp-spelled notes, e.g. ["C#", "D"] -> ["Db/C#", "D"]. Natural notes are unaffected. Input must already be sharp-spelled - use get_sharps first if you have flat-spelled notes.

  • get_flats

    Respells a list of sharp-spelled notes as flats, e.g. ["C#", "D"] -> ["Db", "D"]. Natural notes are unaffected. Input must already be sharp-spelled (as returned by get_scale_notes, get_mode_notes, etc.) - use get_sharps first if you have flat-spelled notes.

  • get_harmonic_minor_mode_notes

    Returns the seven notes of a harmonic minor mode for a root.

  • get_key_signature

    Returns the sharp or flat count for a given key, treated as a major-key tonic (minor-key signatures are not exposed by this tool).

  • get_melodic_minor_mode_notes

    Returns the seven notes of a melodic minor mode for a root.

  • get_melodic_minor_notes

    Returns the seven notes of the ascending melodic minor scale for a root.

  • get_modal_root

    Returns the root note of a mode within a given parent (Ionian/major) key.

  • get_mode_info

    Returns display metadata for a mode: name, scale degree, and characteristic description.

  • get_mode_notes

    Returns the 7 notes of a diatonic mode for a given root note.

  • get_parent_scale_modes

    Returns all 7 modal rotations of the parent key for a given root and mode.

  • get_progression_in_key

    Renders a named catalog progression as chords in a given key, in order.

  • get_relative_major

    Returns the relative major root for a minor key.

  • get_relative_minor

    Returns the relative minor root for a major key.

  • get_roman_numeral

    Returns the roman numeral for a scale degree in a mode - case and suffix reflect diatonic triad quality.

  • get_scale_degree

    Returns the 1-based scale degree of a note within a root + scale type, or null if the note is not in the scale.

  • get_scale_notes

    Returns the notes of a scale by type. Covers all ScaleType values: major, blues, pentatonic-major, pentatonic-minor, harmonic-minor, melodic-minor, chromatic.

  • get_semitone_distance

    Returns the ascending semitone distance between two notes (0-11).

  • get_sharps

    Respells a list of notes to canonical sharp spelling, e.g. ["Db", "C#", "D"] -> ["C#", "C#", "D"]. Most tools accept flat-spelled input directly, but get_flats and get_enharmonic_labels require sharp-spelled input - use this to normalize flat-spelled notes before calling those two.

  • is_note_in_scale

    Returns true if the given note is present in the specified root + scale type, false otherwise.

  • midi_to_note

    Returns the note and octave for a given MIDI note number - the inverse of note_to_midi.

  • note_to_frequency

    Returns the frequency in Hz for a note at a given octave, equal temperament, A4 = 440Hz.

  • note_to_midi

    Returns the MIDI note number for a note at a given octave, using scientific pitch notation (C4 = middle C = MIDI 60).

  • resolve_interval

    Returns the from-note and to-note for a named interval within a root context.

  • transpose

    Transposes a set of notes from one key to another by the semitone distance between the two roots.

Public scan report

scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it

1 medium
  • Code scan3 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 10 days ago15/15
  • Maintainer identitynamespace and repository owner differ; GitHub account older than a year6/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    dist/index.js: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…
Overall 82/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How PlayByKey Music Theory compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 63% of 48,255 servers
Tools
32
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 28,688 servers
Downloads a week
76
more than 56% of 12,191 servers with a package

What its tools let an agent do: 32 read

Install PlayByKey Music Theory in Claude Code, Cursor or VS Code

Runs npx -y @playbykey/theory-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add theory-mcp -- npx -y @playbykey/theory-mcp
Add to Cursor

What the publisher says

From the PlayByKey Music Theory repository's README, as published. We do not edit it. Read it on GitHub

Developer Tools

Packages for PlayByKey - see the table below for what's here.

  • npm: npmjs.com/package/@playbykey/theory
  • Documentation: theory-engine.docs.playbykey.com - interactive playgrounds
  • Changelog: GitHub Releases

Install

npm install @playbykey/theory
pnpm add @playbykey/theory
yarn add @playbykey/theory
bun add @playbykey/theory

Quickstart and API examples: packages/theory/README.md

Why @playbykey/theory

  • Foundation music theory engine: music theory as code. Modes, keys, intervals, and scale relationships resolved deterministically; one source of truth every app, notation tool, or AI agent can build on.
  • Zero dependencies: no transitive baggage; safe for agents, edge runtimes, and tight bundles
  • Strictly typed: every function's types exported alongside it, no any
  • Agent-ready: copy-paste LLM context prompt and interactive docs
  • Sharps-only notation: one canonical spelling per note (C#, not Db) keeps the Note type safe and unambiguous. Flats are fully supported for both input (parseNote/parseNoteToken accept Db, Eb, Gb, Ab, Bb) and output (getFlats/getEnharmonicLabels), without extending Note itself.

Packages

License

MIT for the repository tooling and @playbykey/theory. See LICENSE. Individual packages may declare their own license in their package.json.

Nothing above is checked by us. What we check is on the safety report.

PlayByKey Music Theory: common questions

Is PlayByKey Music Theory MCP server safe?
Mostly: it is graded B (82/100). Read the PlayByKey Music Theory safety report
How do I install PlayByKey Music Theory?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does PlayByKey Music Theory need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is PlayByKey Music Theory maintained?
The last commit was 51 days ago (2026-09-14). The latest release is v1.6.0.
How does PlayByKey Music Theory compare with other MCP servers?
safety score 82/100 (higher than 63% of 48,255 servers); tools 32 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.