Skip to main content

mxl-agent

A deterministic local MusicXML engine and Claude Code Agent Skill. See mxl_agent-skill.md for the full product and engineering specification, ROADMAP.md for current implementation status, CHANGELOG.md for what's shipped, and COMPATIBILITY.md for what's actually been verified against which Python/OS/optional-integration versions. Licensed under MIT.

Development

uv sync
uv run mxl-agent --help
uv run mxl-agent doctor --json
uv run python scripts/check.py fast

Release engineering

uv run python scripts/check.py release builds the package twice and confirms the wheel/sdist come out byte-for-byte identical, then writes a CycloneDX SBOM and a dependency vulnerability report to dist/ (gitignored). It does not sign or publish anything -- see CHANGELOG.md's "Known limitations" and ROADMAP.md's Slice 10.6 note for what's intentionally out of scope.

MCP server (optional)

mxl-agent mcp-serve runs an MCP server over stdio, exposing the session tools (open/status/checkout/revisions) and a read-only session_view tool to any MCP client. Needs the optional mcp extra (and, for session_view's own rendering, the optional render extra too):

uv sync --extra mcp --extra render
uv run mxl-agent doctor --json   # integrations.mcp.available should be true

Point an MCP client at uv run --directory <this repo> mxl-agent mcp-serve (add --workspace-root <path> to use a workspace directory other than the default .mxl-agent/workspaces). This is a separate integration from the Claude Code Agent Skill (.claude/skills/mxl-agent/) -- the skill's own wrapper never spawns mcp-serve.

In a client that supports the MCP Apps extension, session_view also renders a read-only, embedded Verovio SVG of the session's current score inline. This extension is new and still evolving (spec dated 2026-01-26); its client-side half is implemented by a vendored copy of the official library (see NOTICE) and is not verified end-to-end by this project's own test suite, since no compatible host is available here -- server- side registration and the tool's own output are tested, actual in-host rendering is not.

Claude Code plugin

This repository is itself a Claude Code plugin (.claude-plugin/plugin.json): opening it (or installing it as a plugin) exposes the Agent Skill (.claude/skills/mxl-agent/), registers the optional MCP server above (.mcp.json, still gated behind the mcp/render extras actually being installed), and installs one guardrail hook (hooks/hooks.json -> hooks/block-workspace-mutation.sh): a PreToolUse check on Edit/Write/MultiEdit that blocks direct hand-edits to files under a session's workspace directory (.mxl-agent/workspaces/), since that tree is managed exclusively by mxl-agent's own transactional revision system (CLAUDE.md: "Mutations must be typed, dry-runnable, transactional, reversible..."). The hook fails open (allows the edit) if it can't parse its input or can't find a working Python interpreter -- it is a guardrail on top of the transaction system, not the only protection. Validate the manifest with claude plugin validate . (a pre-existing "CLAUDE.md at the plugin root isn't loaded as project context" warning is expected and intentional -- that file is this repo's own development instructions, not plugin-shipped user context).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mxl_agent-0.1.0.tar.gz (878.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mxl_agent-0.1.0-py3-none-any.whl (423.2 kB view details)

Uploaded Python 3

File details

Details for the file mxl_agent-0.1.0.tar.gz.

File metadata

  • Download URL: mxl_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 878.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mxl_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 09b3a7edfa7c251c82afec58a384be17248cf670e9d327965ce5befcb40d9c9d
MD5 a60dc33261d443a3e4b0f7341d618f13
BLAKE2b-256 1e6b5b5cab40f2b9c97298e579f8d6ca8e73802f4c8b7f79948f01c276169946

See more details on using hashes here.

Provenance

The following attestation bundles were made for mxl_agent-0.1.0.tar.gz:

Publisher: release.yml on eyes-uncl0uded/mxl-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mxl_agent-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mxl_agent-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 423.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mxl_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd3fd1b15f57dbb3e98a800ceed1a4873a7cb078152b4fc67b2cc1abcb5c9f9b
MD5 0388abfde061369d97944a6727c7d7f8
BLAKE2b-256 4123603804f4c637bc52e67cd3ee942b31bdbd103c851c57f457792e3d84b7f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mxl_agent-0.1.0-py3-none-any.whl:

Publisher: release.yml on eyes-uncl0uded/mxl-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page