Skip to main content
Glama

Server Details

Electrical single-line and multi-line diagrams: build, check (NF C 15-100, IEC 60364), draw, PDF.

Ownership verified
Status
Healthy
Uptime
99.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
uniwire-dev/uniwire
GitHub Stars
5
Server Listing
uniwire

TDQS

A4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools are cleanly separated by action and output: editing, validation, rule checking, rendering, BOM, wiring, and metadata lookup. The only plausible confusion points are validate vs. check and describe vs. normalize, but the descriptions explicitly clarify these boundaries.

Naming Consistency3/5

All names use snake_case, which keeps them readable, but the set mixes verb-only names (check, render, validate), verb_noun names (apply_patch, get_example), and noun phrases (bom, type_info, viewer_link, wiring). The conventions are understandable but not predictable as a single pattern.

Tool Count5/5

Fourteen tools are appropriate for a complex electrical-diagram document format with authoring, validation, rule checking, rendering, and export needs. Each tool appears to cover a distinct workflow stage without obvious filler.

Completeness5/5

The surface covers the full lifecycle: discovering types and examples, reading and normalizing documents, editing, validating, checking rules, rendering diagrams, producing BOM and wiring exports, and sharing view links. No major operational gaps are apparent for the stated domain.

Available Tools

14 tools
apply_patchEdit an electrical diagramA
Idempotent
Inspect

Edit an electrical diagram by node id (change a rating, add a circuit, move a load...) and return the new document. ops (applied in order): {"op":"set","id":ID,"path":"in_A","value":20} (null value removes; no id = document root, e.g. path "installation.earthing"); {"op":"add","parent":ID,"node":{...},"index":0} (or "at":"sources"); {"op":"remove","id":ID}; {"op":"move","id":ID,"parent":ID,"index":0}; {"op":"rename","id":ID,"new_id":NEW}; {"op":"link","link":{"kind":"control","from":ID,"to":ID}}; {"op":"unlink","id":LINK_ID} or {"op":"unlink","from":ID,"to":ID,"kind":K}. On failure returns ok=false and errors naming the failing op index (null = validation of the result).

NameRequiredDescriptionDefault
opsYesThe edit operations, applied in order (list, or its JSON text): see the description for the operation forms.
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).
validateNoValidate the resulting document (default true).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false; the description goes beyond them by disclosing op ordering semantics, null-means-remove, and the failure contract (ok=false with errors naming the failing op index, null meaning result validation). It does not state atomicity — whether one bad op aborts the whole batch — or any size limits, which keeps it below a 5.

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

Conciseness4/5

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

Front-loaded purpose sentence followed by a compact, scannable catalogue of op forms; nearly every clause carries information. Some shorthand ('or "at":"sources"', 'path "installation.earthing"') is left unexplained, making the payload dense rather than wasteful.

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

Completeness4/5

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

Return values are covered by an output schema and the description still names the success payload and error shape, so the failure contract is complete. What is missing is how an agent obtains valid node ids and how edits relate to validation/normalization siblings, which matters for a mutation tool with a free-form ops payload.

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 100%, but the 'ops' parameter is an untyped anyOf array/string whose schema explicitly defers to the description, so the description is the only source of the operation grammar (set/add/remove/move/rename/link/unlink with their key shapes). That is genuine meaning added beyond the schema, not repetition of it.

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

Purpose5/5

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

States a specific verb, resource, and editing medium ('Edit an electrical diagram by node id') with concrete examples of the edit kinds (change a rating, add a circuit, move a load) and names the return value (the new document). An agent can separate this from siblings like validate, normalize, or render purely from the description.

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

Usage Guidelines3/5

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

Usage is only implied: the tool is for editing an existing document via ops, and the validate flag hints at a check step, but the description never says when to prefer it over normalize, validate, or a full re-authoring flow, nor when NOT to use it. No prerequisites (where node ids come from) are given, so the agent must infer the workflow.

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

bomBill of materialsA
Read-onlyIdempotent
Inspect

Compute the bill of materials (nomenclature) of an electrical installation from its document: one row per manufacturer / part number for the nodes with a product reference, then one row per kind of equipment without a reference (type and main characteristics in 'spec', e.g. 'C16 1P+N') and per kind of cable (total length in 'length_m'), with quantities and the reference designations involved. Use it to prepare a quote or an order; wiring gives the wire list and cable schedule.

