evox-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@evox-mcp compile my songbook into a PDF with a table of contents"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
evox-mcp
Model Context Protocol (MCP) server for managing and compiling songbook PDFs using Evox.
evox-mcp exposes a structured, validated AST interface for AI agents to inspect, author, edit, and compile songbooks into high-quality PDFs with custom covers, multi-column lyrics, aligned chords, and an automatic Table of Contents.
Features
Strict Song AST Interface: Agents read and write structured JSON (
SongAst), preventing subtle syntax bugs (omitted lyric spaces, column delimiter collisions, unescaped chord characters).Upstream Evox Guardrails:
Automatically cleans OS dotfiles (
.DS_Store,Thumbs.db) fromsongs/to prevent CLI crashes.Enforces song title lengths (
<= 60chars) to avoid Table of Contents negative leader line crashes.Validates chord/lyric characters against Evox reserved symbols (
--and.).Probes CLI capabilities dynamically (
--skip-cover).
Complete Songbook Lifecycle:
init_songbook: Initialize folder layout (book/,cover/,songs/).get_songbook: Check status, cover, logo, alphabetical song order, and PDF freshness.get_cover&update_cover: Customize header/footer text, padding, and copy local logo images.list_songs,get_song,create_song,update_song,delete_song: Song AST CRUD.generate_songbook: Compilebook/book.pdfand return generated TOC pagination.
MCP Resources & Prompts:
Resources:
evox://songbook,evox://songs,evox://songs/{slug}.Prompts:
import_chord_sheet(tab & chord sheet converter) andbuild_songbook(end-to-end songbook compiler).
Related MCP server: Document Generator MCP
Prerequisites
Ruby (
>= 3.0)Evox Gem:
gem install evox
Installation & Build
# Clone and install dependencies
cd /Users/leonid/src/evox-mcp
npm install
# Typecheck and test
npm run typecheck
npm test
# Build executable bundle
npm run buildConfiguration
evox-mcp can be configured via environment variables:
Environment Variable | Default | Description |
| Current working directory | Path to default songbook project directory. |
|
| Path to the |
|
| When |
|
| Subprocess timeout for Evox CLI commands in milliseconds. |
MCP Client Configuration Example
In claude_desktop_config.json or Antigravity MCP settings:
{
"mcpServers": {
"evox": {
"command": "node",
"args": [
"/Users/leonid/src/evox-mcp/dist/index.js"
],
"env": {
"EVOX_PROJECT_DIR": "/Users/leonid/Documents/MySongbook",
"EVOX_BIN": "evox"
}
}
}
}Song AST Schema
Songs are represented as JSON ASTs with 0-indexed chord-over-lyric lines:
{
"slug": "free_falling",
"metadata": {
"name": "Free Falling",
"author": "Tom Petty",
"font": 9.0,
"column_width": 610,
"gutter": 5
},
"columns": [
{
"stanzas": [
{
"lines": [
{
"chords": " C F F C G",
"lyrics": "She's a good girl, loves her mama"
},
{
"chords": " C F F C G",
"lyrics": "Loves Jesus and America too"
}
]
}
]
}
]
}License
MIT © Leonid Medovyy
Available Tools
10 toolscreate_songB
Creates a new song from a validated structured AST. Automatically formats and serializes to .evox markup.
Inputs: columns (required), metadata (required), slug, upsert, +1 more.
delete_songC
Deletes a song (.evox file) from the songs/ folder.
Inputs: slug (required), project_dir.
generate_songbookA
Compiles the songbook into book/book.pdf using 'evox generate'. Automatically cleans stray OS files from songs/, validates all song syntax, and returns the generated PDF details with the alphabetical Table of Contents.
Inputs: skip_cover, project_dir.
get_coverB
Reads cover/config.yml configuration (header, logo dimensions, footer) and logo image file status.
Inputs: project_dir.
get_songA
Retrieves the full structured AST for a song by slug (including title, artist, font, column width, gutter, and all column/stanza lines with chord-lyric pairs).
Inputs: slug (required), project_dir.
get_songbookA
Returns comprehensive status of the songbook: directory initialization, cover settings, logo presence, song summaries in alphabetical print order, stray file warnings, and PDF build freshness.
Inputs: project_dir.
init_songbookB
Initializes a new Evox songbook project directory structure (book/, cover/, songs/) using 'evox init'.
Inputs: cover, project_dir, include_sample_songs.
list_songsA
Lists all songs in the songbook in alphabetical print order (matching the order in the compiled PDF and Table of Contents).
Inputs: project_dir.
update_coverA
Updates cover/config.yml settings (header titles/padding, logo size/image name, footer title/size) and optionally copies a new local image into cover/.
Inputs: logo, footer, header, project_dir, +1 more.
update_songB
Updates an existing song. Supports partial metadata changes, replacing columns, and/or renaming the song slug.
Inputs: slug (required), columns, metadata, new_slug, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool maps to a distinct resource+action pair: songbook-level (init/get/generate), cover (get/update), and song CRUD (list/get/create/update/delete). There is mild overlap in that get_songbook returns song summaries and cover status, which partially duplicates list_songs and get_cover, but the descriptions make the intended granularity clear.
All ten tools follow a strict verb_noun snake_case pattern (init_songbook, get_cover, update_song, delete_song, generate_songbook). The only variation is domain-specific verb choice (init vs create, generate), which is still readable and predictable.
At 10 tools the surface is well-scoped: one init, one status, one build, two cover operations, and five song operations. No tool appears redundant or out of place for a songbook CLI wrapper.
Full lifecycle is covered for songs (list/get/create/update/delete) plus project init, status, cover config, and PDF generation. Minor gaps exist: no way to remove the logo image or delete/reset the songbook project, but these are workaroundable and non-blocking for core workflows.
Maintenance
Related MCP Connectors
Write, compile and share Typst documents (papers, slides, drawings) from any AI agent.
PDF tools for AI agents: inspect, fill, merge, split, rotate, watermark, protect and invoice PDFs.
Music industry tools for AI agents: artist research, catalogs, release plans and content.
Generate and read PDFs for AI agents: a generate_pdf and a read_pdf tool, priced per document.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables collaborative document authoring and composition with project-based organization, transforming Markdown and LaTeX content into professional PDFs with conflict-free multi-agent editing capabilities.620MIT
- AlicenseBqualityDmaintenanceEnables AI agents to generate professional Word and PDF documents with support for Markdown, syntax highlighting, and smart pagination. It features automatic JSON detection and responsive A4 formatting for creating high-quality technical reports and manuals.2213 npm10MIT
- AlicenseAqualityBmaintenanceEnterprise-grade PDF engine for AI agents. Pure TypeScript, zero-dependency, sandboxed, and local-first. Exposes 28 tools to generate ISO-compliant PDF/A documents, inspect layouts, extract text, handle digital signatures (PKCS#7), and render high-performance tables (10,000+ rows/s).28391 npm2MIT
- AlicenseAqualityBmaintenanceEnables AI agents to turn Markdown manuscripts and metadata into KDP-ready Kindle EPUBs, print interior PDFs, and full-wrap paperback covers, with spine width calculation and an upload checklist.3MIT