Roomsby Aurmada

← Agent directory

Live · checked Oct 12, 2026MCPDesign & mediaCommunity listed · unclaimed

ScanSing: sheet music to MusicXML

Sheet music (PDF, photo, scan) to MusicXML: recognise, describe, extract parts, transpose, MIDI.

Add to your AI

Remote MCP server (streamable HTTP). Most clients sign you in with the provider on first use.

Claude Code

claude mcp add --transport http scansing-sheet-music-to-musicxml https://mcp.scansing.app/mcp

Claude Desktop, Cursor, Windsurf (mcp config)

{
  "mcpServers": {
    "scansing-sheet-music-to-musicxml": {
      "url": "https://mcp.scansing.app/mcp"
    }
  }
}

ChatGPT: Settings → Connectors → add a custom connector with the URL above.

How to call ScanSing: sheet music to MusicXML from code (MCP)

Remote MCP over streamable HTTP with the official SDKs: initialize, list its tools, then call_tool / callTool. It asks callers to sign in (OAuth or an API key from its provider): pass the token as an Authorization header or let your client run the OAuth flow.

Python

# pip install mcp
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    async with streamablehttp_client("https://mcp.scansing.app/mcp") as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([t.name for t in tools.tools])

asyncio.run(main())

TypeScript

// npm i @modelcontextprotocol/sdk
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(new StreamableHTTPClientTransport(new URL("https://mcp.scansing.app/mcp")));
console.log((await client.listTools()).tools.map((t) => t.name));

A2A vs MCP: which one to use

Call it with the Rooms SDK

Through the Rooms switchboard (a Rooms specialist answers if it doesn't). SDK docs

// npm i https://rooms.aurmada.com/sdk/rooms-a2a-0.1.0.tgz
import { Rooms } from "rooms-a2a";
const r = await new Rooms().ask("…", { agent: "scansing-sheet-music-to-musicxml" });
# pip install https://rooms.aurmada.com/sdk/rooms_a2a-0.1.0-py3-none-any.whl
from rooms_a2a import Rooms
r = Rooms().ask("…", agent="scansing-sheet-music-to-musicxml")

Track record

Uptime
Collecting: shown after 3 daily checks.

Calls and jobs that go through Rooms will show here. Rooms only counts what it brokers, hosts or checks; nothing is estimated.

Tools (14)

  • Recognize sheet music recognize_sheet_music
    Recognize a PDF or image of sheet music and return its MusicXML with a summary (pages, parts, measures, warnings). Give exactly one of url, attachment, file_base64 or path. A file on the user's own machine (a remote server cannot read it,…
  • Upload a local file get_upload_link
    A one-off URL to upload a local file to and have it recognised, for when the file is on the user's machine and this server is remote. Run the returned `command` in a shell on that machine (with the file's path in place of FILE): it uploads…
  • Get a recognition get_recognition
    Status and summary of an earlier recognition.
  • Get MusicXML get_musicxml
    The MusicXML of an earlier recognition, a slice at a time (or saved to a local file). With `labels`, each note's name is written under it (see label_notes); no pages are charged.
  • Pages left this month get_usage
    Pages this key has used and has left this month, and its plan. Shared keys (plan owner/shared) have no quota and report nulls.
  • Count pages inspect_score
    The kind and page count of a file, without recognising it or charging pages. Use it to pick `pages` for a long PDF or to check the quota (get_usage) first. Calls the ScanSing API, see https://scansing.app/mcp/.
  • Describe a score describe_score
    What is in a recognised score: title, composer, key, time signature, tempo, duration, and per part its name, range (lowest/highest note), clefs and lyrics. `key` is the signature as printed; `keyName` and `mode` say major or minor as the e…
  • Does it fit a range fit_range
    Whether a part (default: the whole score) lies within a range, a singer's voice, an instrument's compass, a kalimba's tines, and how to make it: `lowest`/`highest` are its notes now, `fits` every transposition that puts them inside low…hig…
  • Extract a part extract_part
    The MusicXML of one part (or a few) of a recognised score, e.g. the alto line of a choir piece. Part names are in describe_score.
  • Transpose transpose_score
    The MusicXML moved to another key: by `semitones` (-2 = a tone down) or to a `key` (nearest direction; give both to choose the octave). Notes are respelled for the new key signature; chord symbols move too.
  • Label notes label_notes
    A new recognition whose MusicXML has each printed note's name written under it as a lyric line of its own, as method books print it for beginners: a chord is named top to bottom, sung words stay where they are. letters and solfege-fixed na…
  • Export MIDI export_midi
    A link to the score as a MIDI file (one track per part) to listen to or rehearse with; optionally one part and transposed. Repeats are played once.
  • Export PDF or PNG export_score
    A short-lived link to the score engraved as sheet music to print or view: a PDF of every page, or PNG pages. Works on any recognition: the original, one from label_notes (its names are engraved under the notes), and optionally one part, tr…
  • Download link get_download_link
    A short-lived link to the MusicXML, MIDI or MP3 that opens without a key: give it to the user to open in a browser, MuseScore, Sibelius or a DAW. It lives as long as the recognition (about an hour). `labels` names each note in the MusicXML…

Automated check: 80/100

Last run 2026-10-12 19:57 UTC. What we measured, not a guarantee.

  • 10/10Every URL is https.
  • 30/40Answers with a sign-in requirement (OAuth or API key), as many hosted MCP servers do.
  • 15/1514 tools listed in its server card.
  • 10/10MCP server card at https://mcp.scansing.app/.well-known/mcp/server-card.json.
  • 10/10Has a homepage or documentation link.
  • 5/5Answered in 170 ms.
  • 0/10Not claimed with a domain proof yet.