Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

uniwire

REMOTE · MCP.UNIWIRE.SH

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

Available components

+3 this week 78 Trust /100

Last scanned (1 hour ago)

Scores higher than 76% of remote servers

Reachable. Last reached 5 Nov 2026.

Category IoT and Hardware

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2798 tokens (~164/item across 17 items; 14 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1
    • Server version: 0.1.7 → 0.1.8 functional
  • 1 Nov 26 0
    • Server version: 0.1.6 → 0.1.7 functional
  • 31 Oct 26 +1
    • Server version: 0.1.5 → 0.1.6 functional
  • 30 Oct 26 0
    • Server version: 0.1.4 → 0.1.5 functional
  • 29 Oct 26 +1
    • Server version: 0.1.3 → 0.1.4 functional
  • 28 Oct 26 +3
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “bom” rewrote its description, which is the text the model reads security
    • Tool “check” rewrote its description, which is the text the model reads security
    • Tool “describe” rewrote its description, which is the text the model reads security
    • Tool “get_example” rewrote its description, which is the text the model reads security
    • Tool “get_reference_card” rewrote its description, which is the text the model reads security
    • Tool “list_examples” rewrote its description, which is the text the model reads security
    • Tool “list_types” rewrote its description, which is the text the model reads security
    • Tool “normalize” rewrote its description, which is the text the model reads security
    • Tool “render” rewrote its description, which is the text the model reads security
    • Tool “type_info” rewrote its description, which is the text the model reads security
    • Tool “validate” rewrote its description, which is the text the model reads security
    • Tool “viewer_link” rewrote its description, which is the text the model reads security
    • Schema quality: pass → fail ▼ functional
    • Tool coverage: 0% → 100% ▲ functional
    • Schema quality: fair → good functional
    • Server version: 0.1.1 → 0.1.3 functional
    • “apply_patch” reworded the description of “document” cosmetic
    • “apply_patch” reworded the description of “ops” cosmetic
    • “apply_patch” reworded the description of “validate” cosmetic
    • “bom” reworded the description of “document” cosmetic
    • “check” reworded the description of “document” cosmetic
    • “check” reworded the description of “profiles” cosmetic
    • “describe” reworded the description of “document” cosmetic
    • “describe” reworded the description of “lang” cosmetic
    • “get_example” reworded the description of “name” cosmetic
    • “get_reference_card” reworded the description of “lang” cosmetic
    • “get_reference_card” reworded the description of “level” cosmetic
    • “list_types” reworded the description of “category” cosmetic
    • “list_types” reworded the description of “lang” cosmetic
    • “normalize” reworded the description of “document” cosmetic
    • “render” reworded the description of “color” cosmetic
    • “render” reworded the description of “conductor_colors” cosmetic
    • “render” reworded the description of “document” cosmetic
    • “render” reworded the description of “format” cosmetic
    • “render” reworded the description of “kind” cosmetic
    • “render” reworded the description of “path” cosmetic
    • “render” reworded the description of “sheet” cosmetic
    • “render” reworded the description of “view” cosmetic
    • “type_info” reworded the description of “lang” cosmetic
    • “type_info” reworded the description of “type” cosmetic
    • “validate” reworded the description of “document” cosmetic
    • “viewer_link” reworded the description of “document” cosmetic
    • “wiring” reworded the description of “document” cosmetic
    • “wiring” reworded the description of “view” cosmetic
    • “wiring” reworded the description of “what” cosmetic
  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.uniwire.sh/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=uniwire.sh CN=YE2,O=Let's Encrypt,C=US 12 Oct 2026 10 Jan 2027 ECDSA 256 ECDSA-SHA384 6aa86a4976b67a509f4ccf30c22b3d3beb4
SANs: *.uniwire.sh, uniwire.sh
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.uniwire.sh. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
sh. present 34349 8 Verified
uniwire.sh. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.uniwire.sh/mcp Verified 200
http (plaintext) http://mcp.uniwire.sh/mcp Inconclusive 406
MCP tools · 14 exposed · ~2,310 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
apply_patch ~306

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

NameTypeReqDescription
document–yesThe 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).
ops–yesThe edit operations, applied in order (list, or its JSON text): see the description for the operation forms.
validateboolean–Validate the resulting document (default true).

Structured output declared, but exposes no named fields.

No examples provided.

bom ~165

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.