NameRequiredDescriptionDefault
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: what each output row represents and the special 'spec'/'length_m' fields, which is what an agent needs to interpret results. It does not mention performance or limits, but for a pure computation that is minor.

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

Conciseness4/5

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

Front-loaded with the verb and resource, then the output composition, then the routing sentence. The enumeration of row types is dense but each element carries information an agent needs; no filler sentences. Slightly long, but appropriately sized for the detail conveyed.

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

Completeness4/5

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

With an output schema present, the description need not restate the full return contract, and it still explains the semantic meaning of the rows (manufacturer/part number, spec, length_m). Parameter, annotation, and output coverage are all adequate; only edge cases like malformed documents are unaddressed.

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

Parameters3/5

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

Schema coverage is 100% and the 'document' parameter is fully documented in the schema (JSON object or JSON text, as returned by get_example/apply_patch/normalize, file path accepted locally). The description only says 'from its document' and adds no syntax or format detail 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/5

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

States a specific verb and resource ('Compute the bill of materials ... of an electrical installation from its document') and describes the exact output shape in domain terms (one row per manufacturer/part number, spec, length_m). It also contrasts itself with the sibling 'wiring', so the agent can distinguish the two 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/5

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

Explicitly states the use case ('Use it to prepare a quote or an order') and names the alternative sibling ('wiring gives the wire list and cable schedule'), which tells the agent which tool produces what. It lacks an explicit when-not condition or prerequisites, but the routing guidance is clear.

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

checkCheck an electrical installation (NF C 15-100, IEC 60364)A
Idempotent
Inspect

Check an electrical installation (single-line diagram, panel, schéma unifilaire, tableau électrique): validates the document, then applies the rule profiles (NF C 15-100 'nfc15100', French grid connection 'enedis', IEC 60364 'iec60364', PLC; default: the document's 'profiles'; 'core' always applies): breaker ratings against cable sections, RCDs, circuits per protection, selectivity... Returns findings (level error/warning/info, rule, node id, message, source), a summary, 'scope' (what the checks cover and do not cover: automatic checks of the document data, not a conformity certificate), viewer_url (the document in the uniwire web editor: drawing, findings, downloads) and pdf_url (the PDF drawn by uniwire).

NameRequiredDescriptionDefault
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).
profilesNoRule profiles to apply, e.g. ['nfc15100', 'enedis'] (France) or ['iec60364']; default: the 'profiles' of the document. 'core' always applies.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and idempotent=true, and the description usefully adds that a side effect is produced (viewer_url in the web editor, pdf_url of the drawn document), which explains the non-read-only hint. It also discloses an important limitation — 'automatic checks of the document data, not a conformity certificate' — though it says nothing about permissions, cost, or whether the viewer document is persisted.

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 verb and resource are front-loaded, and the synonym list (single-line diagram, panel, schéma unifilaire, tableau électrique) aids retrieval rather than padding. The return-value enumeration is somewhat long and partly redundant with the output schema, keeping it just below the top score.

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

Completeness4/5

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

Given an output schema exists, the description did not need to enumerate the finding fields, but it goes beyond by characterizing the findings' severity levels and the 'scope' caveat that results are not a conformity certificate. The only gap is the absence of any guidance on choosing between this and the sibling `validate`.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented in the schema, including the enum-like profile names and the 'core' always-applies note. The description largely repeats that and adds only marginal value (naming 'enedis' as the French grid connection profile, mentioning 'PLC' without giving its identifier), so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb+resource ('check an electrical installation') and enumerates what is validated (breaker ratings vs cable sections, RCDs, circuits per protection, selectivity). It also implicitly distinguishes itself from the sibling `validate` by saying it 'validates the document, then applies the rule profiles', but it never names that sibling explicitly, so the boundary is inferred rather than stated.

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

Usage Guidelines3/5

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

Usage is implied by the two-step pipeline (validate then apply profiles) and the default-profile rule is spelled out, but there is no explicit 'use this instead of X' guidance against siblings like `validate`, `render`, or `normalize`. An agent must infer when a full rule-based check is warranted versus a plain validation pass.

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

