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

B
Qualität der Beschreibung
94%
Vollständigkeit des Schemas
63%
Qualität der Benennung
90%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (4)

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

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,016Tokens (Tool-Definitionen)
~1.0 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.36% von 128k Kontext)

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

Was es kann

Tool-Inventar

Tools (14)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet14 Tools