Skip to main content
Glama

Server Details

Music visualiser (visualizer): write live GLSL music visualisations, shared as links that play.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
sydlawrencedev/vibresia
GitHub Stars
0
Server Listing
Vibresia
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
create_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.

NameRequiredDescriptionDefault
codeYesThe 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.
nameYesWhat to call it. A few words that say what the picture looks like.
authorNoWho to credit it to. Leave it empty and it is credited to Minith Labs.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 appA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 palettesA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
nameNoWhich palette — NEON, EMBER, TOXIC, ABYSS or MONO. Leave it out to get all of them.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 codeA
Read-only
Inspect

Use this to read somebody's vibescape, so it can be adapted or understood. Needs the id — the last part of the link.

NameRequiredDescriptionDefault
idYesThe share's id — the last part of the link.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 vibescapeA
Read-only
Inspect

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.

NameRequiredDescriptionDefault
codeYesThe vibescape's GLSL.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 vibescapesA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

share_vibescapeShare a vibescapeAInspect

Use this when a vibescape should be listed in the public gallery, where anybody can find it at vibresia.com/vibescapes. A vibescape is created unlisted; this is the separate act of putting it in front of people. The name and the author go with it, so make sure they are right before calling this.

NameRequiredDescriptionDefault
idYesThe share's id — the last part of the link, six characters. It is what `create_vibescape` returns.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare a non-read-only, open-world mutation with destructiveHint=false. The description adds useful behavioral context: the item becomes publicly discoverable, the name and author are exposed with it, and the caller should verify those fields before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences and front-loads the usage condition. Every sentence adds useful context: when to use it, how it differs from creation, and what data becomes public.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter mutation with annotations covering safety and openness, the description provides enough context to call it correctly. It could be slightly more complete by mentioning what happens if the vibescape is already public or how sharing can be undone, but those are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and schema description coverage is 100%, so the schema already explains that id is the share's six-character identifier returned by create_vibescape. The description does not add further parameter-level semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action on a specific resource: listing a vibescape in the public gallery at vibresia.com/vibescapes. It also distinguishes this from creation by explaining that a vibescape is created unlisted and sharing is the separate act of publicizing it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear trigger: use this when the vibescape should be publicly listed. It also clarifies the boundary with create_vibescape by noting creation is unlisted, but it does not explicitly name alternatives or describe when not to use it beyond that implied boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vibescape_referenceThe vibescape referenceA
Read-only
Inspect

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 8 tool updates
    • First observedcreate_vibescape
    • First observedget_app
    • First observedget_palette
    • First observedget_vibescape
    • First observedlint_vibescape
    • First observedlist_vibescapes
    • First observedshare_vibescape
    • First observedvibescape_reference

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.