describeOutline of an electrical diagramA
Read-onlyIdempotent
Inspect

Return a text outline of an electrical diagram: installation, full tree of the panel with stable ids, ratings and cables, links, interlocks, boards and findings summary. Use it to read a document and find the node ids before apply_patch.

NameRequiredDescriptionDefault
langNoLanguage of the returned texts: 'en' (English) or 'fr' (French).en
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds value by framing the tool as a read/inspect step that yields stable node ids needed for a later mutation, which is workflow context the annotations do not provide. No auth, rate-limit, or failure-mode detail is offered.

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

Conciseness5/5

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

Two sentences, front-loaded with the return payload and followed by the usage rule. The content enumeration is dense but each item earns its place by telling the agent what the outline contains.

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

Completeness5/5

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

With an output schema covering the return shape, full schema coverage for parameters, and annotations carrying the safety profile, the description supplies the one thing structured fields cannot: why and when to call it (node-id discovery before apply_patch). Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (document, lang) are already fully documented in the schema, including accepted formats and language values. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (return a text outline) and resource (electrical diagram), and enumerates the exact contents: installation, panel tree with stable ids, ratings, cables, links, interlocks, boards, findings. This distinguishes it from siblings like render, bom, or validate that operate on the same document.

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?

Explicitly names the workflow and the sibling: 'find the node ids before apply_patch', which tells the agent when this tool belongs in a sequence. It stops short of stating exclusions (e.g. when to prefer render or viewer_link instead), so it is clear context without full when-not guidance.

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

get_exampleGet an example installationA
Read-onlyIdempotent
Inspect

Return an example installation document by name. Use it as a starting point for a similar installation, then edit it with apply_patch; list_examples gives the names.

NameRequiredDescriptionDefault
nameYesExample name from list_examples, or its number prefix (e.g. '02').

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful workflow behavior (the document is meant to be a template mutated via apply_patch), which is context annotations cannot express. It does not elaborate on document size or format, but the output schema presumably covers return shape.

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

Conciseness5/5

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

Two sentences, zero filler, with the core action front-loaded and the workflow/alternative trailing. Every clause carries information an agent needs.

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

Completeness5/5

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

With an output schema present, return values need no explanation, and annotations carry the safety profile. What remains — how to obtain a name, what to do with the result, what tool mutates it — is all stated, so nothing needed to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents that the name comes from list_examples and may be a number prefix. The description's "by name" adds no format detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ("Return an example installation document") plus the lookup key ("by name"). An agent can distinguish it from list_examples, which is named as the source of names, without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ("as a starting point for a similar installation") and the follow-on action ("edit it with apply_patch"), and routes to the sibling that supplies valid names (list_examples). This is a complete workflow instruction, not vague context.

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

get_reference_cardReference card of the uniwire formatA
Read-onlyIdempotent
Inspect

Return the reference card of the uniwire format for electrical diagrams: document skeleton, node types (breakers, RCDs, cables, loads, transformers, PV...) and their fields, enums, links, pitfalls, examples. Read it once before writing a document; type_info gives the fields of one type in detail.

NameRequiredDescriptionDefault
langNoLanguage of the returned texts: 'en' (English) or 'fr' (French).en
levelNo'compact' (about 3k tokens) or 'full' (every field).compact

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the workflow signal that this is a one-time prerequisite read, but discloses nothing about cost, rate limits, or the practical weight of the call beyond what the schema's 'compact/full' level already implies. Adequate but not additive.

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

Conciseness5/5

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

Two sentences, zero filler. The purpose and content inventory come first and the sibling routing note is deferred to the end where it belongs.

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?

An output schema exists, so return-value documentation is unnecessary. Combined with complete schema coverage and full annotations, the description supplies everything an agent needs: what it returns, when to call it, and which sibling to use for a narrower question.

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

Parameters3/5

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

Schema description coverage is 100% – both 'lang' (en/fr) and 'level' (compact ~3k tokens vs full every field) are fully documented in the schema with defaults. The description adds no parameter syntax or behavior beyond that, so the baseline 3 applies.

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

Purpose5/5

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

Specific verb+resource ('Return the reference card of the uniwire format for electrical diagrams') followed by an enumeration of the actual contents: document skeleton, node types, fields, enums, links, pitfalls, examples. It explicitly contrasts itself with the sibling type_info, so an agent can route between the two without opening a schema.

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

