mcpbeat Sign in

osc-bridge MCP Server

answering

osc-bridge is answering right now. Last checked 9 min ago. 1 191 installs a week from npm. It exposes 29 tools. Last commit 1 Nov 2026.

OSC ↔ MIDI bridge for synthesizers and DAWs, with the SynthHub catalogue. A MIDI MCP and OSC MCP.

Installs per day peak 583 · avg 42 · +4862% w/w
a month agotoday
Uptime history 10 days of history · worst day 99%
10 days agonow
100.0%
Uptime 24h
91 of 91 checks
29
Tools
read from the server
310 ms
Response time
average over 24h
1 191
Installs / week
npm and PyPI

What changed 26

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 24 October 2026. No other catalogue keeps this.

31 Oct a tool changed version
30 Oct a tool changed version
27 Oct 4 tool descriptions were rewritten6 times that day list_devices, relay_detect, relay_status and 1 more
27 Oct a tool changed the parameters it asks for2 times that day relay_detect
27 Oct a tool appeared export_device
25 Oct 3 tool descriptions were rewritten find_presets, link_account, set_profile
25 Oct 2 tools changed the parameters they ask for find_presets, set_profile
25 Oct a tool disappeared favorite_preset
25 Oct a tool appeared star_preset
24 Oct 4 tools changed the parameters they ask for find_presets, load_preset, set_profile and 1 more
and 7 more, back to 24 October 2026

What the code does

We read the source, 23 h ago · tools taken from the live server · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Runs a command on install [пакет] package.json:1
postinstall: node scripts/postinstall.js
const res = spawnSync(bin, process.argv.slice(2), { stdio: "inherit" });

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 9 min ago.

run in your terminal
claude mcp add osc-bridge --transport http https://mcp.synthhub.roomi-fields.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcp.synthhub.roomi-fields.com/mcp
~/.codex/config.toml
[mcp_servers.osc-bridge]
url = "https://mcp.synthhub.roomi-fields.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "osc-bridge": {
      "url": "https://mcp.synthhub.roomi-fields.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "osc-bridge": {
      "type": "http",
      "url": "https://mcp.synthhub.roomi-fields.com/mcp"
    }
  }
}

Available tools 29

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

