uniwire
Electrical single-line and multi-line diagrams: build, check (NF C 15-100, IEC 60364), draw, PDF.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (4)
- HIGH
- LOWin get_example
- LOWin normalize
- LOWin viewer_link
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"uniwire": {
"url": "https://mcp.uniwire.sh/mcp"
}
}
}Remote-Endpunkte
https://mcp.uniwire.sh/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (14)
🟢get_reference_card(level, lang)
Reference card of the uniwire format for electrical diagrams: document skeleton, node types (breakers, RCDs, cables, loads, transformers, PV...) and fields, enums, links, pitfalls, examples. Read it before writing a document. level: 'compact' (~3k tokens) or 'full'; lang: 'en' or 'fr'.
Eingabe-Schema
{
"type": "object",
"properties": {
"level": {
"default": "compact",
"title": "Level",
"type": "string"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"title": "get_reference_cardArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_reference_cardOutput"
}🟢list_types(category, lang)
List node types (type, category, label), optionally for one category: source, measure, protection, switching, control, converter, conductor, container, connector, load.
Eingabe-Schema
{
"type": "object",
"properties": {
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"title": "list_typesArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_typesOutput"
}🟢type_info(type, lang)
All fields of a node type with descriptions and allowed values (enums).
Eingabe-Schema
{
"type": "object",
"properties": {
"type": {
"title": "Type",
"type": "string"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"required": [
"type"
],
"title": "type_infoArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "type_infoDictOutput"
}🟢validate(document)
Validate a uniwire document (electrical diagram as JSON: object, JSON text or file path) against the format. Returns valid + issues, each naming the node id and field when possible, plus viewer_url and pdf_url (links for the user). check does the same and also applies the electrical rules.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "validateArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "validateDictOutput"
}🟢check(document, profiles)
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', 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, viewer_url (opens the document in the uniwire web editor: drawing, findings, downloads) and pdf_url (the PDF drawn by uniwire). Give both to the user as clickable links. 'scope' says what the checks cover: tell the user once that they are not a conformity certificate.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
},
"profiles": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Profiles"
}
},
"required": [
"document"
],
"title": "checkArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "checkDictOutput"
}🟢describe(document, lang)
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 review a document or find the ids for apply_patch.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"required": [
"document"
],
"title": "describeArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "describeOutput"
}🟡apply_patch(document, ops, validate)
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).
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
},
"ops": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "string"
}
],
"title": "Ops"
},
"validate": {
"default": true,
"title": "Validate",
"type": "boolean"
}
},
"required": [
"document",
"ops"
],
"title": "apply_patchArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "apply_patchDictOutput"
}🟢render(document, kind, format, sheet, view, ...)
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 instead. To give the user the PDF, give them pdf_url as a clickable link. color: 'none' | 'conductors' | 'phase' | 'source' | 'status' | 'voltage' (adds a legend); conductor_colors: 'iec' (IEC 60445) | 'us'.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
},
"kind": {
"default": "single-line",
"title": "Kind",
"type": "string"
},
"format": {
"default": "svg",
"title": "Format",
"type": "string"
},
"sheet": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Sheet"
},
"view": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "View"
},
"path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Path"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Color"
},
"conductor_colors": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Conductor Colors"
}
},
"required": [
"document"
],
"title": "renderArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "renderDictOutput"
}⚪viewer_link(document)
Links for the user: viewer_url opens the document in the uniwire web editor (drawing, single-line and multi-line, rule findings, PDF and SVG downloads, nothing to install); pdf_url gives 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. Give them to the user as clickable Markdown links.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "viewer_linkArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "viewer_linkDictOutput"
}🟢wiring(document, what, view)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
},
"what": {
"default": "markers",
"title": "What",
"type": "string"
},
"view": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "View"
}
},
"required": [
"document"
],
"title": "wiringArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "wiringDictOutput"
}🟢bom(document)
Bill of materials of an electrical installation (nomenclature), grouped by manufacturer / part number (nodes with a product reference).
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "bomArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "bomOutput"
}🟢list_examples
List the 52 example installations (dwellings, shops, offices, workshops, PV, EV charging, UPS, MV/LV substations, PLCs): name, title, language, profiles, earthing, system. Good starting points.
Eingabe-Schema
{
"type": "object",
"properties": {},
"title": "list_examplesArguments"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_examplesOutput"
}🟢get_example(name)
Return an example installation document by name (or number prefix, e.g. '02'), to adapt to the user's project.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "get_exampleArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "get_exampleDictOutput"
}🟢normalize(document)
Resolved document: templates applied, every id assigned, canonical numbers.
Eingabe-Schema
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "normalizeArguments"
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "normalizeDictOutput"
}Community
Nachweis