Usage Guidelines5/5

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

States both the timing ('Read it once before writing a document') and the alternative with its distinguishing scope ('type_info gives the fields of one type in detail'). When-to-use and when-to-use-something-else are both explicit.

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

list_examplesList the example installationsA
Read-onlyIdempotent
Inspect

List the 53 example installations (dwellings, shops, offices, workshops, PV, EV charging, UPS, MV/LV substations, PLCs): name, title, language, profiles, earthing, system.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds real context beyond that: the catalog is a fixed set of 53 curated examples spanning dwellings, shops, offices, PV, EV, UPS, substations and PLCs.

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

Conciseness5/5

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

One sentence, front-loaded with the verb, the count and the resource, followed by the return fields. No filler, no redundancy.

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

Completeness4/5

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

An output schema exists, so return fields need not be enumerated, and annotations cover the safety profile. The description plus structured data is sufficient to call it correctly; only the sibling relationship is unaddressed.

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

Parameters4/5

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

Zero parameters, so there is nothing to disambiguate; baseline of 4 applies. The description correctly signals a parameterless listing rather than leaving the agent guessing about filters.

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

Purpose4/5

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

States a specific verb (List) and resource (the 53 example installations), and enumerates the domain categories covered. It is distinguishable from get_example (single item) by implication, but never names or contrasts its siblings list_types/get_example explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the enumeration entry point before calling get_example, but there is no explicit when-to-use/when-not or pointer to alternatives such as list_types or get_reference_card.

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

list_typesList the node typesA
Read-onlyIdempotent
Inspect

List the node types of the format (type, category, label), optionally for one category. Use it to find the type name of a device or load before writing a node; type_info then gives its fields.

NameRequiredDescriptionDefault
langNoLanguage of the returned texts: 'en' (English) or 'fr' (French).en
categoryNoOnly the types of this category: source, measure, protection, switching, control, converter, conductor, container, connector or load; default: all.

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds value by disclosing the return tuple format and the role this call plays in the authoring workflow, though it says nothing about pagination or error 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/5

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

Two tight sentences, front-loaded with what the tool returns and followed by the usage rule. No filler and nothing redundant with the structured fields.

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?

Output schema exists, so return-value documentation is not required, and the annotations handle the safety profile. For a two-optional-parameter read-only list tool, the description plus schema plus output schema leaves nothing an agent needs missing.

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

Parameters3/5

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

Schema coverage is 100% — both lang and category (with its enumerated values) are fully documented in the schema. The description only paraphrases the category filter as "optionally for one category" and never mentions lang, so it adds little beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ("List the node types") and even specifies the returned tuple shape (type, category, label). It distinguishes itself from the sibling type_info by assigning that tool the job of returning fields.

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

Usage Guidelines5/5

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

Explicitly prescribes the when: use it to find a device's or load's type name before writing a node. It also names the follow-on alternative (type_info) and what that tool provides, leaving no routing ambiguity.

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

normalizeNormalized documentA
Read-onlyIdempotent
Inspect

Return the resolved form of a document: templates ('use') applied, every node and link id assigned, numbers in canonical form. Use it to read a document exactly as the rules and drawings see it, or to get stable ids before apply_patch; it does not apply the electrical rules (see check).

NameRequiredDescriptionDefault
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds value beyond that by disclosing what the resolution actually does (templates via 'use', id assignment, canonical numbers) and by stating what it does NOT do (electrical rules). It doesn't mention determinism caveats or performance, but the annotation-covered safety plus the transformation semantics make this strong.

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

Conciseness5/5

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

Three dense clauses with zero filler; the transformation list is front-loaded, usage conditions follow, and the exclusion is last. Every phrase carries information.

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?

An output schema exists, so return values need not be explained, and the description appropriately focuses on behavior and usage instead. Combined with the annotations, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Only one parameter (document) and schema coverage is 100%, so the schema already documents accepted forms (JSON object, JSON text, file path when local). The description adds nothing about the input format 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/5

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

States a specific verb (return the resolved form) and enumerates the three transformations it performs: template expansion, id assignment, and number canonicalization. It clearly distinguishes itself from check (electrical rules) and apply_patch (which consumes the stable ids).

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

