MCP server for interacting with the Scryfall MTG API
SEGAN is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Game sound effects and music written as text: lint, listen and build WAVs and Godot resources.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user segan-mcp '--' uvx segan-gen mcp
# 2 — ask your agent for something these tools do
# status, read_docs, docs and 27 more
SEGAN costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts SEGAN as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user segan-mcp '--' uvx segan-gen mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
30 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Every song and SFX (kind, category, length, status, style version, errors/warnings, what needs attention), the style version, kits and default kit. Call this first. verbose adds each asset's description.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| verbose | boolean | no | — |
BRIEF.md (what the game needs, decisions log) and SOUND.md (how it must sound). Read both before making or changing anything: they are the project's memory between sessions.
Takes no parameters.
SEGAN's documentation, one topic at a time: no arguments = the topic list (name, summary, size);
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topic | string | no | — |
| search | string | no | — |
Replace BRIEF.md or SOUND.md with text (read it first and keep what's there).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| doc | string | yes | — |
| text | string | yes | — |
Add a dated line to BRIEF.md's "Decisions and feedback log" (what the owner asked or decided).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| note | string | yes | — |
Every segan.toml setting ([mix] room/oversample/crush..., [loudness] targets, kit, export): value, default, meaning.
Takes no parameters.
Change a setting (validated; nothing is written if invalid). value is TOML: 0.3, true, "nes", ["wav", "godot"]. [mix] changes re-render every song and SFX.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| value | string | yes | — |
Return a setting to its default.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
Every kit: instruments (key -> name, source, range, voices) and groups.
Takes no parameters.
Every instrument of a kit playing a test phrase: the kit's listen sheet (look at it) and, with audio, the WAV for a human to hear.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| audio | boolean | no | — |
Write kits/<name>.kit.yaml (creates or replaces) and validate it. See segan://reference.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| text | string | yes | — |
Change the whole project's sound at once ("brighter": brightness 2; "warmer": warmth 2; "wetter": room 0.1;
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brightness | number | no | — |
| warmth | number | no | — |
| room | number | no | — |
| crush | integer | no | — |
| loudness | number | no | — |
| dry_run | boolean | no | — |
Create a starter file and return its text: a song (tracks with labelled empty rows, a loop) or an SFX (from a preset: coin, jump, laser, explosion, hit, hurt, powerup, blip, select, door, step).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | yes | — | |
| name | string | yes | — |
| description | string | no | — |
| kit | string | no | — |
| preset | string | no | — |
| key | string | no | — |
| tempo | integer | no | — |
| meter | string | no | — |
| bars | integer | no | — |
An asset's source text (song or SFX) by name.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
Write an asset's source (creates or replaces music/<name>.song.yaml or sfx/<name>.sfx.yaml) and lint it (format and rendered-audio checks) in the same call. Fix every error in findings; read the warnings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | yes | — | |
| name | string | yes | — |
| text | string | yes | — |
| preview | boolean | no | — |
Search Freesound for recordings (needs FREESOUND_API_KEY on the server). Only CC0 and CC BY sounds come back. Each result: ref (freesound:<id>), name, author, licence, duration, rating, tags. Compare candidates with sounds_inspect, keep one with sounds_add, then use it in an SFX layer as…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| max_seconds | number | no | — |
| licence | string | no | — |
| limit | integer | no | — |
Record a sound in the project's sounds.lock: freesound:<id> (licence checked, HQ preview fetched into the user cache), or a sound file in the project with its licence (CC0 / CC-BY-4.0), source (URL) and author.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ref | string | yes | — |
| licence | string | no | — |
| source | string | no | — |
| author | string | no | — |
| name | string | no | — |
Length, loudness, peak, brightness (spectral centroid), pitch and onsets of recordings (freesound:<id> or project files), so candidates can be compared without hearing them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| refs | array | yes | — |
Write SOUND_CREDITS.md (the attribution CC BY requires) from sounds.lock and the SFX's recorded layers.
Takes no parameters.
Errors and warnings for named assets (default: the whole project). Rule ids are explained in segan://reference; a warning that's wrong by design goes in the asset's lint: { disable: [...] }.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assets | array | no | — |
A seeded plan for a new song, away from the project's songs: key and mode, tempo, meter, opening texture, voicing and register, progression, instruments (the kit's identity plus extras) and the segan new song command. take gives another plan for the same request.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| mood | string | no | — |
| take | integer | no | — |
Roll a kit from style words and the project seed: an identity group (the game's signature instruments), bass, harmony, colour and drums from a wide palette. around keeps another kit's identity instruments (a song's extras around the same identity); samples allows sampled library instruments.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| style | string | yes | — |
| around | string | no | — |
| samples | boolean | no | — |
| take | integer | no | — |
| dry_run | boolean | no | — |
How alike the project's songs are: pairs scored 0-1 overall and by harmony, rhythm, timbre, register and tempo, the closest song for each, and whether two open on the same notes. shipped also compares with SEGAN's own examples. Run it before calling a soundtrack done: no two songs should open…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| songs | array | no | — |
| shipped | boolean | no | — |
Render previews (WAV + listen sheet + seam view for loops + analysis numbers) and return one listen sheet as an image: LOOK at it before reporting. output: main (default), variant:<name>, variation:<n>, phase:<name>, stem:<track>. start/end: bar numbers (songs) or seconds like 2.5s. which:…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset | string | yes | — |
| output | string | no | — |
| start | string | no | — |
| end | string | no | — |
| which | string | no | — |
| audio | boolean | no | — |
Every asset's waveform and spectrum side by side plus loudness by category: check the set belongs together.
Takes no parameters.
Record reviews: status approved (only after a HUMAN listened) / draft, and/or current = made under the current style version. outdated applies to every asset made under an older style.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assets | array | no | — |
| status | string | no | — |
| current | boolean | no | — |
| outdated | boolean | no | — |
Record a sound-style change that means existing assets must be revisited: bumps style_version, logs the note in SOUND.md, flags older assets (W006) until they're updated and marked current.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| note | string | yes | — |
Convert a standard MIDI file into a song source (quantized to the grid, notes snapped to the key, GM programs mapped to kit instruments) with a report of what changed. Give a path inside the project, or the file as midi_base64 (with a name).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | no | — |
| midi_base64 | string | no | — |
| name | string | no | — |
| kit | string | no | — |
| key | string | no | — |
| quantize | integer | no | — |
| force | boolean | no | — |
Lint, then write final WAVs, manifest.json and engine resources into the project's output dir (usually the game). Do this after a human approved the sounds. verify_godot loads and plays everything in headless Godot (only if the server was started with --allow-godot).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| verify_godot | boolean | no | — |
The build's manifest.json (the contract with the game): per asset its files, length, loop points (samples), bpm, sections, markers, variants, variations, takes, phases, stems and loudness. Optionally one asset.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset | string | no | — |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under Apache-2.0
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install SEGAN or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (30 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| status | no tags | |
| read_docs | no tags | |
| docs | no tags | |
| config_show | no tags | |
| config_set | no tags | |
| config_unset | no tags | |
| mix_adjust | no tags | |
| sounds_search | no tags | |
| sounds_add | no tags | |
| sounds_inspect | no tags | |
| sounds_credits | no tags | |
| lint | no tags | |
| suggest_song | no tags | |
| kit_roll | no tags | |
| similarity | no tags | |
| mark | no tags | |
| style_bump | no tags | |
| build | no tags | |
| write_doc | no tags | |
| log_feedback | no tags | |
| kit_list | no tags | |
| kit_show | no tags | |
| kit_write | no tags | |
| scaffold | no tags | |
| read_asset | no tags | |
| write_asset | no tags | |
| preview | no tags | |
| gallery | no tags | |
| import_midi | no tags | |
| manifest | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.17.1. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish SEGAN can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.