An integrated agentic AI platform and application hub with autonomous agents, code IDE, audio editor, and multi-provider LLM support
Aethvion Suite exhibits significant definition quality gaps across multiple dimensions. Tool schemas are partially visible but incomplete, descriptions vary widely in quality (some under 20 chars, many vague), and critical parameter definitions are missing or underdocumented. 9 tools (pm_context, pm_find, pm_impact, pm_orphans, pm_path, get_status, get_session, mix_preview, mix_export) expose empty input schemas ({}), violating schema documentation requirements. Parameter descriptions often lack actionable constraints (format, range, enum values). No visible error handling guidance or recovery paths. Naming is generally verb-driven (good baseline), but several tools lack clarity, e.g., 'bridge' is vague (what does bridge do?), and pm_* tools are undifferentiated from a discovery perspective. Tool composition shows some strength (e.g., read_file/write_file/list_files are well-separated), but response structures are undocumented, making chaining assumptions risky. Overall definition quality places this in the C/D range (fair to poor), typical of community servers lacking production-grade documentation.
Add an audio effect to a track
Execute a command through a bridge module with module and command specification
Fetch a URL with smart HTML extraction using trafilatura or html.parser
Get the current audio session data
Get the status of the audio server and track count
List files and directories in a workspace directory
Export the mixed audio in specified format (wav, mp3, ogg)
Nine tools (pm_context, pm_find, pm_impact, pm_orphans, pm_path, get_status, get_session, mix_preview, mix_export) expose empty input schemas ({}), providing zero parameter documentation. Per hard scoring rule, schema score MUST be 0 for these tools. This violates pattern:tool and pattern:tool-description, leaving LLMs unable to determine what inputs are required or valid.
Tool 'bridge' has a vague name and minimal description ('Execute a command through a bridge module...'). The name does not convey what 'bridge' means, it could mean network bridging, module forwarding, API bridging, etc. LLMs cannot infer when to use this tool or what it actually does. Description should explain: What module? What command types? What are common use cases?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Get a preview of the mixed audio as WAV format
Update an audio effect on a track
Update track properties (name, muted status, start time)
Get context from Project Mapper knowledge graph for a code location
Find entities in the Project Mapper knowledge graph
Analyze impact of changes using Project Mapper
Find orphaned code using Project Mapper
Find paths between entities using Project Mapper
Read a file from the workspace with permission validation and size limits
Remove an audio effect from a track
Remove a track from the session by ID
Reorder effects on a track
Reorder tracks in the session
Search for files containing a query string within a workspace path
Search the web using DuckDuckGo
Set the workspace duration in milliseconds
Get a preview of a track rendered as WAV
Upload an audio track to the session
Write content to a file in the workspace with permission validation
Five Project Mapper tools (pm_context, pm_find, pm_impact, pm_orphans, pm_path) have identical or near-identical descriptions ('...using Project Mapper') with empty input schemas. These tools are undifferentiated from an LLM perspective, the agent cannot reason about which tool to use for which task. Each needs a distinct, actionable description explaining its specific purpose and when to call it instead of the others.
Many parameter descriptions lack actionable constraints. E.g., 'format' in mix_export says 'Export format: wav, mp3, or ogg' in the description but this is not formalized as an enum in the schema. 'workspace_ms' in set_workspace lacks range bounds (min/max). LLMs cannot validate inputs without explicit constraint declarations. Parameters should declare enums, min/max, regex patterns, and length limits in the schema, not just prose.
No visible error handling guidance or recovery paths in any tool definition. If read_file fails (permission denied, file not found, size exceeds limit), there is no description of error categories (retryable vs. user-fixable vs. fatal) or suggested recovery actions. E.g., 'Path outside workspace, verify the path and check workspace permissions' would help agents self-correct.
Output schemas are not documented. For example, read_file presumably returns a file_content string, but response structure is not stated, does it include file size, encoding, line count? write_file's return value is unknown, does it confirm bytes written? upload_track's return likely includes a track_id, but this is not explicit in the definition. Undocumented output structures prevent agents from chaining tools and break composition patterns.
Audio tools (upload_track, patch_track, add_effect, patch_effect, reorder_effects) describe parameters with optional flags (e.g., '(optional)' in plain text), but the schema does not indicate required vs. optional fields. JSON Schema should use 'required' array to make this machine-readable. Currently, an LLM must parse English prose to determine if a parameter is required.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible in definitions. Tools like remove_track, remove_effect, write_file, and mix_export are destructive but not marked as such. Missing annotations prevent agents from reasoning about safety and retry logic. Current MCP spec (2026-07-28) encourages tool annotations for safety classification.
Parameter descriptions for audio tools reference IDs (track_id, effect_id) but do not explain format or how to obtain them. E.g., 'Track ID to update', is this a UUID, an integer, a string? Where does the LLM get a track_id? Is it returned by upload_track? Is it from get_session? Current descriptions assume agents already have IDs, creating a discovery gap.