synthia-mcp
OfficialServer Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Every tool targets a distinct resource or action: environment, API objects, local grids, documentation, examples, scripts, and three clearly different grid plot types. Even the three plotting tools are unambiguous because their descriptions state which quantity they render: ionising luminosity, spectra, or lines.
Naming Consistency5/5Tool names consistently follow a descriptive verb_noun pattern, with clear families such as inspect_*, list_*, and plot_grid_*. There is no mixing of naming styles or vague generic verbs.
Tool Count5/5Ten tools is a well-scoped set for an assistant focused on inspecting a Synthesizer installation and local grids, locating documentation and examples, plotting diagnostics, and validating scripts. Each tool has a distinct job and none feel redundant.
Completeness4/5The surface covers the main workflow: environment and API discovery, documentation and examples, grid listing and metadata inspection, visual diagnostics, and script validation. Minor numeric-data gaps may exist, but the server appears intentionally designed around static inspection and plotting rather than execution or raw data extraction.
Average 4.6/5 across 10 of 10 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 37 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under GPL 3.0.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals side effects by mentioning a 'written path', describes defaults for point and line_ids, states the forty-line cap, and describes success/error return shapes. This is useful and goes well beyond a bare 'plot' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured. The first sentence states the core behavior, and each Args/Returns line adds necessary operational detail without unnecessary prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool, the description covers parameters, defaults, output contract, and error behavior. An output schema exists, so the return shape need not be fully re-explained. Minor gaps remain around prerequisite conditions, such as whether the grid must already be loaded, but overall the tool is adequately specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining all three parameters. It clarifies grid_name suffix handling, point axis/units/default, and line_ids format with an example plus the forty-line cap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Plot the emission lines a local grid holds at one grid point.' This clearly distinguishes the tool from siblings like plot_grid_spectra and plot_grid_ionising_luminosity, which target different visualizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use the tool: whenever emission lines from a single grid point are needed. However, it does not explicitly state when to prefer this over alternatives, such as plot_grid_spectra, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral burden. It thoroughly describes the return contract: available_examples, other_candidates, the None case, the untrusted-content envelope, the 32 KiB cap, the checkout_example excerpt behavior, notes, and error presence. This is exemplary for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence earns its place: the purpose is front-loaded, followed by clearly separated Args and Returns sections. The return details are dense but structured in a way that is easy to scan, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no annotations, this is nearly complete: it explains the input and the full output structure. The only gap is practical deployment context—what 'bundled examples' and 'Synthesizer source checkout' refer to in the surrounding environment—which may be known system-wide. An existing output schema would cover return types, but the description goes beyond that anyway.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero coverage for the sole parameter, so the description must compensate. 'task: Short description of what the user wants to do' adds meaning by clarifying the parameter is a free-text request, not a structured identifier. It is terse but adequate for a single string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Find the closest canonical example for a task,' which clearly states a specific verb and resource. This is immediately distinguishable from the sibling tools, which focus on plotting, environment inspection, and documentation search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the first line: use this when you need a canonical example for a task. However, there is no explicit when-to-use vs. alternatives, no mention of the sibling search_documentation tool, and no exclusions or conditions that would route an agent to a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: the script is parsed, never run, checks run least invasive first, and the exact return structure is specified including the constant 'script_was_run' of False, conditions for optional keys like 'grids' and 'error', and limits like diagnostics capped at 100. This is extensive transparency beyond any structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but well-structured, starting with the core purpose, then behavior and returns. The 'Args' and 'Returns' sections are clearly segmented and each sentence conveys necessary information about the complex return payload. It is not excessively verbose for the complexity, though it could be tightened slightly, earning a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a static validation tool with one parameter and a rich output schema, the description covers all essential aspects: what it checks, what it never does, the order of checks, the complete return mapping with conditional fields, and even notes on skipped checks. An agent has everything needed to invoke it correctly and interpret results, making it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter meaning. It provides 'source: Python source text' which exactly defines the single required parameter. While minimal, it is sufficient and unambiguous. Given the low schema coverage, this adequately compensates, though it could add more detail (e.g., encoding), so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Statically validate a Synthesizer script' with a specific verb and resource, and clarifies it is 'never run.' It lists the checks performed (syntax, import availability, references, grids), distinguishing it from sibling tools that plot, inspect environments, or search documentation. This is a clear, non-tautological purpose that an agent can act on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does and that it is static (never runs), but does not explicitly state when to use it instead of alternatives. It does not mention sibling tools or conditions under which validation is preferred over running the script. The behavior implies use for pre-run checks, but no direct guidance on alternatives is given, so it earns a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool writes a file (via 'written path') and returns a mapping with ok/error, so the main side effect and possible failure are clear. It does not explicitly state whether it modifies the grid, but the nature of plotting implies non-destructive behavior, which is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then adds the diagnostic context, followed by parameter and return details. Every sentence serves a purpose; there is no fluff or repetition. It is well-structured and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, parameters, return format, and error state. An output schema exists, but the description still explains the return mapping clearly, making the tool fully callable without further investigation. For a two-parameter plotting tool, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so well: it explains grid_name as a grid name with or without a file suffix, and ion as either HI or HeII, effectively documenting both parameters with meaningful contexts beyond the raw type. No information is left to guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (plot) on a specific resource (grid's specific ionising luminosity) and explains its diagnostic role. It clearly distinguishes from siblings like plot_grid_spectra and plot_grid_lines by naming the exact quantity plotted, so an agent can differentiate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'This is the standard diagnostic for whether a grid covers the ionising output a study needs,' giving clear guidance on when to use it. It does not explicitly mention alternatives or exclusions, but the context makes it obvious that for spectra or lines you would use the sibling tools, so it is still useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and excels: it reveals side effects (imports Synthesizer, ~1.7-2.0s first call, runs synth_initialise, creates directories and writes default_units.yml), states idempotency, discloses the sys.path shadowing refusal as a security behavior, and notes the object is never called or repr'd and source bodies are never returned. This is exemplary behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense with every section earning its place: purpose, resolution semantics, side effects, security, restrictions, args, and returns. It is well structured with clear paragraph breaks. Slight redundancy exists in that the Returns section partly overlaps what the output schema likely already documents, so it could be trimmed, but the prose adds field-level semantics that justify its presence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single fully documented parameter and the presence of an output schema, the description is essentially complete for an agent to call this tool correctly. It covers side effects, performance cost, security refusal, naming restrictions, static-traversal limits, and the full success/error return shapes. Nothing needed for correct invocation is missing, especially notable given zero annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully compensate, and it does. The dotted_name parameter is documented in depth: it must be a public dotted path rooted at 'synthesizer', with explicit length, segment-count, keyword, and underscore restrictions. The Returns section also explains the full output mapping and the degrade-to-None/error behavior, far exceeding what the bare schema alone would provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair ('Look up a public Synthesizer object by dotted name') and enumerates exactly what the tool reports: signature, docstring, source location, and installed version. This distinguishes it cleanly from introspection siblings like inspect_environment, inspect_local_grid, and list_local_grids, all of which target different subjects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong operational constraints (200-char/8-segment limit, plain identifiers, no underscore prefixes, first segment must be exactly 'synthesizer') that effectively tell the agent which lookups will be rejected. It also clarifies that lazily created attributes are invisible, guiding expectations. It stops short of naming sibling alternatives or stating explicit when-not-to-use conditions, but the tool's purpose is so distinct that the implicit guidance is nearly complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden and does so thoroughly. It discloses that importing Synthesizer takes seconds and creates data directories as a side effect, that files are not opened, and that results exclude symlinks, are sorted, and may be truncated. These details go well beyond a basic list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence purpose, then provides exactly the behavioral details that matter: no opening, import side effects, and result shape. The Returns section is structured and informative without being padded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a no-parameter list tool. It covers success and failure modes, package-missing hints, directory-missing behavior, truncation, symlink exclusion, and sorting. An agent has enough context to invoke the tool and interpret its results without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no schema burden for the description to compensate for. Per the baseline for 0-parameter tools, this is adequately handled; the description correctly frames the operation as an unconditional listing with no required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List the Synthesizer grid files available on this machine.' It also distinguishes itself from the sibling inspect-like tools by explicitly saying it reports files 'without opening any of them', making its scope clear for an agent choosing a grid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: 'so an agent can pick a grid before paying to inspect it.' This clearly situates the tool as a precursor to inspection tools like inspect_local_grid, though it does not explicitly name the alternative or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and fully discloses behavior: plain substring/token matching, the exact result mapping, corpora coverage/unavailability, the untrusted-content envelope for snippets, truncation, notes, and error-only-on-failure. This is unusually transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence purpose and then structured into Args and Returns. It is dense and mostly efficient, but the lengthy return listing and a minor typo ('cap bit') keep it from a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter search tool, the description covers input semantics, output shape, hit entry fields, truncation, notes, errors, and corpus availability. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates fully by defining query as words to look for and specifying plain substring/token matching, not a query language. This adds exactly the semantic meaning an agent needs beyond the bare string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence uses a specific verb ('Search') and names the two corpora ('bundled skill tree', 'Synthesizer checkout docs'), clearly distinguishing this from example-finding or grid-inspection siblings. It does not merely restate the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains the tool's scope and availability: the bundled skill tree is always searched, while Synthesizer docs are only searched when a checkout exists and never instead of the bundled tree. It does not explicitly name an alternative tool, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses read-only metadata behavior, that dataset values are never read except line identifiers, that links are never followed, that importing Synthizer has a directory-creation side effect, and that content is untrusted. It also details both success and failure return variants.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured into a one-sentence summary, argument explanation, and detailed returns section. Every part earns its place, and the key safety and side-effect facts are front-loaded near the top.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the input format and constraints, operational side effects, security posture, success and failure shapes, and the independence of axes/structure sections. Given no annotations and minimal schema, this is exceptionally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully define grid_name. It does: the parameter is a local grid name, accepts an optional .hdf5 suffix, must not escape the grid directory, and must not be a symbolic link. This is substantive semantic content beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Describe a local Synthesizer grid: axes, model, and contents.' It further distinguishes itself from plotting/listing siblings by explicitly stating it loads metadata only, no spectra or lines, and lists groups and datasets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is for learning what a grid contains 'before loading anything.' It implies the use case and contrasts with alternatives by stating it does not read spectra or lines, but it does not explicitly name sibling tools or give when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so well. It discloses that loading reads full arrays (performance cost), that importing Synthesizer creates data directories on first use, and explains default behaviors such as capping spectra types at six and defaulting the wavelength range to the interesting luminosity range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then adds a performance/side-effect note, then systematically documents each parameter and return value. It is longer than average, but every sentence contributes necessary information for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a plotting tool with four parameters and no annotations, the description is complete: it covers all arguments, defaults, units, side effects, and failure behavior. The return mapping is also described even though an output schema exists, giving the agent a clear picture of the tool's contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully explain parameters, and it does. Each argument gets meaningful semantics: grid_name suffix tolerance, spectra_types default and cap, point as axis-to-value mapping with units and an example, and wavelength_range as [low, high] with a sensible default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource: 'Plot a local grid's spectra at one grid point.' It distinguishes this from siblings like inspect_local_grid and plot_grid_lines by emphasizing rendering spectra at a single point, so an agent can tell what this tool does without opening the 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/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to see the shape of a grid's output without writing a script. It also names inspect_local_grid as a faster alternative, implying a tradeoff. It does not explicitly say 'do not use when X', but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and excels. It discloses no import side effects, explains the exact meaning and limitation of synthesizer_installed (spec lookup only, broken C extensions invisible), states import_error is always None, and explains that only set environment variables are reported to avoid importing. This is thorough and honest about tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds value: purpose, cost/safety, limitation of the installed check, and the exact return mapping with semantic notes. The structure front-loads the core purpose, then details nuances. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, clear output), the description fully documents all return keys, their meanings, and the reasoning behind values like import_error=None. The output schema exists and is enriched by this description. Nothing an agent needs to invoke correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per rules. The description doesn't need to explain parameters, and it doesn't waste space on them. The mention of environment variables is about output, not parameters, so it's appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Report Python and Synthesizer environment facts,' a clear verb-resource pair. It differentiates from the sibling inspect_synthesizer_api by explicitly stating it never imports Synthesizer, which tells the agent exactly what this tool does and doesn't do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly contrasts itself with inspect_synthesizer_api: 'Synthesizer is never imported here, so this is cheap and has no side effects' and 'only inspect_synthesizer_api, which does import, can populate it.' This gives the agent a clear when-to-use vs. when-not-to-use decision, fulfilling the guideline requirement beyond mere context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/synthesizer-project/synthia'
If you have feedback or need assistance with the MCP directory API, please join our Discord server