uniwire
Electrical single-line and multi-line diagrams: build, check (NF C 15-100, IEC 60364), draw, PDF.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (4)
- HIGH
- LOWen get_example
- LOWen normalize
- LOWen viewer_link
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"uniwire": {
"url": "https://mcp.uniwire.sh/mcp"
}
}
}Puntos de conexión remotos
https://mcp.uniwire.sh/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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'.
Esquema de entrada
{
"type": "object",
"properties": {
"level": {
"default": "compact",
"title": "Level",
"type": "string"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"title": "get_reference_cardArguments"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"title": "list_typesArguments"
}Esquema de salida
{
"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).
Esquema de entrada
{
"type": "object",
"properties": {
"type": {
"title": "Type",
"type": "string"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"required": [
"type"
],
"title": "type_infoArguments"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "validateArguments"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
},
"lang": {
"default": "en",
"title": "Lang",
"type": "string"
}
},
"required": [
"document"
],
"title": "describeArguments"
}Esquema de salida
{
"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).
Esquema de entrada
{
"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"
}Esquema de salida
{
"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'.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "viewer_linkArguments"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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).
Esquema de entrada
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "bomArguments"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "list_examplesArguments"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "get_exampleArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "get_exampleDictOutput"
}🟢normalize(document)
Resolved document: templates applied, every id assigned, canonical numbers.
Esquema de entrada
{
"type": "object",
"properties": {
"document": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "string"
}
],
"title": "Document"
}
},
"required": [
"document"
],
"title": "normalizeArguments"
}Esquema de salida
{
"type": "object",
"additionalProperties": true,
"title": "normalizeDictOutput"
}Comunidad
Evidencia