Usage Guidelines5/5

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

Explicitly names two use cases ('read a document exactly as the rules and drawings see it' and 'get stable ids before apply_patch') and an exclusion ('it does not apply the electrical rules (see check)'). This routes the agent to the correct sibling without inference.

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

renderDraw the single-line or multi-line diagramA
Idempotent
Inspect

Draw the electrical diagram (schéma unifilaire / multifilaire). kind: 'single-line' or 'multi-line'; view: a view id of the document (e.g. a wire-marking view). format 'svg' returns the SVG text of every sheet (or of 'sheet', numbered from 1); 'pdf' writes to 'path' if given, else returns base64 (requires the uniwire[pdf] extra); on the hosted server it returns pdf_url (the PDF drawn by uniwire) instead. color: 'none' | 'conductors' | 'phase' | 'source' | 'status' | 'voltage' (adds a legend); conductor_colors: 'iec' (IEC 60445) | 'us'.

NameRequiredDescriptionDefault
kindNo'single-line' or 'multi-line' (one line per conductor).single-line
pathNoFile to write the PDF to (local server only).
viewNoId of a view of the document (its 'views' list); default: the first view of the requested kind.
colorNoColouring: 'none', 'conductors', 'phase', 'source', 'status' or 'voltage' (adds a legend).
sheetNoOnly this sheet (numbered from 1); default: all.
formatNo'svg' or 'pdf'.svg
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).
conductor_colorsNoConductor colour convention: 'iec' (IEC 60445) or 'us'.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (idempotent, non-destructive, open-world), the description discloses non-obvious behaviour: PDF writes to 'path' when given (a side effect), otherwise returns base64, requires the uniwire[pdf] extra, and the hosted server returns pdf_url instead. That local-vs-hosted split is genuinely useful context an agent cannot infer from annotations alone.

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

Conciseness4/5

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

Front-loaded with the core action, then organized parameter-by-parameter. It does repeat some schema content (the enum values for kind and color), but the density of useful detail keeps it efficient overall.

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

Completeness4/5

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

Given eight parameters, file-writing behaviour and hosted/local divergence, the description covers what an agent needs to invoke it correctly. An output schema exists, so return values needn't be explained, though the SVG/PDF return notes are a helpful bonus. Missing only explicit sibling routing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description earns a step up by adding meaning the schema lacks: view is tied to a wire-marking view id, SVG returns every sheet or a specific 1-based 'sheet', PDF's path/base64/pdf_url branching, and the colour legend and IEC 60445 convention.

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

Purpose4/5

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

Opens with a specific verb and resource: 'Draw the electrical diagram (schéma unifilaire / multifilaire)'. The agent knows exactly what output this produces, distinct from validation/normalisation siblings. It doesn't explicitly name a sibling to contrast with, which keeps it just below a 5.

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

Usage Guidelines3/5

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

Usage is only implied: you call this when you want a diagram. There is no explicit guidance on when to prefer this over viewer_link or when a diagram is not appropriate, and no prerequisites or exclusions are stated.

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

type_infoFields of a node typeA
Read-onlyIdempotent
Inspect

Return every field of one node type with its description, unit and allowed values (enums). Use it before writing or editing a node of that type; list_types gives the type names.

NameRequiredDescriptionDefault
langNoLanguage of the returned texts: 'en' (English) or 'fr' (French).en
typeYesA node type name from list_types, e.g. 'breaker', 'rcd', 'socket'.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds behaviorally relevant context the annotations do not: this is a schema-introspection call that should precede any write, and it discloses the shape of the returned data (fields, units, enums).

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

Conciseness5/5

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

Two compact sentences with zero filler; the primary purpose is front-loaded and the usage cue plus sibling reference follow immediately.

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

Completeness5/5

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

With an output schema present, the definition need not describe return values, and it already covers purpose, preconditions, and the content categories returned. Nothing an agent needs to invoke this two-parameter read tool correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and both parameters (lang, type) are documented in the schema, including the en/fr values and example type names. The description adds no syntax or format detail 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/5

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

States a specific verb+resource ('Return every field of one node type') and even enumerates the payload ('description, unit and allowed values (enums)'). It names the sibling list_types as the source of type names, so an agent can separate it from other read tools without opening a schema.

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

