mcp-openems
Server Quality Checklist
Latest release: v0.2.0
- Disambiguation4/5
Each antenna and PCB creation tool targets a distinct geometry (patch, dipole, monopole, horn, helix, microstrip, coupled lines, via). Minor potential confusion exists between patch antenna and microstrip line, and between script generation and design export, but overall purposes are clear.
Naming Consistency5/5All tools share the 'openems_' prefix and follow a consistent verb_noun pattern (create_, list_, get_, generate_, export_, check_, optimize_, compare_). Naming is uniform and predictable, with no mixed conventions.
Tool Count4/5With 16 tools, the server is slightly above the ideal 3-15 range but still well-scoped. It covers antenna design, PCB analysis, design management, and utility functions without feeling bloated or redundant.
Completeness3/5The set covers design creation, listing, retrieval, export, optimization hints, and comparison. However, there are no update/delete tools for designs, and simulation execution (running OpenEMS) is not directly supported—only script generation is provided. These gaps prevent a full end-to-end workflow.
Average 3.6/5 across 16 of 16 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 6 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 AGPL 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
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the script is complete and can run independently, but it does not disclose whether the operation has side effects (e.g., writing files), what happens if the design_id is invalid, or the exact return format. This lack of behavioral context is a notable gap.
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 two sentences, front-loaded with the main purpose, and wastes no words. It conveys the essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with one parameter and no output schema, so the description is minimally adequate. It tells the agent a script will be generated and is independently runnable, but it does not explain how the script relates to the design or what the output contains, especially considering the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'design_id', which is clearly described as 'ID of the design to generate script for'. The tool description adds no additional meaning beyond the schema, 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.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a complete OpenEMS Python simulation script for a design, with the script being runnable independently. However, it does not differentiate from sibling tools such as openems_export_design or openems_get_design, which may also produce script-like or design-related outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or scenarios where this tool is preferred over sibling tools like openems_export_design or openems_compare_designs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read operation through 'Get' but does not explicitly state that it is non-destructive, nor does it mention any authentication requirements, rate limits, or side effects. The return behavior beyond 'full details' is left vague.
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 a single, concise sentence that front-loads the core purpose and key output specifics. There is no redundant or unnecessary wording, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter, the description adequately states the purpose and gives some indication of the returned content (dimensions and geometry). However, without an output schema, the phrase 'full details' is somewhat vague, and there is no mention of whether other design properties are included or how the response is structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single parameter design_id, with the description 'ID of the design'. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'a specific antenna design', with specifics 'dimensions and geometry'. It distinguishes from sibling tools like list_designs (which likely returns summaries) and export_design, though it doesn't explicitly name alternatives. Overall purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The presence of sibling tools is not leveraged to contextualize usage, leaving the agent to infer that this is for fetching a single design by ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'Design a half-wave dipole antenna.' It does not mention side effects, return values, or any safety/state implications, leaving the agent without essential context for a creation 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?
Two short sentences, front-loaded with the action. Every word contributes; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is too sparse. It fails to explain what the tool returns, how the design is generated, or how it compares to nearby sibling tools like monopole, despite having several related creation tools in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all three parameters (name, frequency_ghz, wire_radius_mm), so the baseline is 3. The description adds no additional parameter-specific semantics, such as how frequency or wire radius affect the antenna design.
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 clearly states the tool designs a half-wave dipole antenna, using a specific verb and resource. This distinguishes it from sibling tools like monopole, patch, and horn antennas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to choose a dipole over alternative antennas such as monopole or patch. The phrase 'classic resonant antenna' implies a general-purpose antenna but does not describe preferred use cases or trade-offs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The single sentence leaves several behavioral aspects undisclosed: does 'design' create a named design object? Are dimensions automatically calculated from frequency? What happens if 'name' is omitted? What is the effect on the existing design environment? These gaps are significant for a create-type 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 a single focused sentence with no filler. It uses precise terminology and gets straight to the point, making it easy to parse and quick to read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (simple parameter set) and high schema coverage, the description is minimally viable for an agent to understand the tool's core function. However, it lacks side-effect information (e.g., creating a design object) and output expectations (what the design looks like after creation). With no annotations and no output schema, the description could be more complete, but it is not severely deficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a clear description (e.g., 'Center frequency in GHz', 'Wire radius in mm'). The tool description adds no extra parameter-level meaning, such as how frequency relates to the quarter-wave length or constraints on ground plane size relative to wavelength. The baseline of 3 is appropriate because the schema handles parameter clarity.
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 clearly states the action ('Design') and the resource ('a quarter-wave monopole antenna over a ground plane'), which differentiates it from sibling tools like dipole, patch, or horn. The specificity of 'quarter-wave' and 'over a ground plane' leaves no ambiguity about the antenna type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus the many alternative antenna creation tools in the sibling list. There is no mention of scenarios (e.g., 'use for vertical polarization' or 'for a balanced antenna use dipole') or exclusions. The description only implies usage through the antenna type, which is not sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/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 only states the purpose and does not mention what the tool returns, whether it modifies a design library, or any side effects.
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 a single sentence, front-loaded with the main purpose, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should convey what happens when invoked. It lacks information about return values, side effects, or prerequisites, making it incomplete for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of parameter descriptions, so the description adds no extra parameter semantics. The mention of circular polarization is a design characteristic, not a parameter clarification.
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 clearly states the tool designs an axial-mode helical antenna for circular polarization, using a specific verb and resource. It differentiates from sibling create tools by specifying the antenna type and mode.
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 provides no explicit guidance on when to use this over alternatives. It implies the tool is for helical antenna design but does not mention contrasting with other antenna types or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It mentions the calculation method but does not state whether the tool creates a persistent design, returns dimensions, requires an OpenEMS installation, or has side effects. The word 'design' hints at creation, but the outcome and side effects remain unclear.
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?
Two sentences, front-loaded with the core purpose. Every sentence earns its place, and there is no filler or redundancy. The structure is efficient and immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should clarify what the tool returns or produces. It only says 'calculates dimensions' but not whether it saves a design, outputs a script, or generates numeric results. For a design tool with several inputs, this is incomplete and leaves the agent uncertain about the expected outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all parameters (100% coverage), so the baseline is 3. The description references 'frequency and substrate' which maps to frequency_ghz and substrate_er, but it does not add meaning beyond the schema for any parameter, including substrate_height_mm or name.
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 explicitly states the tool designs a 'rectangular microstrip patch antenna' and uses a specific method ('transmission line model'), clearly distinguishing it from dipole, monopole, horn, and other sibling antennas. The verb 'design' and target resource are specific and unambiguous.
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 implies use for patch antenna design at a given frequency and substrate, but it does not explicitly contrast with alternatives like openems_create_microstrip or mention conditions when not to use it. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions the type of output (parameter sensitivities and improvement strategies) but does not state whether the operation is read-only, whether it requires prior simulation, or any side effects or dependencies. This is a significant gap for an analysis 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 a single, concise sentence that communicates the tool's core purpose and output components without unnecessary words. It earns its place entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is reasonably complete for a simple one-parameter tool, but with no output schema and no annotations, it leaves out behavioral context such as whether the tool runs simulations, how to interpret the results, or any prerequisites. It covers the basics but does not fully equip the agent to use the tool successfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter 'design_id' with a clear description. The tool description adds minimal extra meaning, just repeating 'antenna design' without explaining how the design ID is used or what constitutes a valid ID. Baseline 3 is appropriate because the schema does the heavy lifting.
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 clearly states the tool's function: getting optimization suggestions for an antenna design. It specifies the resource (antenna design) and the type of output (parameter sensitivities and improvement strategies). This distinguishes it from sibling tools which are primarily creation, retrieval, or comparison tools.
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 implies usage when optimization suggestions are needed for an antenna design, but it does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or prerequisites. The intended context is inferable but not clearly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'check' implies a non-destructive read-only operation, the description does not specify what the tool returns (e.g., boolean, status message), whether it executes an external command, or what 'available' precisely means. This leaves the agent uncertain about the tool's behavior and output.
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 a single concise sentence that states the core purpose without any redundancy or extraneous information. It is perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers the basic purpose but omits crucial context about what the agent should expect when the check runs. Without knowing the return value or how to interpret the result, the description is not fully complete for guiding the agent's next actions.
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 are no parameter semantics to explain. The description does not need to compensate for schema gaps, and no additional parameter information is required.
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 'Check' and identifies the resource 'OpenEMS' with a clear purpose 'available for running simulations'. It distinctly differs from sibling tools that involve creating, listing, or exporting designs, making its role unambiguous.
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 phrase 'available for running simulations' implies this should be used before running simulations, but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions. Usage is understood from context rather than stated directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It mentions export formats and their meaning (e.g., json as full data, svg as vector graphic), which gives some behavioral context. However, it does not clarify whether the operation is read-only, whether it modifies state, or how errors (e.g., missing design) are handled.
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 two compact sentences that front-load the purpose and then succinctly list formats with brief clarifications. Every word adds value, with no filler or redundancy.
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?
The tool is simple with two parameters and no output schema. The description adequately covers purpose and format semantics, but it leaves out details about the return structure (e.g., whether json is returned as a string or object) and error behavior. Still, given the low complexity, it is nearly 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 coverage is 100% for both parameters, so the baseline is 3. The description adds meaning beyond the schema by defining what each format represents (full data, vector graphic, terminal art), which helps select the correct format value. The design_id parameter is already clear from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb ('Export'), resource ('antenna design'), and purpose ('for visualization'). It enumerates the output formats (json, svg, ascii), which helps distinguish it from sibling tools like get_design, but it does not explicitly differentiate from alternatives that might also retrieve design data.
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 implies usage contexts through the stated formats and purpose, but it provides no explicit guidance on when to use this tool versus siblings such as get_design or list_designs. There are no exclusions or alternative tool mentions, 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.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds a useful behavioral detail by stating it calculates aperture dimensions and length, but it does not disclose whether the design is saved, returned, or what side effects occur. This is minimal but not completely opaque.
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 two concise sentences, front-loaded with the primary purpose, and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema or annotations, yet the description does not state what the tool returns or whether it saves a design. This leaves the agent uncertain about how to handle the result, especially since sibling tools like get_design and export_design imply a stored design workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description links gain to dimension calculation, adding some context, but it does not elaborate on the name parameter or parameter trade-offs beyond what the schema already provides.
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 clearly states the tool designs a pyramidal horn antenna for a specified gain and calculates aperture dimensions and length. This specific verb-noun pair distinguishes it from sibling antenna creation tools like patch, dipole, and helix.
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 usage: when you need a pyramidal horn antenna with a specific gain. However, it does not explicitly mention alternatives or when not to use this tool, though the clear purpose provides adequate contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds meaningful behavioral context by naming the Hammerstad formula and stating that it generates 2-port geometry for S-parameter extraction. However, it does not disclose other relevant behaviors like whether it validates inputs, requires additional setup, or how it interacts with existing designs.
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 two concise sentences, front-loaded with the primary action and immediately adding the calculation method and purpose. No word is wasted, and the structure is clear and efficient.
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?
Given the schema covers all parameters and there is no output schema, the description adequately explains the tool's purpose and what it produces (impedance, 2-port geometry). It provides enough context for an agent to understand the tool's role within the OpenEMS family, though it could have elaborated on the generated geometry's role in the broader simulation workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters and their units. The description does not add additional parameter semantics beyond the general context of a microstrip design, which meets the baseline but does not exceed it.
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 clearly states the tool's function: designing a microstrip trace, calculating characteristic impedance via the Hammerstad formula, and generating 2-port geometry for S-parameter extraction. It uses a specific verb-resource pair ('Design a microstrip trace') and distinguishes well from sibling tools like openems_create_patch or openems_create_coupled_lines.
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 implies usage for microstrip trace design and impedance calculation, but it does not explicitly mention when to use this tool versus alternatives such as openems_create_coupled_lines or openems_create_via. There is no exclusion or comparison to other similar transmission-line tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It clearly states the tool lists antenna types with specific attributes, implying a read-only operation. However, it does not explicitly state the return format, sorting, or any side effects. Given the simplicity of the operation, this provides reasonable transparency but leaves some gaps.
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 a single, concise sentence that directly states what the tool does and the content of the output. Every word contributes to understanding, with no redundancy or extraneous information. It is excellently front-loaded.
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?
Given the tool's simplicity (no parameters, no output schema), the description adequately covers the key information: what is listed and the types of attributes included. However, it lacks explicit mention of the response format or whether any filtering is possible. The context from siblings helps, but the description alone is mostly 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?
The tool has zero parameters, and the description appropriately does not attempt to describe nonexistent parameters. The schema is empty and fully covered, so no additional parameter information is needed. The baseline of 4 for zero-parameter tools applies.
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 ('List') and resource ('available antenna types'), and clearly states the output contents ('descriptions, typical gain, and applications'). This clearly distinguishes it from sibling tools that create specific antenna types, and from openems_list_designs which lists designs rather than antenna types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios where a user should or should not use this tool, nor any reference to sibling tools like the creation tools. The usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses that the output includes metrics and recommendations, but it does not explicitly state that the operation is read-only or that design IDs must already exist. This gives some behavioral context but leaves gaps.
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 a single, front-loaded sentence with no filler or repetition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, no annotations, and no output schema, the description gives a general sense of what it does but does not explain return value details or prerequisites like where to obtain design IDs. It is adequate but lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter design_ids is fully described in the schema as 'List of design IDs to compare.' The description adds no extra syntax, relationship guidance, or prerequisite info beyond the schema, so the baseline of 3 applies.
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 'Compare' with resource 'multiple antenna designs' and clarifies the outcome 'with metrics and recommendations.' This clearly distinguishes it from sibling tools like get_design (single design) and list_designs (list all).
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 implies the tool is for comparing multiple designs, providing context for when to use it over single-design tools. However, it does not explicitly name alternatives or state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses calculation outputs (even/odd, differential/common-mode, coupling) which is useful behavioral context. But it does not mention operational details such as whether the tool writes to disk, requires OpenEMS installation, or returns a model vs a result set. There is no contradiction with annotations (since none exist), but the behavioral disclosure is incomplete.
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?
Two sentences, zero fluff. The first sentence says what it does, the second describes calculations and use case. Every word earns its place.
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?
The description is reasonably complete for a design tool: it explains the geometry type, the computed quantities, and the application (NEXT/FEXT). There is no output schema, but the description compensates by naming key outputs. It stops short of specifying whether the tool returns values directly or generates a script, which would add further completeness, but for tool selection it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented in the schema. The description adds global context about outputs (e.g., 'calculates coupling coefficient') but does not provide per-parameter semantic enhancements beyond the schema. Baseline of 3 for high schema coverage 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 opens with 'Design edge-coupled microstrip lines,' a specific verb+resource combination that clearly distinguishes the tool from siblings like create_microstrip (single line) and antenna creation tools. It also lists concrete calculation outputs (even/odd mode impedances, differential/common-mode impedances, coupling coefficient) that leave no ambiguity about its function.
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?
Mentions '4-port geometry for NEXT/FEXT analysis,' providing clear context for when this tool is appropriate (crosstalk analysis). However, it does not explicitly name alternatives or state when not to use it, though the sibling tool list implies alternatives like single-line microstrip design.
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 provided, the description carries the full burden of behavioral disclosure. It reveals that the tool models physical structures, estimates electrical parasitics, and sets up a 2-port geometry. This goes beyond the tool name and schema, informing the agent about the tool's modeling and analytical nature, which is valuable. It does not mention side effects or environment dependencies, but nothing contradicts the tool's purpose.
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?
Three sentences, each contributing unique information: purpose, modeled elements, and analysis type. No redundant phrasing, front-loaded with the primary verb and object. Ideal length for the tool's complexity.
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?
The tool has 6 parameters, 4 required, all documented. The description explains the physical and electrical purpose, which is sufficient for an agent to decide to use it. It lacks explicit statement of output format (e.g., S-parameters), but given the absence of an output schema and the simplicity of a via design, the description covers the essentials effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific details beyond the schema, but it does provide context that reinforces the meaning of parameters like dielectric_height_mm and frequency_ghz. It neither enhances nor detracts from the schema's already complete parameter documentation.
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 verb 'Design' and a specific resource 'via transition between two PCB layers', clearly distinguishing it from sibling tools like antennas or microstrip. It further elaborates with modeling details (barrel, pads, feed traces) and analysis purpose (parasitic inductance/capacitance, 2-port reflection/transmission), leaving no ambiguity about what the tool does.
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 the primary use case: designing a via for inter-layer PCB transitions and analyzing its parasitic/transmission characteristics. It does not explicitly mention alternatives or exclusion criteria, but the context is clear enough that an agent can infer when to select this tool over antenna or microstrip tools. No explicit when-not guidance, hence not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It conveys a read-only session-scoped operation via 'List all ... created in this session.' However, it does not disclose the return format, ordering, or behavior for an empty session, leaving some behavioral ambiguity.
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 a single, front-loaded sentence with no redundancy. Every word serves a purpose, making it appropriately concise.
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 zero-parameter list tool with no output schema, the description covers the core action and scope well. It could mention what is returned (e.g., design names or IDs), but the essential context is present.
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, and schema coverage is 100% by default. Per the rubric, zero-parameter tools receive a baseline of 4; the description adds no parameter details because none are needed.
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 verb ('List'), resource ('antenna designs'), and scope ('created in this session'). This clearly distinguishes it from sibling tools like openems_list_antenna_types (lists types) and openems_get_design (retrieves a specific design).
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 provides clear context for use: to enumerate designs created in the session. It does not explicitly mention alternatives or exclusions, but for a simple list tool, the context is sufficient to guide an agent.
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/RFingAdam/mcp-openems'
If you have feedback or need assistance with the MCP directory API, please join our Discord server