Bosca Ceoil MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BOSCA_CEOIL_PATH | No | Path to the Bosca Ceoil Blue executable or the folder containing it. Equivalent to the --app-path argument. If omitted, the server searches common locations such as Downloads, Desktop, Applications, Games, Program Files, and itch.io's folder. | |
| BOSCA_CEOIL_HEADLESS | No | Set to 1 to run Bosca Ceoil Blue without a window or sound. Equivalent to the --headless argument. Useful for automation, but WAV exports take about twice as long, and unsaved work is lost 30 seconds after the AI tool disconnects. | 0 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| app_statusA | Reports whether Bosca Ceoil Blue is running, plus its version, the current song's summary, and playback and export state. Doesn't start the app. |
| launch_appA | Starts Bosca Ceoil Blue. Other tools do this on demand, so it's only needed to choose the mode or to open the window before working. |
| quit_appC | Closes Bosca Ceoil Blue. |
| screenshot_appA | Captures the app's window as an image, to check what the user is seeing. Not available without a window. |
| focusC | Shows something in the app's window: selects a pattern for the note grid, selects an instrument, or switches views. |
| create_songA | Replaces the open song with a new one, optionally built in one go from settings, instruments, patterns and an arrangement. This is the quickest way to write a song. Without instruments and patterns, you get the app's default: one Grand Piano, and one empty pattern on bar 0. |
| open_songC | Opens a .ceol song file. |
| import_midiA | Replaces the open song with one imported from a MIDI file. Bosca is a step sequencer, so complex timing may not survive. |
| save_songA | Saves the song as a .ceol file. Songs aren't saved automatically. |
| export_songA | Exports the song as audio or music data: wav (rendered audio), mid (MIDI), mml (SiON MML) or xm (FastTracker). A WAV renders at about playback speed or slower, so a long one returns state "rendering"; follow it up with export_status. A finished WAV reports its duration, peak and RMS, to help catch silent or clipped results. |
| export_statusA | Reports how the current or most recent WAV export is going. The song can't be edited while it renders. |
| get_songA | Returns the whole song: settings, instruments, patterns with their notes, and the arrangement. Notes are in the same form the editing tools take. |
| update_songB | Changes song settings. Takes effect immediately, even during playback. |
| list_voicesA | Lists the app's voices (over 300), to pick from when adding an instrument. Filter them, since the full list is long. |
| get_drumkitA | Lists the items of a drumkit voice. In a drumkit pattern, each 'note' is one of these items instead of a pitch. |
| add_instrumentB | Adds an instrument to the song. A song can have 16. |
| update_instrumentA | Changes an instrument's voice or settings. Every pattern using it changes too. Switching a pattern's instrument to a drumkit drops notes that have no matching item. |
| remove_instrumentB | Removes an instrument. Later instruments move down one index, and patterns using it switch to instrument 0. |
| add_patternA | Adds a pattern and returns its index. It won't play until the arrangement uses it. Notes are absolute pitches, so the key and scale don't move them; they must fit that key and scale. |
| update_patternA | Edits a pattern's notes, key, scale, instrument or filter automation, as one undo step. Changing the key transposes its notes, like the app does. Changing the scale removes notes that don't fit it. |
| clone_patternB | Copies a pattern to a new index, as a starting point for a variation. |
| remove_patternB | Removes a pattern and clears it from the arrangement. Later patterns move down one index. |
| edit_arrangementB | Places patterns on the timeline. Each bar plays up to 8 patterns at once, on separate channels. Writes whole bars starting at at_bar, leaving other bars alone. Unless a loop is given, the loop then covers the whole song. |
| playA | Plays the song through the user's speakers, looping until stopped. The AI tool can't hear it, so use this when the user wants to listen. |
| pauseA | Pauses playback, keeping the position. |
| stopA | Stops playback and goes back to the start of the loop. |
| undoA | Undoes the last edit, made by the user or by a tool. The app keeps 40 steps. Opening or creating a song clears them. |
| redoA | Redoes the last undone edit. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool targets a clearly distinct resource or operation, and the descriptions actively disambiguate the risky pairs (create_song vs open_song vs import_midi all replace the song; add_pattern vs clone_pattern both create patterns). Minor soft spots remain: export_song vs export_status and launch_app vs app_status are adjacent, and 'focus' is broad enough to be mistaken for a view/selection helper, but the descriptions resolve these.
The dominant pattern is verb_noun (create_song, update_pattern, remove_instrument, list_voices, export_status), applied consistently across the song/instrument/pattern families. Deviations are small and idiomatic: bare intransitive verbs (play, pause, stop, undo, redo) and noun-style status tools (app_status, export_status) break the strict pattern but remain predictable and readable.
28 tools is at the heavy end and pushes past the comfortable 3-15 band, though the domain (song, instruments, patterns, arrangement, playback, export, app lifecycle) is broad enough that most tools map to a real operation. A few could be consolidated without loss, e.g. play/pause/stop, export_song/export_status, and launch_app/quit_app/app_status, which is why this lands borderline rather than well-scoped.
Coverage is strong across the full lifecycle: app start/stop, song create/open/import/save/export, instrument and pattern CRUD with cloning, arrangement editing, playback, and undo/redo. Gaps are minor and workaroundable: there is no per-pattern or per-instrument getter (get_song dumps everything) and no way to delete a song file or close a song without replacing it.