Usage Guidelines4/5

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

Gives a clear precondition for use: call it before writing or editing a node of that type, and points to list_types for obtaining valid type names. There are no explicit exclusions or when-not-to-use notes, but the workflow context is unambiguous.

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

validateValidate an electrical diagramA
Idempotent
Inspect

Validate a uniwire document (electrical diagram as JSON) against the format only: structure, types, ids, references and links, without the electrical rules (use check for those). Returns valid + issues, each naming the node id and field when possible, plus viewer_url (the document in the uniwire web editor) and pdf_url (the PDF drawn by uniwire).

NameRequiredDescriptionDefault
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

The description adds real behavioral context beyond the annotations: it enumerates the validation dimensions, clarifies the non-overlap with check, and notes that issues name the node id and field where possible. The return-value detail (valid + issues, viewer_url, pdf_url) is somewhat redundant given an output schema exists, and nothing is said about cost or failure modes, keeping it below a 5.

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

Conciseness4/5

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

Front-loaded with the scope constraint and the sibling exclusion, which is the most decision-relevant information. The trailing sentence about return values is largely duplicated by the output schema and could be trimmed.

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

Completeness5/5

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

For a one-parameter, read-oriented validation tool with an output schema and annotations, the description covers purpose, scope boundaries, the alternative tool, and the shape of results. Nothing an agent needs in order 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.

Parameters3/5

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

Schema description coverage is 100% and the single 'document' parameter is fully documented in the schema (object or JSON text, sources such as get_example/apply_patch/normalize, local file path). The description adds no parameter-level detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (validate) and resource (uniwire document / electrical diagram JSON) and enumerates exactly what is checked: structure, types, ids, references, links. It explicitly contrasts the scope with the sibling tool 'check', so an agent can distinguish the two 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 Guidelines5/5

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

Explicitly says 'format only ... without the electrical rules (use check for those)', naming the alternative and the condition that selects it. The only minor omission is that no input-source prerequisites are restated, but the schema's parameter description already covers those.

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

wiringWire list, wire markers and cable scheduleA
Read-onlyIdempotent
Inspect

Wiring exports of an installation as rows with stable column names (repérage des fils, carnet de câbles): what='markers' (one row per wire end, for label printers), 'wires' (wire list) or 'cables' (cable schedule). Marks follow the wire_marking rules of the view (id), by default the first view that declares them.

NameRequiredDescriptionDefault
viewNoId of a view of the document (its 'views' list); default: the first view of the requested kind.
whatNo'markers' (one row per wire end, for label printers), 'wires' (wire list) or 'cables' (cable schedule).markers
documentYesThe uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: marks follow the wire_marking rules of a view, and the view defaults to the first one that declares them. It also notes columns are stable, hinting at output stability. This is useful context on defaults and derivation rules.

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?

One compact paragraph that front-loads the core purpose and then the mode options, with no filler sentences. The awkward line breaks and inline French glosses cost a little readability but do not bloat the text.

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

Completeness4/5

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

For a 3-param, read-only export tool with an output schema present and full annotation coverage, the description supplies the derivation rules and default-selector behavior an agent needs. Return-value format need not be explained given the output schema. Nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters, including the what enum values and the view default. The description largely restates the what semantics without adding format or syntax detail (e.g., how the view id is obtained). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource: exports an installation's wiring as rows with stable column names, and enumerates the three output kinds (markers, wires, cables). The mode enumeration clearly delineates what the tool produces. It does not, however, explicitly differentiate itself from siblings such as bom or render, which also derive outputs from a document.

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

Usage Guidelines3/5

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

