midifier
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@midifierTranscribe the audio file 'song.mp3' to MIDI tracks."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
midifier
Turns a song into a multi-track General MIDI file. It works out which instruments are playing, transcribes each one, and names and assigns the tracks, so the result can be practised against in kinesthesia.
Available as a REST API and as MCP tools.
Run it
uv sync --extra dev
uv run python -m midifier # API on :8000, docs at /docs
uv run python -m midifier mcp # MCP serverNo configuration is needed to start; results are written to ./data.
Related MCP server: Fingerstyle Tab MCP Server
Use it
# start a transcription
curl -F 'file=@song.mp3' http://localhost:8000/v1/jobs
# {"id":"...","state":"queued"}
# poll it
curl http://localhost:8000/v1/jobs/<id>One job runs at a time, and each takes roughly three times the length of the song, so jobs are
polled rather than waited on. While a job waits, GET /v1/jobs/<id> reports queue_ahead and
eta_seconds, and GET /v1/queue reports how busy the service is. The estimate is measured from
completed jobs rather than configured, so it reflects whatever hardware this runs on.
The OpenAPI schema is at /openapi.json.
Secure it
The service holds only the hash of an API key, so reading the deployed secret does not let anyone call it. Generate a pair:
uv run python -m midifier keygenDeploy the hash as MIDIFIER_API_KEY_HASH, and give the key to callers. With no hash
configured the service is open, which suits local use.
Callers present the key one of three ways, whichever their client makes easiest:
caller | how |
REST |
|
MCP over HTTP |
|
MCP over stdio | the |
The MCP server is served from the same app at /mcp, so one URL and one key cover both
surfaces, and a job started over MCP is visible over REST.
Configure it
Every setting is an environment variable prefixed MIDIFIER_. See
.env.example for the full list. The ones that matter:
variable | default | |
| unset | when set, callers must present the key |
|
|
|
| — | with the other |
|
|
|
| — | needed to download the transcription weights |
|
| longest song accepted |
|
| transcriptions run at a time |
Develop it
uv run pre-commit run --all-files # everything CI runs
uv run pytest --cov # tests, 80% gateConventions and the reasoning behind the pipeline are in AGENTS.md.
Licence
MIT. The transcription weights it downloads are licensed separately and are not redistributed here.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/matheusfillipe/midifier'
If you have feedback or need assistance with the MCP directory API, please join our Discord server