Vibresia
Server Details
Music visualiser (visualizer): write live GLSL music visualisations, shared as links that play.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- sydlawrencedev/vibresia
- GitHub Stars
- 0
- Server Listing
- Vibresia
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 8 tools
Each tool targets a clearly distinct action or resource: create, read, list, lint, publish, palette lookup, language reference, and native app download. The two reference-like tools (get_palette and vibescape_reference) are clearly separated by color grading versus uniforms/helpers.
Seven of eight tools follow a verb_noun snake_case pattern (create_vibescape, get_vibescape, lint_vibescape, list_vibescapes, share_vibescape, get_app, get_palette). vibescape_reference is a noun phrase and the only minor deviation, but it remains readable and predictable.
Eight tools is well within the appropriate range, and each tool maps to a distinct step in the create/validate/share/browse workflow plus necessary reference and app access. There is no obvious filler.
The core lifecycle is covered: create, get, list, lint, share, plus reference and palette support. There is no update, delete, or unshare operation for existing vibescapes, so adapting means creating a new one and gallery removal is not possible, but these gaps are workable for the main workflow.
Available Tools
8 toolscreate_vibescapeCreate a vibescapeAInspect
Use this when somebody wants a music visualiser or music visualisation (visualizer, visualization, musicviz, audio-reactive visuals): it writes a GLSL vibescape and returns a live link to it. The link draws and animates the vibescape in a browser, so it works for anybody who opens it, with or without the app. The vibescape is not in the public gallery until share_vibescape is called on it. Call vibescape_reference first for the uniforms and helpers the language has — a vibescape that ignores the music will look like a still image, and there is a linter that says so.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The vibescape: a GLSL function `vec3 render(vec2 p, float t)`. `p` is the position across the screen, centred on 0,0, and `t` is time in seconds. Return the colour as three numbers from 0 to 1. Read the music through the uniforms — uBass, uLevelSmooth, uBeatStrength, uScroll — or the picture will not move with the sound. | |
| name | Yes | What to call it. A few words that say what the picture looks like. | |
| author | No | Who to credit it to. Leave it empty and it is credited to Minith Labs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that the return value is a live link that animates in any browser with or without the app, that the artifact is private-by-default until share_vibescape runs, and that a linter will flag music-unreactive output. These are non-obvious behavior traits an agent cannot infer from readOnlyHint/openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case and followed by consequences; every sentence carries information. The long parenthetical synonym list ('visualizer, visualization, musicviz, audio-reactive visuals') is slightly bloated but plausibly aids matching.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by describing the return value (a live link) and its behavior. Combined with the prerequisites and gallery-state caveat, an agent has everything needed to call it and set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the code/name/author semantics, including the render function signature and uniforms, are already fully documented in the schema. The description adds no parameter-level detail beyond pointing at vibescape_reference for uniforms, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('writes a GLSL vibescape and returns a live link to it'), plus the user intent that triggers it ('music visualiser'). It is clearly distinguishable from siblings like share_vibescape and lint_vibescape, which are named in relation to it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger phrase with synonyms, a prerequisite ('call vibescape_reference first'), and the alternative path for visibility ('not in the public gallery until share_vibescape is called'). The agent knows when to use it and what to do before and after.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appGet the Vibresia appARead-onlyInspect
Use this when somebody wants the real thing: the app listens to the system audio directly, with no browser, and updates itself. It gives the download link and the one-line install command for macOS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, non-destructive lookup. The description adds useful behavioral context about what the app does and what the tool returns: a download link and a one-line install command for macOS.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the usage situation, followed by the return content. The phrase 'the real thing' is slightly informal, but the overall structure is efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and simple read-only annotations, the description covers the essential information: when to use it, what it returns, and the macOS scope. It could be slightly more explicit about return format, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is no parameter semantics burden on the description. The description correctly does not invent parameters and simply describes the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that the tool provides the app download link and macOS one-line install command, and explains the app's key behavior (system audio, no browser, self-updating). It is clear enough to distinguish from sibling vibescape tools, though it does not explicitly name or contrast those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: use when somebody wants the real app rather than a browser-based experience. It does not state when not to use it or name alternative tools, but the intended situation is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paletteThe palettesARead-onlyInspect
Use this to find out how a vibescape's colours are graded. Vibresia puts every vibescape through one of five palettes, so bright colours come out muted unless the shader accounts for it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Which palette — NEON, EMBER, TOXIC, ABYSS or MONO. Leave it out to get all of them. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, non-destructive, closed-world operation, so the safety profile is covered. The description adds useful domain behavior about five palettes and muted colours, but does not clarify return shape or whether it returns definitions versus applicability to a specific vibescape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the intended use, and every sentence contributes either purpose or domain context. There is no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter getter with full schema coverage and read-only annotations, the description supplies enough purpose and domain context to call it correctly. It could be slightly more complete by hinting at the return content, but the core is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself lists the five palette names and the omission behavior. The description reinforces the five-palette concept but adds no parameter-specific meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: finding out how a vibescape's colours are graded via palettes. It names the domain object and explains the five-palette model, though it does not explicitly differentiate the tool from siblings like get_vibescape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "Use this to find out..." implies when to use the tool, but there are no explicit when-not conditions or references to alternative tools. The palette rationale gives context but stops short of active guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vibescapeGet a vibescape's codeARead-onlyInspect
Use this to read somebody's vibescape, so it can be adapted or understood. Needs the id — the last part of the link.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The share's id — the last part of the link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive, and closed-world, so the safety profile is covered. The description adds useful context on where the required id comes from (the last part of the link) but says nothing about what the returned code contains or how large it may be.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded and the prerequisite immediately after. Nothing is wasted, though 'somebody's' is informal where a precise scope word would be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the definition covers purpose plus how to obtain the id. The only gap is that it does not characterize the returned code, which the agent must discover on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already states 'The share's id — the last part of the link'. The description repeats that same phrasing, adding no syntax, format, or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'read somebody's vibescape', reinforced by the title 'Get a vibescape's code'. It distinguishes the read operation from siblings like create_vibescape, list_vibescapes, and share_vibescape, though it never explicitly names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'so it can be adapted or understood' implies the use case and gives a real prerequisite ('Needs the id'), but there is no explicit when-not guidance or routing to siblings such as get_palette or list_vibescapes, leaving selection partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lint_vibescapeCheck a vibescapeARead-onlyInspect
Use this after writing a vibescape, before sharing it. It reads the code and says what would make it look wrong — most often that it never reads the music, so the picture is the same in silence as at full volume. Cheap to call and it catches most of what goes wrong.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The vibescape's GLSL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: it is cheap to call, catches most common failures, and typically flags the music-unaware pattern — useful for an agent deciding whether to run it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the when-to-use rule, followed by what it reports and a cost note. Nothing repeats the name or wastes a clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by characterizing the return as a report of what would look wrong, with a representative example. Complete enough to call correctly, though it doesn't indicate whether findings are graded or free text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter at 100% schema coverage, so the schema already says it is the vibescape's GLSL. The description only alludes to "the code" without adding format, size, or validity expectations beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it reads the vibescape's code and reports what would make it look wrong. The example failure mode (never reading the music) makes the purpose concrete, though it never names a sibling to contrast with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this after writing a vibescape, before sharing it" gives a clear lifecycle position that implicitly sequences it against create_vibescape and share_vibescape. It stops short of explicit exclusions or naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vibescapesList the public vibescapesARead-onlyInspect
Use this when somebody wants to see music visualisations other people have made, or wants something to look at before writing their own. Returns the public gallery: each vibescape's name, who made it, and a link that plays it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, non-destructive operation. The description adds useful behavior detail by specifying that it returns the public gallery with names, creators, and playable links, though it omits ordering, pagination, and whether the result is complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage condition and followed by the return contents. There is no repeated or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only gallery listing with no output schema, the description supplies what an agent needs: when to call it and what each returned item contains. The remaining omissions, such as pagination or ordering, are minor for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so the baseline is 4. The description appropriately does not discuss parameter syntax because there are no inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool lists the public vibescape gallery and names the returned resources: vibescape name, creator, and playable link. It is distinct from creation or single-item retrieval in scope, but does not explicitly name sibling tools such as get_vibescape or create_vibescape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: when someone wants to see visualisations made by others or wants inspiration before making their own. It does not explicitly state when not to use it or name alternatives like get_vibescape for a specific item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vibescape_referenceThe vibescape referenceARead-onlyInspect
Use this before writing a vibescape: it lists every uniform the music drives and every helper the language has, with what each is for. Writing a vibescape without it usually takes two attempts instead of one.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds that the output is an annotated catalogue of uniforms and helpers, which is useful context, but it says nothing about output shape, size, or completeness guarantees for a tool whose entire value is its returned content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the second (cost of skipping it) is placed after the imperative, and both earn their place by adding guidance the annotations cannot express. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only reference tool with no output schema, the description does the remaining work well: it says what the content covers and why calling it upfront matters. Nothing an agent needs before invoking this is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. Nothing in the description misleads the agent about inputs, and no argument semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it 'lists every uniform the music drives and every helper the language has, with what each is for.' That content description immediately distinguishes it from create_vibescape, get_vibescape, and lint_vibescape without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Front-loads an explicit timing instruction — 'Use this before writing a vibescape' — which effectively routes the agent away from create_vibescape on a first attempt. It doesn't name a sibling tool explicitly or state when-not to call it, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- First observed
create_vibescape - First observed
get_app - First observed
get_palette - First observed
get_vibescape - First observed
lint_vibescape - First observed
list_vibescapes - First observed
share_vibescape - First observed
vibescape_reference
Related MCP Connectors
Write audio-reactive MilkDrop presets and test them live in your Groovalizer music visualizer tab
Create and track AI music videos and audio-reactive visuals from songs.
Build 3D web apps: physics, audio, music, Blender import. Live edits, undo, versions, publishing.
Generate, edit and stream royalty-free music, or search a licensed catalogue.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP Server for ShaderToy, a site where people share GLSL shader. This MCP server allows LLMs to make complex shader they aren't normally capable of.50MIT
- FlicenseNot gradedqualityAmaintenanceopen-source modular daw and audiovisual engine for ai agents. synthesize per-sample audio, generate procedural 3d geometry, and render 60fps video over 9 mcp tools.309-
- AlicenseCqualityCmaintenanceMCP server for creating and manipulating generative art with p5.js, Three.js, GLSL, Canvas2D, and SVG, featuring workspace management, parameter control, and screenshot capture.312294 npmMIT

OpenScreenofficial
AlicenseAqualityAmaintenanceOpen-source screen recorder and video editor that coding agents drive over stdio: record, edit, export demo videos and add shader effects.557 npm5,627MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.