_ registry / mcp streamable-http · checked 1h ago

cesure

https://api.cesure.app

Registry code: 5b0123f0b0e4e8a6

api record

Cesure writes tablature and staff notation, notes by fret and string or by pitch. Each score lives on Cesure's server as a draft, named by the id every tool gives (draft): open one with create_score (a .cesure you write), import_score (a .cesure file, AlphaTex, or an "Open in Cesure" link the person gives) or read_my_score, then pass that id to the other tools — never the score itself. undo_last_change gives a draft back the score it held before its last change. No tool gives the whole score back: each answers with a summary, and read_score reads the measures you need, 200 at most a call. A…

endpoint
https://api.cesure.app/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is cesure live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is cesure free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does cesure have?
14 tools: create_score, import_score, read_score, edit_measures, transpose, refinger, undo_last_change, read_my_score, ….
Is cesure safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
353ms

last good check

priced tools
0

of 14 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 14 tools
1 open1 auth-required 12 never probed 2 of 14 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • search_catalog open 1h ago

    Search Cesure's catalog of free pieces by title or composer; returns title, artist, licence and link.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "query": {
          "type": "string",
          "description": "Words of a title or a composer; empty lists the catalog."
        },
        "language": {
          "enum": [
            "en",
            "fr",
            "es"
          ],
          "type": "string",
          "description": "en (default), fr or es."
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • list_my_scores auth-required 1h ago

    The scores of the person's linked Cesure account ("My scores"), most recently changed first, 200 a call (offset skips the first ones; when there are more, the answer's more gives the next offset): id, title, when last changed, and its tags; then every tag of the account, with how many scores carry it. Needs the account linked.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "offset": {
          "type": "integer",
          "minimum": 0,
          "description": "How many scores to skip, most recent first (default 0): the answer's more gives the next."
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • create_score unknown never probed

    Create a score you write as a .cesure and open it as a draft, e.g. {"version":2,"score":{"title":"Song","tempo":96,"tracks":[{"name":"Guitar","instrument":"GUITAR","measures":[{"staves":[{"voices":["(0.6 2.5 2.4).2 r.2"]}]}]},{"name":"Bass","instrument":"BASS","tuning":[{"note":"G","octave":2},{"note":"D","octave":2},{"note":"A","octave":1},{"note":"E","octave":1}],"measures":[{"staves":[{"voices":["0.4.2 r.2"]}]}]}]}} (a track without tuning is a guitar in standard tuning; tuning lists the open strings from string 1). Every measure must read and fill its time signature, or nothing is created and the refusal names each fault with its place. Measure notation (.cesure): each voice is one string of beats separated by spaces. beat = content.duration[{d | tu 3}]; content = fret.string[{note props}] | pitch | (note note …) | r. Durations, on EVERY beat: 1 whole, 2 half, 4 quarter, 8, 16, 32, 64. Strings from 1 (the highest); x as fret mutes. A pitch (C4 = middle C, F#3, Bb2) lets Cesure choose string and fret; a staff is all by pitch or all fret.string. Beat props: d dotted, tu 3 triplet on each beat of the group. Note props: t tie, h hammer/pull-off and sl slide to the next note on that string, v vibrato, b (0 4) a whole-tone bend. EACH VOICE FILLS ITS TIME SIGNATURE EXACTLY: 4/4 = 4 quarters = 8 eighths, 3/4 = 3 quarters, 6/8 = 6 eighths; complete a short one with rests. A measure without numerator/denominator is 4/4, whatever came before. A second voice (a bass under a melody) is a second string in voices. Examples (4/4): "5.3.4 7.3.4 r.2" (fret 5 then 7 on string 3 (strings from 1, the highest), quarters; a half rest); "(0.1 1.2 0.3).2 x.6.4 r.4" (a chord, a half; a muted note); "E4.8 F#4.8 G4.4 Bb3.2" (notes by pitch (C4 = middle C): Cesure chooses string and fret); "5.3.4{d} 5.3.8 2.1.8{tu 3} 3.1.8{tu 3} 5.1.8{tu 3} 7.2{h}.8 8.2.8" (dotted quarter; a triplet of eighths (each beat carries it); a hammer-on to the next note); "5.3.2 5.3{t}.4 7.2{sl}.8 9.2{v}.8" (a tie to the note before, a slide, a vibrato). A measure: {"id":"p2","numerator":3,"denominator":4,"staves":[{"voices":["0.1.8 2.1.8 3.1.4 5.1.4","0.6.2{d}"]}]}. The full format: https://cesure.app/format

    mcp-tool

    {
      "type": "object",
      "required": [
        "score"
      ],
      "properties": {
        "score": {
          "type": "string",
          "description": "The score, a .cesure written in the notation described above."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • import_score unknown never probed

    Open as a draft a score the person gives whole: a .cesure file's text, AlphaTex, or an "Open in Cesure" link. The score is taken as it is, never rewritten.

    mcp-tool

    {
      "type": "object",
      "required": [
        "score"
      ],
      "properties": {
        "score": {
          "type": "string",
          "description": "The .cesure text, AlphaTex, or Open in Cesure link, verbatim."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • read_score unknown never probed

    Read measures from..to of a track of the draft (all by default, 200 at most a call: past them, the answer's more says where to go on) as .cesure measures — id, time signature, voices in the compact notation (second voice, hands, ties included) — with the repeat signs and tempo changes of those measures, by id, a summary of the score and one of the track.

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft"
      ],
      "properties": {
        "to": {
          "type": "integer",
          "minimum": 1,
          "description": "Last measure (default the last; at most 200 are read a call)."
        },
        "from": {
          "type": "integer",
          "minimum": 1,
          "description": "First measure, from 1 (default 1)."
        },
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        },
        "track": {
          "type": "integer",
          "minimum": 1,
          "description": "The track, from 1 (default 1)."
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • edit_measures unknown never probed

    Rewrite measures from..to (numbers, inclusive) of ONE track of the draft with .cesure measures, as read_score returns them; to = from - 1 inserts before from. Keep the id of each measure you keep, even rewritten: a measure written without its id is a new measure, and the one it stood for is removed with what it carried (a repeat it opened, say). Leave the id out only for a new one; a measure of the range left out is removed, and measures [] removes the whole range. Unlike the format's own advice (a range of ids, every track rewritten), the other tracks follow column by column, as in the editor: a column is inserted, removed or given a time signature on every track; its repeat signs are carried as the editor carries them, and a tempo change stays on its column (on the next one when its column is removed), so no other column changes tempo. A note may be written by its pitch (E4, Bb3) in place of fret.string: Cesure chooses its string and fret, and never moves a note written with its string. The answer names the measures written. Every measure you write must read and fill its time signature, or nothing is written and the refusal names each fault with its place; one handed back as it is (id and content) is not judged. Measure notation (.cesure): each voice is one string of beats separated by spaces. beat = content.duration[{d | tu 3}]; content = fret.string[{note props}] | pitch | (note note …) | r. Durations, on EVERY beat: 1 whole, 2 half, 4 quarter, 8, 16, 32, 64. Strings from 1 (the highest); x as fret mutes. A pitch (C4 = middle C, F#3, Bb2) lets Cesure choose string and fret; a staff is all by pitch or all fret.string. Beat props: d dotted, tu 3 triplet on each beat of the group. Note props: t tie, h hammer/pull-off and sl slide to the next note on that string, v vibrato, b (0 4) a whole-tone bend. EACH VOICE FILLS ITS TIME SIGNATURE EXACTLY: 4/4 = 4 quarters = 8 eighths, 3/4 = 3 quarters, 6/8 = 6 eighths; complete a short one with rests. A measure without numerator/denominator is 4/4, whatever came before. A second voice (a bass under a melody) is a second string in voices. Examples (4/4): "5.3.4 7.3.4 r.2" (fret 5 then 7 on string 3 (strings from 1, the highest), quarters; a half rest); "(0.1 1.2 0.3).2 x.6.4 r.4" (a chord, a half; a muted note); "E4.8 F#4.8 G4.4 Bb3.2" (notes by pitch (C4 = middle C): Cesure chooses string and fret); "5.3.4{d} 5.3.8 2.1.8{tu 3} 3.1.8{tu 3} 5.1.8{tu 3} 7.2{h}.8 8.2.8" (dotted quarter; a triplet of eighths (each beat carries it); a hammer-on to the next note); "5.3.2 5.3{t}.4 7.2{sl}.8 9.2{v}.8" (a tie to the note before, a slide, a vibrato). A measure: {"id":"p2","numerator":3,"denominator":4,"staves":[{"voices":["0.1.8 2.1.8 3.1.4 5.1.4","0.6.2{d}"]}]}. The full format: https://cesure.app/format

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft",
        "from",
        "to",
        "measures"
      ],
      "properties": {
        "to": {
          "type": "integer",
          "minimum": 0,
          "description": "Last measure replaced; from - 1 to insert."
        },
        "from": {
          "type": "integer",
          "minimum": 1,
          "description": "First measure replaced, from 1."
        },
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        },
        "track": {
          "type": "integer",
          "minimum": 1,
          "description": "The track, from 1 (default 1)."
        },
        "measures": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "The new measures, .cesure measure objects as read_score returns them; [] removes the range."
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • transpose unknown never probed

    Shift the notes of the draft by some semitones; the placement follows. A note no string of its track can carry once shifted stays where it was: the answer counts them (notesLeftInPlace).

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft",
        "semitones"
      ],
      "properties": {
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        },
        "semitones": {
          "type": "integer",
          "maximum": 24,
          "minimum": -24,
          "description": "Semitones, -24 to 24."
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • refinger unknown never probed

    Place the notes of the draft again on the neck (string and fret), keeping their pitches: mode auto, standard (lowest frets) or optimized (fewest hand moves); searchCapo lets it choose a capo.

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft"
      ],
      "properties": {
        "mode": {
          "enum": [
            "auto",
            "standard",
            "optimized"
          ],
          "type": "string",
          "description": "auto (default), standard or optimized."
        },
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        },
        "track": {
          "type": "integer",
          "minimum": 1,
          "description": "The track, from 1 (default every track)."
        },
        "searchCapo": {
          "type": "boolean",
          "description": "Let the placement choose a capo (default false)."
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • undo_last_change unknown never probed

    Give the draft back the score it held before its last change (edit_measures, transpose, refinger, or an undo): the score it holds now becomes the one before, so calling it again redoes. One step only, and only when Cesure had room to keep that score; it says so when it had not.

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft"
      ],
      "properties": {
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • read_my_score unknown never probed

    Open one score of the linked account as a draft, by the id list_my_scores gives: the answer is the draft and the score's summary; read_score reads its measures. Needs the account linked.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The score's id, as list_my_scores gives it."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • save_new_score unknown never probed

    Save the draft as a NEW score in the linked account's library (never overwrites one; a free account keeps 3 scores), under a title (default the score's own). Needs the account linked.

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft"
      ],
      "properties": {
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        },
        "title": {
          "type": "string",
          "description": "The title in the library (default the score's own)."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • update_my_score unknown never probed

    Write the draft back over the score of the linked account's library it was opened from (read_my_score), as saving in the app does: refused, nothing overwritten, when the score was saved in Cesure since. The library keeps the score's earlier version. Needs the account linked.

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft"
      ],
      "properties": {
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • organize_my_scores unknown never probed

    Organize the scores of the linked account with tags, in ONE batch applied whole or not at all (at most 500 changes, counting the tags add creates): create_tags creates tags, add puts a tag on a score (creating the tag if the account has none of that name; names compare without case), remove takes it off, delete_unused_tags deletes tags no score carries. BEFORE calling it, show the person your plan grouped by tag and what you will not do, and wait for their yes. It never renames, deletes or changes a score, and no score's date moves. To reverse an organizing, call it again with the opposite changes (remove what was added, delete_unused_tags for the tags it created). Needs the account linked.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "add": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "score",
              "tag"
            ],
            "properties": {
              "tag": {
                "type": "string",
                "description": "The tag's name, 1 to 30 characters."
              },
              "score": {
                "type": "string",
                "description": "The score's id, as list_my_scores gives it."
              }
            }
          },
          "description": "Tags to put on scores."
        },
        "remove": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "score",
              "tag"
            ],
            "properties": {
              "tag": {
                "type": "string",
                "description": "The tag's name, 1 to 30 characters."
              },
              "score": {
                "type": "string",
                "description": "The score's id, as list_my_scores gives it."
              }
            }
          },
          "description": "Tags to take off scores."
        },
        "create_tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags to create, by name."
        },
        "delete_unused_tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags to delete if no score carries them, by name."
        }
      },
      "additionalProperties": false
    }
    arguments 63 lines
  • open_in_cesure unknown 1h ago

    Show the draft in the Cesure player, to read and hear it: call it once the score is ready. Where the host draws apps, the player plays the draft in the conversation; everywhere, the answer gives the short link that opens it in Cesure, with no account, and the score's summary.

    mcp-tool

    {
      "type": "object",
      "required": [
        "draft"
      ],
      "properties": {
        "draft": {
          "type": "string",
          "description": "The draft: the id a previous tool gave (draft)."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 5b0123f0b0e4e8a6.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/5b0123f0b0e4e8a6/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/5b0123f0b0e4e8a6/badge.svg)](https://brick.blue/agent/5b0123f0b0e4e8a6?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.