Beatwise Metronome MCP
A metronome server for practice with tap tempo, accent patterns, subdivisions, and tempo ramps. It calculates note durations, cycle frequencies, and song lengths, and allows planning practice ladders with CSV downloads.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://metronome.zovo.one/mcpWhat you can do with it
- Open a metronome with specific BPM and time signature
- Calculate BPM to milliseconds for note durations
- Plan tempo practice ladders with CSV export
Source and maintenance
Protocol and capabilities
- Server
- metronome 1.0.1
- MCP protocol
- 2025-06-18
- Tools
- 3 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
3 advertised
show_metronome — Show metronome
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"bpm"
],
"properties": {
"bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"ramp": {
"type": "object",
"required": [
"start_bpm",
"end_bpm",
"bars_per_step",
"bpm_per_step"
],
"properties": {
"end_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"start_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80."
},
"bpm_per_step": {
"type": "number",
"maximum": 380,
"minimum": 0.001,
"description": "Positive BPM change; direction follows start and end. Up to three decimal places. Example: 5."
},
"bars_per_step": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Completed bars before changing tempo. Example: 4."
}
},
"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}."
},
"beat_unit": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 16
}
],
"description": "Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8."
},
"subdivision": {
"enum": [
"none",
"eighths",
"triplets",
"sixteenths"
],
"type": "string",
"description": "Clicks per signature beat: none=1, eighths=2, triplets=3, sixteenths=4. Default none. Example: eighths."
},
"beats_per_bar": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8."
},
"accent_pattern": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2,
"minimum": 0
},
"maxItems": 16,
"minItems": 1,
"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]."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind",
"bpm",
"beats_per_bar",
"beat_unit",
"subdivision",
"accent_pattern",
"quarter_ms",
"beat_ms",
"subdivision_ms",
"ramp",
"limits"
],
"properties": {
"bpm": {
"type": "number"
},
"kind": {
"type": "string",
"const": "metronome"
},
"ramp": {
"anyOf": [
{
"type": "object",
"required": [
"start_bpm",
"end_bpm",
"bpm_per_step",
"bars_per_step"
],
"properties": {
"end_bpm": {
"type": "number"
},
"start_bpm": {
"type": "number"
},
"bpm_per_step": {
"type": "number"
},
"bars_per_step": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"limits": {
"type": "string"
},
"beat_ms": {
"type": "string"
},
"beat_unit": {
"type": "number"
},
"quarter_ms": {
"type": "string"
},
"subdivision": {
"type": "string"
},
"beats_per_bar": {
"type": "number"
},
"accent_pattern": {
"type": "array",
"items": {
"type": "number"
}
},
"subdivision_ms": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Show metronome",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}calculate_tempo_values — Calculate tempo values
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"bars": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Optional song bar count at this tempo and time signature. Example: 32."
},
"modifier": {
"enum": [
"straight",
"dotted",
"triplet"
],
"type": "string",
"description": "Modifier for milliseconds: straight (default), dotted, or triplet. Example: dotted."
},
"beat_unit": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 16
}
],
"description": "Time signature denominator. Default 4. BPM remains quarter-note BPM. Example: 8 for 6/8."
},
"note_value": {
"enum": [
"whole",
"half",
"quarter",
"eighth",
"sixteenth",
"thirty_second",
"sixty_fourth"
],
"type": "string",
"description": "Note represented by milliseconds; default quarter. Only use with milliseconds. Example: eighth."
},
"milliseconds": {
"type": "number",
"maximum": 18000,
"minimum": 0.001,
"description": "Duration of the selected note, instead of bpm; resulting BPM must be 20 to 400. Up to three decimal places. Example: 500."
},
"beats_per_bar": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Time signature numerator, 1 to 16. Default 4. Example: 6 for 6/8."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind",
"bpm",
"bpm_numeric",
"quarter_ms",
"bar_ms",
"beats_per_bar",
"beat_unit",
"notes",
"markings",
"marking_note",
"delay_note",
"predelays",
"song",
"precision"
],
"properties": {
"bpm": {
"type": "string"
},
"kind": {
"type": "string",
"const": "tempo"
},
"song": {
"anyOf": [
{
"type": "object",
"required": [
"bars",
"total_ms",
"total_seconds",
"minutes",
"seconds"
],
"properties": {
"bars": {
"type": "number"
},
"minutes": {
"type": "number"
},
"seconds": {
"type": "string"
},
"total_ms": {
"type": "string"
},
"total_seconds": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"notes": {
"type": "array",
"items": {
"type": "object",
"required": [
"note",
"modifier",
"ms",
"hz"
],
"properties": {
"hz": {
"type": "string"
},
"ms": {
"type": "string"
},
"note": {
"type": "string"
},
"modifier": {
"type": "string"
}
},
"additionalProperties": false
}
},
"bar_ms": {
"type": "string"
},
"markings": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"min_bpm",
"max_bpm"
],
"properties": {
"name": {
"type": "string"
},
"max_bpm": {
"type": [
"number",
"null"
]
},
"min_bpm": {
"type": "number"
}
},
"additionalProperties": false
}
},
"beat_unit": {
"type": "number"
},
"precision": {
"type": "string"
},
"predelays": {
"type": "array",
"items": {
"type": "object",
"required": [
"note",
"ms"
],
"properties": {
"ms": {
"type": "string"
},
"note": {
"type": "string"
}
},
"additionalProperties": false
}
},
"delay_note": {
"type": "string"
},
"quarter_ms": {
"type": "string"
},
"bpm_numeric": {
"type": "number"
},
"marking_note": {
"type": "string"
},
"beats_per_bar": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Calculate tempo values",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}plan_tempo_practice — Plan tempo practice
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"start_bpm",
"target_bpm",
"step",
"minutes_per_step"
],
"properties": {
"step": {
"type": "number",
"maximum": 380,
"minimum": 0.001,
"description": "Positive change per stage, in BPM or percent; percent is limited to 100. Up to three decimal places. Example: 5."
},
"start_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 80."
},
"step_type": {
"enum": [
"bpm",
"percent"
],
"type": "string",
"description": "Step units, default bpm. Percent uses the previous stage with a 0.001 BPM rounding. Example: percent."
},
"target_bpm": {
"type": "number",
"maximum": 400,
"minimum": 20,
"description": "Quarter notes per minute, 20 to 400, up to three decimal places. Example: 120."
},
"minutes_per_step": {
"type": "number",
"maximum": 120,
"minimum": 0.001,
"description": "Minutes spent at each stage, including the target, up to three decimal places. Example: 2."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind",
"start_bpm",
"target_bpm",
"step",
"step_type",
"minutes_per_step",
"stages",
"total_minutes",
"rounding",
"preview",
"downloads"
],
"properties": {
"kind": {
"type": "string",
"const": "practice"
},
"step": {
"type": "number"
},
"stages": {
"type": "number"
},
"preview": {
"type": "array",
"items": {
"type": "object",
"required": [
"stage",
"bpm",
"minutes",
"start_minutes",
"end_minutes"
],
"properties": {
"bpm": {
"type": "number"
},
"stage": {
"type": "number"
},
"minutes": {
"type": "string"
},
"end_minutes": {
"type": "string"
},
"start_minutes": {
"type": "string"
}
},
"additionalProperties": false
}
},
"rounding": {
"type": "string"
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"start_bpm": {
"type": "number"
},
"step_type": {
"type": "string"
},
"target_bpm": {
"type": "number"
},
"total_minutes": {
"type": "string"
},
"minutes_per_step": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Plan tempo practice",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
metronome-widget — Beatwise Metronome view
Interactive view for Beatwise Metronome.
ui://widget/metronome-v6-1.0.1-65ca554a5ae10d88846cb34af83f741f0797170207d3577728efca4d541abe7e.htmlmetronome-widget-legacy — Beatwise Metronome view (previous versions)
ui://widget/metronome-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 495 ms
- 95th percentile latency
- 495 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 495 ms · metadata changed · 3 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http beatwise-metronome-mcp https://metronome.zovo.one/mcpCodex
codex mcp add beatwise-metronome-mcp --url https://metronome.zovo.one/mcpCursor
{
"mcpServers": {
"beatwise-metronome-mcp": {
"url": "https://metronome.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"beatwise-metronome-mcp": {
"type": "streamableHttp",
"url": "https://metronome.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"beatwise-metronome-mcp": {
"type": "http",
"url": "https://metronome.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http beatwise-metronome-mcp https://metronome.zovo.one/mcpClaude Desktop
{
"mcpServers": {
"beatwise-metronome-mcp": {
"url": "https://metronome.zovo.one/mcp"
}
}
}Windsurf
{
"mcpServers": {
"beatwise-metronome-mcp": {
"serverUrl": "https://metronome.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Beatwise Metronome MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.