nobu
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NOBU_SF2 | No | Override for the SoundFont file path. | |
| NOBU_MIDI_DIR | No | Override for the MIDI directory. | |
| FLUID_SYNTH_SF2 | No | Alternative override for the SoundFont file path. | |
| NOBU_OUTPUT_DIR | No | Override for the output audio directory. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_projectA | ALWAYS call this tool first, before any other, when composing a game track. Creates an empty project where layers (independent channels: melody, harmony, bass, drums) are added one by one via add_layer. Each layer may have a completely different length and rhythm from the others (e.g. a 4-note bass loop while the melody plays a 32-note phrase), matching how independent channels work on real NES/SNES hardware. |
| suggest_scale_for_moodA | Use this tool BEFORE composing any melody, harmony, or bass line. It maps the scene's EMOTION/MOOD to the technically correct musical scale (VGM theory: major = joy/safe town, dorian = heroic/adventure, phrygian = hostile/exotic, natural_minor = melancholy/dungeon, mixolydian = folk/open road, lydian = magical/dreamlike, minor_pentatonic = tension/combat). Accepted moods: safe_exploration, heroic_exploration, nostalgic_town, melancholic_dungeon, hostile_exotic_biome, magical_dreamlike, combat, victory, classic_retro. Returns the chosen scale AND a list of MIDI pitches ready for add_layer — no need to invent note numbers from memory. |
| generate_scaleA | Generate the correct MIDI notes for a musical scale, to use as a palette of valid pitches when composing. Use this tool (or suggest_scale_for_mood) ALWAYS before inventing note numbers manually — that avoids out-of-key / random-sounding melodies. scale_type accepts: major, natural_minor, major_pentatonic, minor_pentatonic, dorian, mixolydian, phrygian, lydian. |
| add_layerA | Add ONE independent layer/channel to the project. Call this tool multiple times to stack as many layers as you want (melody, harmony, bass, drums) — each layer has its own length and rhythm, without needing to match the others in note count. layer_type accepts: 'melody', 'harmony', 'bass', 'drums'. Format of 'notes': each item is [pitch_or_piece, start_time_in_beats, duration_in_beats, optional_velocity_0_to_127]. If layer_type='drums', pitch may be a string ('kick', 'snare', 'closed_hihat', 'open_hihat', 'crash', 'ride', 'clap', 'rimshot', 'low_tom', 'mid_tom', 'high_tom') or a GM percussion MIDI number. Portuguese drum names are also accepted. swing_offset: add a fixed offset (in beats, e.g. 0.02 to 0.08) to every ODD-index note, simulating light swing/humanization. Use 0.0 for straight quantized rhythm (classic chiptune aesthetic). For deliberate off-beats (e.g. hi-hat on 0.5, 1.5, 2.5), place start_time directly in the notes list — no swing_offset needed. chiptune_program (ignored if layer_type='drums'): 'pulse_lead' (melody, NES pulse timbre, GM 80), 'pulse_harmony' (countermelody, GM 81), 'triangle_bass' (bass, NES triangle approx, GM 38). |
| set_tempo_changeA | Schedule a tempo (BPM) change at a specific absolute beat. Use for horizontal resequencing inside a single file — e.g. speed up when entering boss phase 2, or slow down for tension before a climax. |
| list_layersA | List all layers already added to the project, with note counts and duration for each. Use before export_midi to verify that every planned layer (melody, bass, drums, harmony) was actually added, or to decide whether to add more. |
| export_midiA | Render all project layers into a single multi-track .mid file. Call last, after all add_layer calls. Returns loop metadata (beats and bars) for configuring loop points in the engine (Godot/Unity/ FMOD/Wwise), since MIDI does not store that natively. Default destination_dir is assets/midi/ (or NOBU_MIDI_DIR). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/francescojr/nobu'
If you have feedback or need assistance with the MCP directory API, please join our Discord server