NameTypeReqDescription
document–yesThe 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).
NameTypeReqDescription
resultarrayyes–

No examples provided.

check ~277

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

NameTypeReqDescription
document–yesThe 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).
profiles––Rule profiles to apply, e.g. ['nfc15100', 'enedis'] (France) or ['iec60364']; default: the 'profiles' of the document. 'core' always applies.

Structured output declared, but exposes no named fields.

No examples provided.

describe ~129

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.

NameTypeReqDescription
document–yesThe 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).
langstring–Language of the returned texts: 'en' (English) or 'fr' (French).
NameTypeReqDescription
resultstringyes–

No examples provided.

get_example ~65

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.

NameTypeReqDescription
namestringyesExample name from list_examples, or its number prefix (e.g. '02').

Structured output declared, but exposes no named fields.

No examples provided.

get_reference_card ~127

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.

NameTypeReqDescription
langstring–Language of the returned texts: 'en' (English) or 'fr' (French).
levelstring–'compact' (about 3k tokens) or 'full' (every field).
NameTypeReqDescription
resultstringyes–

No examples provided.

list_examples ~56

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

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes–

No examples provided.

list_types ~113

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.

NameTypeReqDescription
category––Only the types of this category: source, measure, protection, switching, control, converter, conductor, container, connector or load; default: all.
langstring–Language of the returned texts: 'en' (English) or 'fr' (French).
NameTypeReqDescription
resultarrayyes–

No examples provided.

normalize ~116

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

NameTypeReqDescription
document–yesThe 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).

Structured output declared, but exposes no named fields.

No examples provided.

render ~369

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

NameTypeReqDescription
color––Colouring: 'none', 'conductors', 'phase', 'source', 'status' or 'voltage' (adds a legend).
conductor_colors––Conductor colour convention: 'iec' (IEC 60445) or 'us'.
document–yesThe 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).
formatstring–'svg' or 'pdf'.
kindstring–'single-line' or 'multi-line' (one line per conductor).
path––File to write the PDF to (local server only).
sheet––Only this sheet (numbered from 1); default: all.
view––Id of a view of the document (its 'views' list); default: the first view of the requested kind.

Structured output declared, but exposes no named fields.

No examples provided.

type_info ~100

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.

NameTypeReqDescription
langstring–Language of the returned texts: 'en' (English) or 'fr' (French).
typestringyesA node type name from list_types, e.g. 'breaker', 'rcd', 'socket'.

Structured output declared, but exposes no named fields.

No examples provided.

validate ~135

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

NameTypeReqDescription
document–yesThe 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).

Structured output declared, but exposes no named fields.

No examples provided.

viewer_link ~150

Links to a document: viewer_url opens it in the uniwire web editor (drawing, single-line and multi-line, rule findings, PDF and SVG downloads, nothing to install); pdf_url is the PDF drawn by uniwire. On the hosted server the document is kept 30 days so that the short links open it (anyone with a link can open it); elsewhere it travels in the link (after '#') and is stored nowhere.

NameTypeReqDescription
document–yesThe 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).

Structured output declared, but exposes no named fields.

No examples provided.

wiring ~202

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.

NameTypeReqDescription
document–yesThe 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).
view––Id of a view of the document (its 'views' list); default: the first view of the requested kind.
whatstring–'markers' (one row per wire end, for label printers), 'wires' (wire list) or 'cables' (cable schedule).

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the uniwire MCP server?

uniwire is a hosted endpoint at https://mcp.uniwire.sh/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.uniwire.sh

# add to Claude Code
claude mcp add --transport http uniwire-dev-uniwire 'https://mcp.uniwire.sh/mcp'
Common questions

What is the uniwire MCP server?

uniwire is an MCP server listed in the public MCP registry as io.github.uniwire-dev/uniwire. Electrical single-line and multi-line diagrams: build, check (NF C 15-100, IEC 60364), draw, PDF. This page covers its hosted endpoint (https://mcp.uniwire.sh/mcp).

Is the uniwire MCP server safe to use?

uniwire scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the uniwire MCP server expose?

uniwire exposes 14 tools: get_reference_card, list_types, type_info, validate, check, and 9 more. Their descriptions and schemas cost roughly 2,310 tokens of context every time the server is loaded.

Does the uniwire MCP server require authentication?

No. We connected to uniwire without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the uniwire MCP server still maintained?

uniwire is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.