uniwire

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

사용해야 할까요

품질 및 안전성

B
설명 품질
94%
스키마 완전성
63%
이름 품질
90%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'get_example' description lacks action verbget_example에서
  • LOWTool 'normalize' description lacks action verbnormalize에서
  • LOWTool description contains role marker that could confuse chat modelsviewer_link에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,016토큰 (도구 정의)
~1.0 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.36%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "uniwire": {
      "url": "https://mcp.uniwire.sh/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.uniwire.sh/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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'.

입력 스키마

{
  "type": "object",
  "properties": {
    "level": {
      "default": "compact",
      "title": "Level",
      "type": "string"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string"
    }
  },
  "title": "get_reference_cardArguments"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Category"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string"
    }
  },
  "title": "list_typesArguments"
}

출력 스키마

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

입력 스키마

{
  "type": "object",
  "properties": {
    "type": {
      "title": "Type",
      "type": "string"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "title": "type_infoArguments"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {
    "document": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "string"
        }
      ],
      "title": "Document"
    }
  },
  "required": [
    "document"
  ],
  "title": "validateArguments"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {
    "document": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "string"
        }
      ],
      "title": "Document"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string"
    }
  },
  "required": [
    "document"
  ],
  "title": "describeArguments"
}

출력 스키마

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

입력 스키마

{
  "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"
}

출력 스키마

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

입력 스키마

{
  "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"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {
    "document": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "string"
        }
      ],
      "title": "Document"
    }
  },
  "required": [
    "document"
  ],
  "title": "viewer_linkArguments"
}

출력 스키마

{
  "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.

입력 스키마

{
  "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"
}

출력 스키마

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

입력 스키마

{
  "type": "object",
  "properties": {
    "document": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "string"
        }
      ],
      "title": "Document"
    }
  },
  "required": [
    "document"
  ],
  "title": "bomArguments"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "title": "list_examplesArguments"
}

출력 스키마

{
  "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.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "title": "Name",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "title": "get_exampleArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_exampleDictOutput"
}
🟢normalize(document)

Resolved document: templates applied, every id assigned, canonical numbers.

입력 스키마

{
  "type": "object",
  "properties": {
    "document": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "string"
        }
      ],
      "title": "Document"
    }
  },
  "required": [
    "document"
  ],
  "title": "normalizeArguments"
}

출력 스키마

{
  "type": "object",
  "additionalProperties": true,
  "title": "normalizeDictOutput"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 14개