Beatwise Metronome

Keep time, find note durations

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
95%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,402Tokens (tool definitions)
~7.6 KBTypical response size
Moderate attention impact (1.88% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "metronome": {
      "url": "https://metronome.zovo.one/mcp"
    }
  }
}

Remote endpoints

https://metronome.zovo.one/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢show_metronome(bpm, beats_per_bar, beat_unit, subdivision, accent_pattern, ...)

Use this when the user wants a metronome, online metronome, 120 bpm metronome, tap tempo or a metronome for practice. Opens a live beat widget with 20 to 400 quarter-note BPM, 1 to 16 beats per bar, accents, subdivisions and an optional ramp with up to 1000 tempo stages. Reports milliseconds per beat and subdivision. The widget runs only while on screen; audio timing depends on the device. Does not record audio or detect pitch.

Input Schema

{
  "type": "object",
  "properties": {
    "bpm": {
      "type": "number",
      "minimum": 20,
      "maximum": 400,
      "description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
    },
    "beats_per_bar": {
      "description": "Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8.",
      "type": "integer",
      "minimum": 1,
      "maximum": 16
    },
    "beat_unit": {
      "description": "Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8.",
      "anyOf": [
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        },
        {
          "type": "number",
          "const": 4
        },
        {
          "type": "number",
          "const": 8
        },
        {
          "type": "number",
          "const": 16
        }
      ]
    },
    "subdivision": {
      "description": "Clicks per signature beat: none=1, eighths=2, triplets=3, sixteenths=4. Default none. Example: eighths.",
      "type": "string",
      "enum": [
        "none",
        "eighths",
        "triplets",
        "sixteenths"
      ]
    },
    "accent_pattern": {
      "description": "One level per beat: 0 silent (including its subdivisions), 1 normal, 2 accented. Defaults to an accented first beat. Example: [2,1,1,1].",
      "minItems": 1,
      "maxItems": 16,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 2
      }
    },
    "ramp": {
      "description": "Optional bar-based ramp; start must match bpm. The target then holds. Example: {start_bpm:80,end_bpm:120,bars_per_step:4,bpm_per_step:5}.",
      "type": "object",
      "properties": {
        "start_bpm": {
          "type": "number",
          "minimum": 20,
          "maximum": 400,
          "description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80."
        },
        "end_bpm": {
          "type": "number",
          "minimum": 20,
          "maximum": 400,
          "description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
        },
        "bars_per_step": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "description": "Completed bars before changing tempo. Example: 4."
        },
        "bpm_per_step": {
          "type": "number",
          "minimum": 0.001,
          "maximum": 380,
          "description": "Positive BPM change; direction follows start and end. Up to three decimal places. Example: 5."
        }
      },
      "required": [
        "start_bpm",
        "end_bpm",
        "bars_per_step",
        "bpm_per_step"
      ]
    }
  },
  "required": [
    "bpm"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "const": "metronome"
    },
    "bpm": {
      "type": "number"
    },
    "beats_per_bar": {
      "type": "number"
    },
    "beat_unit": {
      "type": "number"
    },
    "subdivision": {
      "type": "string"
    },
    "accent_pattern": {
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "quarter_ms": {
      "type": "string"
    },
    "beat_ms": {
      "type": "string"
    },
    "subdivision_ms": {
      "type": "string"
    },
    "ramp": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "start_bpm": {
              "type": "number"
            },
            "end_bpm": {
              "type": "number"
            },
            "bpm_per_step": {
              "type": "number"
            },
            "bars_per_step": {
              "type": "number"
            }
          },
          "required": [
            "start_bpm",
            "end_bpm",
            "bpm_per_step",
            "bars_per_step"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "limits": {
      "type": "string"
    }
  },
  "required": [
    "kind",
    "bpm",
    "beats_per_bar",
    "beat_unit",
    "subdivision",
    "accent_pattern",
    "quarter_ms",
    "beat_ms",
    "subdivision_ms",
    "ramp",
    "limits"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢calculate_tempo_values(bpm, milliseconds, note_value, modifier, beats_per_bar, ...)

Use this when the user wants bpm to ms, a delay time calculator, tempo calculator, note cycle hertz, milliseconds to beats per minute, bar length or song length. Accepts BPM or a note duration and returns whole to sixty-fourth values, dotted and triplet, pre-delay suggestions and approximate Italian marking ranges. BPM is quarter notes per minute, 20 to 400; up to 100000 song bars. Hertz is rhythmic repetition, not pitch. Does not record audio or detect pitch.

Input Schema

{
  "type": "object",
  "properties": {
    "bpm": {
      "type": "number",
      "minimum": 20,
      "maximum": 400,
      "description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
    },
    "milliseconds": {
      "description": "Duration of the selected note, instead of bpm; resulting BPM must be 20 to 400. Up to three decimal places. Example: 500.",
      "type": "number",
      "minimum": 0.001,
      "maximum": 18000
    },
    "note_value": {
      "description": "Note represented by milliseconds; default quarter. Only use with milliseconds. Example: eighth.",
      "type": "string",
      "enum": [
        "whole",
        "half",
        "quarter",
        "eighth",
        "sixteenth",
        "thirty_second",
        "sixty_fourth"
      ]
    },
    "modifier": {
      "description": "Modifier for milliseconds: straight (default), dotted, or triplet. Example: dotted.",
      "type": "string",
      "enum": [
        "straight",
        "dotted",
        "triplet"
      ]
    },
    "beats_per_bar": {
      "description": "Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8.",
      "type": "integer",
      "minimum": 1,
      "maximum": 16
    },
    "beat_unit": {
      "description": "Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8.",
      "anyOf": [
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        },
        {
          "type": "number",
          "const": 4
        },
        {
          "type": "number",
          "const": 8
        },
        {
          "type": "number",
          "const": 16
        }
      ]
    },
    "bars": {
      "description": "Optional song bar count at this tempo and time signature. Example: 32.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "const": "tempo"
    },
    "bpm": {
      "type": "string"
    },
    "bpm_numeric": {
      "type": "number"
    },
    "quarter_ms": {
      "type": "string"
    },
    "bar_ms": {
      "type": "string"
    },
    "beats_per_bar": {
      "type": "number"
    },
    "beat_unit": {
      "type": "number"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "note": {
            "type": "string"
          },
          "modifier": {
            "type": "string"
          },
          "ms": {
            "type": "string"
          },
          "hz": {
            "type": "string"
          }
        },
        "required": [
          "note",
          "modifier",
          "ms",
          "hz"
        ],
        "additionalProperties": false
      }
    },
    "markings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "min_bpm": {
            "type": "number"
          },
          "max_bpm": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "min_bpm",
          "max_bpm"
        ],
        "additionalProperties": false
      }
    },
    "marking_note": {
      "type": "string"
    },
    "delay_note": {
      "type": "string"
    },
    "predelays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "note": {
            "type": "string"
          },
          "ms": {
            "type": "string"
          }
        },
        "required": [
          "note",
          "ms"
        ],
        "additionalProperties": false
      }
    },
    "song": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "bars": {
              "type": "number"
            },
            "total_ms": {
              "type": "string"
            },
            "total_seconds": {
              "type": "string"
            },
            "minutes": {
              "type": "number"
            },
            "seconds": {
              "type": "string"
            }
          },
          "required": [
            "bars",
            "total_ms",
            "total_seconds",
            "minutes",
            "seconds"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "precision": {
      "type": "string"
    }
  },
  "required": [
    "kind",
    "bpm",
    "bpm_numeric",
    "quarter_ms",
    "bar_ms",
    "beats_per_bar",
    "beat_unit",
    "notes",
    "markings",
    "marking_note",
    "delay_note",
    "predelays",
    "song",
    "precision"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢plan_tempo_practice(start_bpm, target_bpm, step, step_type, minutes_per_step)

Use this when the user wants a metronome for practice with a tempo ladder from start to target BPM, a BPM or percent step and minutes per stage. Returns the ladder table, total time and CSV download. Supports ascending or descending 20 to 400 BPM with up to 200 stages; percent steps round to 0.001 BPM and target gets the full stage time. Does not track sessions or record audio.

Input Schema

{
  "type": "object",
  "properties": {
    "start_bpm": {
      "type": "number",
      "minimum": 20,
      "maximum": 400,
      "description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80."
    },
    "target_bpm": {
      "type": "number",
      "minimum": 20,
      "maximum": 400,
      "description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
    },
    "step": {
      "type": "number",
      "minimum": 0.001,
      "maximum": 380,
      "description": "Positive change per stage, in BPM or percent; percent is limited to 100. Up to three decimal places. Example: 5."
    },
    "step_type": {
      "description": "Step units, default bpm. Percent uses the previous stage with a 0.001 BPM rounding. Example: percent.",
      "type": "string",
      "enum": [
        "bpm",
        "percent"
      ]
    },
    "minutes_per_step": {
      "type": "number",
      "minimum": 0.001,
      "maximum": 120,
      "description": "Minutes spent at each stage, including the target, up to three decimal places. Example: 2."
    }
  },
  "required": [
    "start_bpm",
    "target_bpm",
    "step",
    "minutes_per_step"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "const": "practice"
    },
    "start_bpm": {
      "type": "number"
    },
    "target_bpm": {
      "type": "number"
    },
    "step": {
      "type": "number"
    },
    "step_type": {
      "type": "string"
    },
    "minutes_per_step": {
      "type": "number"
    },
    "stages": {
      "type": "number"
    },
    "total_minutes": {
      "type": "string"
    },
    "rounding": {
      "type": "string"
    },
    "preview": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "stage": {
            "type": "number"
          },
          "bpm": {
            "type": "number"
          },
          "minutes": {
            "type": "string"
          },
          "start_minutes": {
            "type": "string"
          },
          "end_minutes": {
            "type": "string"
          }
        },
        "required": [
          "stage",
          "bpm",
          "minutes",
          "start_minutes",
          "end_minutes"
        ],
        "additionalProperties": false
      }
    },
    "downloads": {
      "type": "object",
      "properties": {
        "csv": {
          "type": "string"
        }
      },
      "required": [
        "csv"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "kind",
    "start_bpm",
    "target_bpm",
    "step",
    "step_type",
    "minutes_per_step",
    "stages",
    "total_minutes",
    "rounding",
    "preview",
    "downloads"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools