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

B
Calidad de la descripción
94%
Integridad del esquema
63%
Calidad de los nombres
90%
Riesgo de envenenamiento
80%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_example' description lacks action verben get_example
  • LOWTool 'normalize' description lacks action verben normalize
  • LOWTool description contains role marker that could confuse chat modelsen viewer_link

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,016Tokens (definiciones de herramientas)
~1.0 KBTamaño de respuesta típico
Impacto significativo en la atención (2.36% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (14)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada14 herramientas