Skip to main content
Glama

inspect_synthesizer_api

Resolve a public Synthesizer object by dotted name to retrieve its signature, docstring, source location, and version. Inspect installed Synthesizer APIs without calling or executing the object.

Instructions

Look up a public Synthesizer object by dotted name.

Resolves a name such as synthesizer.grid.Grid in the installed Synthesizer and reports its signature, docstring, source location and the installed version. The object is never called and never repr'd, and source bodies are never returned, only locations.

Side effects: this imports Synthesizer. The first call in a process takes roughly 1.7-2.0 seconds and runs synth_initialise(), which creates the Synthesizer base, data, grids, instrument_cache and svo_filter_cache directories and writes or merges default_units.yml under the user's data directory. It is idempotent and silent when those already exist. Later calls reuse the cached import.

Names are restricted: at most 200 characters and 8 dot-separated segments, every segment a plain identifier that is neither a Python keyword nor prefixed with an underscore, and the first segment exactly synthesizer. The installed package is located before it is imported, so a synthesizer.py shadowing it on sys.path is refused rather than executed. Traversal reads attributes statically, so anything created lazily by a module __getattr__ or by a property is invisible to this tool.

Args: dotted_name: Public dotted path rooted at synthesizer.

Returns: On success a mapping with dotted_name, module (the module prefix that was imported), object_type, defining_module, qualname, signature, doc (an untrusted-content envelope, or None), source as path:lineno, version and version_source. Any extraction that fails degrades to None. On rejection or import failure, a mapping with an error key, plus import_error when an import raised.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dotted_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Install Server

TDQS

A4.7/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

Other Tools

Latest Blog Posts

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