The what values ('markers' for label printers, 'wires', 'cables') imply which use case each selects, giving implied rather than explicit guidance. There is no statement of when to prefer this tool over siblings like bom or list_types, and no exclusions. Adequate but leaves selection largely to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updates
    • Changedapply_patch3 fields changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
      • addedInput schema / properties / ops / description
        Added value: +"The edit operations, applied in order (list, or its JSON text): see the description for the operation forms."
      • addedInput schema / properties / validate / description
        Added value: +"Validate the resulting document (default true)."
    • Changedbom1 field changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
    • Changedcheck2 fields changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
      • addedInput schema / properties / profiles / description
        Added value: +"Rule profiles to apply, e.g. ['nfc15100', 'enedis'] (France) or ['iec60364']; default: the 'profiles' of the document. 'core' always applies."
    • Changeddescribe2 fields changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the returned texts: 'en' (English) or 'fr' (French)."
    • Changedget_example1 field changed
      • addedInput schema / properties / name / description
        Added value: +"Example name from list_examples, or its number prefix (e.g. '02')."
    • Changedget_reference_card2 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the returned texts: 'en' (English) or 'fr' (French)."
      • addedInput schema / properties / level / description
        Added value: +"'compact' (about 3k tokens) or 'full' (every field)."
    • Changedlist_types2 fields changed
      • addedInput schema / properties / category / description
        Added value: +"Only the types of this category: source, measure, protection, switching, control, converter, conductor, container, connector or load; default: all."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the returned texts: 'en' (English) or 'fr' (French)."
    • Changednormalize1 field changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
    • Changedrender8 fields changed
      • addedInput schema / properties / color / description
        Added value: +"Colouring: 'none', 'conductors', 'phase', 'source', 'status' or 'voltage' (adds a legend)."
      • addedInput schema / properties / conductor_colors / description
        Added value: +"Conductor colour convention: 'iec' (IEC 60445) or 'us'."
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
      • addedInput schema / properties / format / description
        Added value: +"'svg' or 'pdf'."
      • addedInput schema / properties / kind / description
        Added value: +"'single-line' or 'multi-line' (one line per conductor)."
      • addedInput schema / properties / path / description
        Added value: +"File to write the PDF to (local server only)."
      • addedInput schema / properties / sheet / description
        Added value: +"Only this sheet (numbered from 1); default: all."
      • addedInput schema / properties / view / description
        Added value: +"Id of a view of the document (its 'views' list); default: the first view of the requested kind."
    • Changedtype_info2 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the returned texts: 'en' (English) or 'fr' (French)."
      • addedInput schema / properties / type / description
        Added value: +"A node type name from list_types, e.g. 'breaker', 'rcd', 'socket'."
    • Changedvalidate1 field changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
    • Changedviewer_link1 field changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
    • Changedwiring3 fields changed
      • addedInput schema / properties / document / description
        Added value: +"The uniwire document of the electrical installation: a JSON object, or its JSON text, as returned by get_example, apply_patch or normalize (a file path is accepted when the server runs locally)."
      • addedInput schema / properties / view / description
        Added value: +"Id of a view of the document (its 'views' list); default: the first view of the requested kind."
      • addedInput schema / properties / what / description
        Added value: +"'markers' (one row per wire end, for label printers), 'wires' (wire list) or 'cables' (cable schedule)."
  2. 14 tool updates
    • First observedapply_patch
    • First observedbom
    • First observedcheck
    • First observeddescribe
    • First observedget_example
    • First observedget_reference_card
    • First observedlist_examples
    • First observedlist_types
    • First observednormalize
    • First observedrender
    • First observedtype_info
    • First observedvalidate
    • First observedviewer_link
    • First observedwiring

Publisher details

Operator
uniwire · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
None: free, no account, no authentication. Documents are kept 30 days for the short links. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables source-preserving import and analysis of EPLAN export reports (devices, connections, PLC I/O, terminals, cables, parts, network, pages) as immutable queryable snapshots, plus inspection of DXF/PDF/DWG drawings and derivation of electrical project evidence. Works offline without EPLAN, supporting querying, duplicate/endpoint checks, revision comparison, and verified JSON export.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to validate photovoltaic system specifications and deterministically generate single-line diagrams with IEC 60617 symbols, exporting to DXF/PNG headlessly or to live AutoCAD 2027 for DWG and PDF output.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables offline AC cable sizing and verification by evaluating current capacity, voltage drop, derating, earth-fault loop impedance, and short-circuit thermal withstand against bundled or operator-supplied reference data. It also produces calculation reports identifying performed and omitted checks.
    7
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables an LLM agent to assemble, wire, run, fault and observe electromechanical motor-control circuits through 26 tools covering component placement, terminal connections, button/switch operation, fault injection, and simulation control. Also lets agents load and save circuits and generate PDF drawing sets, screenshots and scripted demo videos.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.