relay
relay_detect
Find which devices are connected to the user's machine through a relay: sends the MIDI Identity Request (F0 7E 7F 06 01 F7, changes nothing on the device) to every output and matches the answers — manufacturer, model, firmware version — against the drivers' identity blocks. With maker_requests, also sends the makers' own identity requests the drivers name (they change nothing either, but the relay asks the user to accept them, once per output: tell the user first), which recognise devices that ignore the universal one. Returns the best driver ids (recognised_by and firmware when an identity block recognised the device) and identity_hex to pass to report_result. A device that does not answer is found by its knobs with listen_ms (by_controls), or by what people confirmed of its port name (learned); when several remain, ask names the control to have the user turn next (expect: what each candidate would send), then call again with listen_ms.
relay_listen
Listen to what the user's hardware sends through a relay for a few seconds: notes, CC, NRPN, SysEx, decoded. With a device, each CC or NRPN that moved is matched to the driver's OSC addresses — ask the user to move one control on the device while listening to learn which address it is, or to check that the driver's map is right (then record what you saw with report_mapping, so the catalogue learns it).
relay_send
Play or set something on the user's hardware through a relay: give a driver (id or slug) and one of its OSC addresses from list_routes with its arguments (e.g. address '/filter/cutoff', args [64]; '/note/on', args [60, 100]) — the server turns it into the right CC, NRPN, note or SysEx message. Or give raw MIDI bytes as hex. Values are the device's own numbers, clamped to the parameter's range. Any SysEx but the Identity Request (patch dumps, stores, settings, preset restores) may overwrite the device's memory: the relay asks the user to accept it first and this call waits for the answer (up to 2 minutes), so tell the user what you are about to send.
relay_status
Check a relay: the user opened https://synthhub.roomi-fields.com/connect/ (or ran osc-bridge connect) and gave you its pairing code. Returns the MIDI output and input ports of their machine, and devices: the driver the user confirmed for each port on the page (use it directly, no detection needed). Nothing is sent to the hardware.
preset
get_preset
One shared preset in full: its content (SysEx hex, settings by driver address, MIDI file), description and playing tips, versions with their change notes, what it was derived from and its derivatives (remixes), comments, preview URLs, author, licence and attribution line, trust and counts. Load it with load_preset; credit it as the attribution line says when you publish something made from it.
preset_collection
Collections of shared presets, public, made by one account (e.g. 'Dark basses for minilogue'). action: create (name, description), rename (collection, name, description), add or remove (collection, id), delete (collection), get (collection: its presets), list (this account's collections, or author: someone's).
update_preset
Publish a new version of a preset this account shared: new content (hex, file, settings or midi_file) makes a new version, kept with a change note — earlier versions stay available; the description fields alone change it in place. Someone else's preset: share yours with derived_from instead.
report
report_mapping
Teach the catalogue which MIDI message a control really sends: after the user moved one control on the device (see relay_listen), give the driver address it is (from list_routes) — or, for a control the driver lacks, its panel label — and the CC, NRPN or note it sent, with the firmware and the device's Identity Reply when you have them. When several accounts observe the same thing on one firmware the mapping is learned; get_trust shows learned mappings and where they differ from the driver.
report_preset
Tell SynthHub how a shared preset behaved once loaded on a real device: 'works' (it loaded and sounds as described), 'fails' (refused, wrong sound), or 'factory' (it is a factory preset or someone else's sound: presets that several users flag are hidden until reviewed). Give the firmware.
report_result
Tell the catalogue how a driver behaved on a real device, after testing it: 'works', 'fails' or 'partial', for the whole driver or one OSC address (from list_routes). Give the firmware version, and the device's reply to the MIDI Identity Request (F0 7E 7F 06 01 F7) as identity_hex when you can: trust is counted per firmware, so a failure on another firmware does not count against the driver, and a report of unknown firmware cannot be placed. Several accounts that agree on one firmware mark the driver usage-verified there; a report that several others contradict is rolled back and puts its account under review. Report only what was actually tested.
submit
submit_driver
Contribute a driver for a device the catalogue lacks (or a better one): the full driver file as a JSON object, in the osc-bridge device schema (device.name, device.vendor, device.osc_prefix, and cc_params / params / commands / triggers — see https://synthhub.roomi-fields.com/DEVICE_JSON_SCHEMA/). It is checked, then merged into the SynthHub catalogue by the merge job if it parses, lints and passes the tests, as its own file of source 'agent-contributed'. Say where the data comes from (manual page, tested on the device).
submit_fix
Contribute a corrected variant of a driver from what the catalogue learned: where learned mappings (get_trust → mappings, differs: true) disagree with the driver on one firmware, builds a copy of the driver with the learned CC / NRPN numbers, as a new file for that firmware, and queues it for the merge job.
claim
claim_presets
Claim presets SynthHub imported from another site (their page says 'imported', with the author's name and page there) when the user is that author: give the id of one of them; the server answers with a code for the user to add to their author page at that site (profile or bio). Once it is there, call again with verify: true: every preset imported from that author becomes the user's, to edit or withdraw.
comment
comment_preset
Comment on a shared preset — how it sounds, how you used it, what you changed — optionally attaching your remix (a preset you shared with derived_from). Comments are public at once. Also: remove one of this account's comments (remove), or flag someone else's as abusive or off-topic (flag); comments several accounts flag are hidden until reviewed.
contribution
get_contribution
Where a contribution stands: pending (waiting for the merge job), merged (with its pull request), rejected (with the reason), or held (its account is under review).
device
get_device_docs
Fetch the markdown companion documentation for one device, if present. The slug is the device's OSC prefix without the leading slash (e.g. 'ableton' for /ableton).
devices
list_devices
Find device drivers in the catalogue of synths, drum machines, controllers and DAWs. Without arguments it lists them all; `query` keeps drivers whose vendor, name or slug contain every word (e.g. 'korg minilogue'). Returns name, vendor, OSC prefix (slug), kind, source tier and firmware version when the source states one. Pass the slug to list_routes for the full CC/NRPN/SysEx map.
export
export_device
Write one driver in a format other tools read: 'oscquery' gives its OSC namespace as OSCQuery JSON (every route with type tags, ranges and access, for OSC controllers and browsers); 'midnam' gives its MIDI names as a MIDI Name Document (controllers incl. NRPN/RPN, named values, drum notes per channel, for DAWs such as Ardour or Logic). Both carry the credit and licence of the driver's sources. The document is the text content; an OSCQuery namespace is large (every address, each CC 0-127 included).
follow
follow_author
Follow an author of shared presets (by pseudonym), or stop (on: false); with author alone and on omitted, shows their page: profile, presets, followers. Without author, lists the newest presets of the authors this account follows.
link
link_account
Link this account to the user's SynthHub account on the site: returns a one-time address (valid 15 minutes) for the user to open and sign in (passkey, e-mail, Google or Discord). Afterwards what this account shared appears under their profile, and they manage it — and their stars, collections, comments — from the site. Offer it when the user wants to see or manage what you shared for them.
load
load_preset
Load a shared preset (find_presets, get_preset) into the user's device through a relay: its settings are sent through the driver, its patch data as SysEx — which replaces the sound the device holds, so the relay asks the user to accept it and this call waits for the answer (up to 2 minutes): tell the user first. Afterwards, tell SynthHub how it went with report_preset.
presets
find_presets
Search what SynthHub users shared (CC BY-SA 4.0): sounds, sequences, kits, projects, banks, MIDI clips. Filter by device, kind, category, genre, tag, author (pseudonym) or words; sort by newest, most stars, most loaded into a device or most trusted (confirmed on real devices). Returns, per preset, its id, name, kind, device, description, author, version, whether it has device data, settings, a MIDI file or an audio preview (URL), and its counts. Get one with get_preset.
profile
set_profile
Set the public profile shown on this account's author page and with its shared presets and comments, instead of its pseudonym alone: display name, link (https), a few words, the presets put first, where they are, more links, their instruments and a README. A field left out stays as it is; an empty one is cleared. Ask the user what they want shown; all of it is public.
routes
list_routes
Return the OSC routes a device exposes: declarative commands (OSC paths it accepts), cc/nrpn params, sysex params, named note triggers (drum sounds), and reply patterns. Use this to discover what a device can do.
share
share_preset
Share something the user made on a device with every SynthHub user, under CC BY-SA 4.0: a sound, a sequence or pattern, a kit, a project, a bank of their own sounds, or a MIDI clip any device can play. Its content: the device's own data (SysEx, e.g. from backup_presets), settings by driver address (from list_routes, e.g. {'/filter/cutoff': [90]}, which also works for devices without dumps), and/or a standard MIDI file. Only what the user made: never factory presets, nor sounds or sequences bought or downloaded from others — set own_sound only after asking the user. Made from someone else's shared preset? Pass derived_from: it credits them, as the licence requires. Describe it well (category, genres, tags, tempo, key, tips): that is how people find it. The same content shared twice returns the existing id; the author publishes new versions with update_preset and can withdraw it (withdraw_preset). Through a relay, the device data can be captured from the device itself: pass code and start the dump from the device's menu during the call, or give request_hex (the device's dump-request message, which the user accepts at the relay). An audio preview is added by its author with PUT /u/<account>/v1/presets/<id>/audio (MP3, Ogg, M4A or WebM, 1 MB at most).
star
star_preset
Star a shared preset for this account, as on GitHub (on: false takes the star back). Without id, lists the presets this account starred.
take
take_sound
Take the sound the user's synth is playing — or one of its stored programs — straight from the synth through a relay, with its name. The synth is found among those SynthHub's librarian can talk to (the KnobKraft Orm adaptations, about 90 synths) by the identity and detect messages, then asked for its sound. The person accepts each step at the relay (finding the synth, asking it): tell them first. To share it: ask the user whether they made this sound themselves (never a factory preset, nor one bought or downloaded), then call share_preset with the device, name, hex, librarian and firmware returned here, and own_sound: true. When several synths answer, or none did, call again with port.
trust
get_trust
How far a driver has been confirmed by people who used it, per firmware: status (unreported, unconfirmed, usage-verified, firmware-dependent, failing, disputed), how many users report it works / fails / partly works, each firmware's own status, the device identities seen for each firmware, and the same per OSC address. needs_firmware: true means reports disagree and some have no firmware — identify the device before reporting (see learn). Check it before relying on a driver, together with its source_tier.
withdraw
withdraw_preset
Withdraw a preset this account shared: it is no longer listed nor served. Copies others already made stay under CC BY-SA.

Tools removed

Tools this server used to expose. Anything built against them stopped working on the day they went.

favorite_preset
removed 25 Oct 2026

Endpoints

URLTransportStateLatencyChecked
https://mcp.synthhub.roomi-fields.com/mcp streamable-http answering 283 ms 9 min ago

Alternatives to osc-bridge

same job, measured the same way
Aganium
by aganium

Bridge MCP servers to the AGENIUM agent:// network with DNS resolution and mTLS

local only
Tendeta
by tendeta

Manage a Tendeta store's catalogue and orders with store-scoped permissions.

answering
Ask Claude
by lykhoyda

Bridge Codex and other MCP clients with Anthropic Claude Code CLI for read-only second opinions

291 installs/wk local only
Tulimoa
by tulimoa

Find curated AI and MCP tools in the Tulimoa directory; submit yours free with a badge or for $5.

5 tools answering
I14y MCP
by malkreide

MCP server for I14Y — Switzerland's national open-data metadata catalogue (DCAT-AP-CH)

140 installs/wk local only
Meld
by lemonaide152

Agent bridge. Host-readable; anyone with the link can read and reply. Not for secrets.

3 tools answering
Timeweaver MCP
by fixtureforge

Synthetic time-series test data with trend, seasonality, noise, and anomalies, for any MCP client.

47 installs/wk local only
C
Castor MCP
by moosejudge

Castor for Confluence Data Center — MCP server bridging Confluence DC with AI agents

68 installs/wk local only

osc-bridge — questions

Answers built from our own checks of this server.

What can osc-bridge do?
It exposes 29 tools, read directly from the server on our last check. Among them: claim_presets, comment_preset, export_device, find_presets, follow_author, get_contribution and 23 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is osc-bridge mostly used for?
Its tools cluster around relay, preset and report. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is osc-bridge working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 310 ms. The bar chart above shows every period we have measured.
Did osc-bridge ever remove tools?
Yes. favorite_preset is no longer exposed — we recorded the date each one disappeared. A tool vanishing usually means a breaking change for anything that depended on it.
How do I connect osc-bridge?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does osc-bridge need an API key?
No. osc-bridge completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 29 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is osc-bridge?
It answers our handshake in 310 ms on average, which is faster than 46% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use osc-bridge?
The npm package @roomi-fields/osc-bridge was installed 1 191 times in the last week. Week over week that is +4862%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is osc-bridge open source?
The code is open source: it is published under the AGPL-3.0 licence, written in Rust and 9 stars on GitHub. The licence covers the code in the repository, not the hosted service at mcp.synthhub.roomi-fields.com, which runs on its operator's own terms.