Koskamo

PlanElec MCP

Provides read-only access to PlanElec's public tools including AREI/RGIE regulation search, cable sizing, LED strip calculation, and Synergrid inverter data checks without requiring an account.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

PlanElec MCP logo, by PlanElecVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by PlanElec
MCP endpoint (Streamable HTTP)
https://planelec.be/mcp/public
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 8 of 8 declare behavior hints · 8 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to planelec.be ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search AREI/RGIE regulations
  • Size cables for Belgian circuits
  • Calculate LED strip requirements
  • Check inverter compatibility

Source and maintenance

Vendor evidenceRegistry 0.2.0

Protocol and capabilities

Server
planelec 0.2.0
MCP protocol negotiated in check
2025-11-25
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

PlanElec is a web application for planning residential electrical installations under the Belgian AREI/RGIE. This public endpoint offers the free calculators, help and the AREI/RGIE regulations (search_regelwerk, get_regelwerk_article) without an account. Saved projects and planning changes need PlanElec Pro on https://planelec.be/mcp. Cite the "source" of a result when you pass its content on. Results are planning aids, not an official inspection (keuring).

Tools

8 advertised

check_inverter_c10_26 — Check an inverter against Synergrid C10/26
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Checks whether a PV inverter, battery inverter or other power-generating unit (PGU) is on the Synergrid C10/26 list of devices homologated for connection to the Belgian grid. Returns the outcome (found, found_with_limitations, expired, not_found, brand), matching devices with homologation dates, limitations and firmware versions, and homologated alternatives when nothing matches. Where available, each match also carries a separate "datasheet" object with manufacturer datasheet values (DC voltage, MPPT data, links, source URLs, status, last verified date); these are NOT checked by Synergrid and are not part of the approval. Search by brand and model, for example "Huawei SUN2000-10KTL".

check_inverter_c10_26 input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Brand and/or model, 2–80 characters."
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    },
    "phases": {
      "enum": [
        1,
        3
      ],
      "type": "number",
      "description": "Optional: 1 or 3 phases, improves alternative suggestions."
    },
    "smaxVa": {
      "type": "number",
      "description": "Optional: apparent power in VA, improves alternative suggestions."
    }
  }
}
check_inverter_c10_26 output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "outcome",
    "dataDate",
    "matches",
    "alternatives",
    "source",
    "officialSource",
    "nextSteps"
  ],
  "properties": {
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "outcome": {
      "enum": [
        "found",
        "found_with_limitations",
        "expired",
        "not_found",
        "brand"
      ],
      "type": "string"
    },
    "dataDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "alternatives": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "officialSource": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": {}
}
check_inverter_c10_26 annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
suggest_inverter_c10_26 — Suggest brands or models from the Synergrid C10/26 list
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Typeahead for the Synergrid C10/26 list: given a partial brand or model name, returns matching brands with device counts or, once a brand is recognised, its homologated models. Use this to resolve an ambiguous device name before calling check_inverter_c10_26.

suggest_inverter_c10_26 input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Partial brand or model name, 1–80 characters."
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    }
  }
}
suggest_inverter_c10_26 output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "brands",
    "models",
    "matchedBrand",
    "source"
  ],
  "properties": {
    "brands": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "models": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "matchedBrand": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": {}
}
suggest_inverter_c10_26 annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
get_inverter_datasheet — Get inverter datasheet data
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns manufacturer datasheet data for an inverter from the Synergrid C10/26 list: maximum DC voltage, MPPT count and range, current limits per MPPT, start voltage, maximum PV power, battery capability, optimizer architecture, links to the datasheet and installation manual, the product photo URL, source URL and page per value, status (verified = stated in the datasheet, secondary = unconfirmed) and the date last verified. These are manufacturer statements and are NOT part of the Synergrid approval; use check_inverter_c10_26 for the approval status. Look up by Synergrid reference (GLV…) or by brand and model.

get_inverter_datasheet input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "brand": {
      "type": "string",
      "description": "Brand, e.g. Huawei. Use together with model."
    },
    "model": {
      "type": "string",
      "description": "Model designation, e.g. SUN2000-5KTL-M1. Use together with brand."
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    },
    "reference": {
      "type": "string",
      "description": "Synergrid reference, e.g. GLV073-06-0020. Alternative to brand and model."
    }
  }
}
get_inverter_datasheet output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "datasheet",
    "note",
    "source"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "datasheet": {
      "type": "object",
      "properties": {},
      "additionalProperties": {}
    }
  },
  "additionalProperties": {}
}
get_inverter_datasheet annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
size_cable_arei — Size a cable per AREI/RGIE
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Calculates the required copper or aluminium cable cross-section for a residential circuit under the Belgian AREI/RGIE: design current, voltage drop per cross-section, protection check against the breaker rating and the recommended cross-section. Provide the load (A, W, kW or kVA), one-way cable length in metres, the network (1x230V, 3x230V, 3x400V) and the breaker rating; other fields use the defaults for a typical socket circuit. The response includes a shareable link that opens the same calculation on planelec.be.

size_cable_arei input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "mode": {
      "enum": [
        "check",
        "plan"
      ],
      "type": "string",
      "description": "‘plan’ recommends a cross-section; ‘check’ evaluates selectedCrossSectionMm2."
    },
    "cosPhi": {
      "type": "number",
      "maximum": 1,
      "description": "Power factor 0–1. Default: 0.95.",
      "exclusiveMinimum": 0
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    },
    "lengthM": {
      "type": "number",
      "description": "One-way cable length in metres. Default: 30.",
      "exclusiveMinimum": 0
    },
    "network": {
      "enum": [
        "1x230V",
        "3x230V",
        "3x400V"
      ],
      "type": "string",
      "description": "Supply network. Default: 1x230V."
    },
    "loadUnit": {
      "enum": [
        "A",
        "W",
        "kW",
        "kVA"
      ],
      "type": "string",
      "description": "Unit of loadValue. Default: A."
    },
    "material": {
      "enum": [
        "CU",
        "AL"
      ],
      "type": "string",
      "description": "Conductor material. Default: CU."
    },
    "loadValue": {
      "type": "number",
      "description": "Load magnitude in loadUnit. Default: 16.",
      "exclusiveMinimum": 0
    },
    "breakerAmps": {
      "type": "number",
      "description": "Circuit-breaker rating in A. Default: 16.",
      "exclusiveMinimum": 0
    },
    "circuitKind": {
      "enum": [
        "lighting",
        "other"
      ],
      "type": "string",
      "description": "‘lighting’ applies the 3% voltage-drop limit, ‘other’ 5%."
    },
    "circuitPhases": {
      "enum": [
        "single",
        "three"
      ],
      "type": "string",
      "description": "Circuit type; three-phase requires a 3x network."
    },
    "nominalVoltage": {
      "type": "number",
      "maximum": 1000,
      "description": "Optional override of the nominal voltage (≤ 1000 V).",
      "exclusiveMinimum": 0
    },
    "selectedCrossSectionMm2": {
      "enum": [
        1.5,
        2.5,
        4,
        6,
        10,
        16,
        25,
        35,
        50
      ],
      "type": "number",
      "description": "Cross-section to evaluate in ‘check’ mode."
    }
  }
}
size_cable_arei output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "currentAmps",
    "activePowerW",
    "nominalVoltage",
    "maxVoltageDropPercent",
    "comparison",
    "overallStatus",
    "input",
    "source",
    "nextSteps"
  ],
  "properties": {
    "input": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "comparison": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "crossSectionMm2",
          "dropVolts",
          "dropPercent",
          "maxLengthM"
        ],
        "properties": {
          "dropVolts": {
            "type": "number"
          },
          "maxLengthM": {
            "type": "number"
          },
          "dropPercent": {
            "type": "number"
          },
          "crossSectionMm2": {
            "type": "number"
          }
        },
        "additionalProperties": {}
      }
    },
    "currentAmps": {
      "type": "number"
    },
    "activePowerW": {
      "type": "number"
    },
    "overallStatus": {
      "enum": [
        "pass",
        "fail",
        "not_evaluated"
      ],
      "type": "string"
    },
    "nominalVoltage": {
      "type": "number"
    },
    "maxVoltageDropPercent": {
      "type": "number"
    }
  },
  "additionalProperties": {}
}
size_cable_arei annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
calculate_led_strip — Calculate an LED strip: current, power supply, feed points
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Calculates power, current (total and per channel), required feed points, power-supply size and the extra-low-voltage feed cable for an analogue LED strip (5/12/24/48 V DC; single colour, CCT, RGB, RGBW, RGB+CCT). Provide the strip length in metres and either a preset or the datasheet values (voltage, colour channels, watts per metre at full load). Optional: cut unit, maximum length per feed, number of feeds, power-supply reserve, feed-cable length, material and cross-section, and voltage-drop limit. Planning values from datasheet data, not a manufacturer guarantee; current-carrying capacity, heat and AREI/RGIE rules for SELV, bathrooms and outdoor areas are not checked. The response includes a shareable link that opens the calculation on planelec.be.

calculate_led_strip input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "lengthM"
  ],
  "properties": {
    "feeds": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Planned number of feed points; defaults to the minimum."
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    },
    "preset": {
      "enum": [
        "12v_mono_4_8",
        "24v_mono_9_6",
        "24v_mono_14_4",
        "24v_cob_10",
        "24v_cct_19_2",
        "24v_rgb_14_4",
        "24v_rgbw_19_2",
        "48v_mono_10"
      ],
      "type": "string",
      "description": "Typical strip class as starting values; explicit fields override it."
    },
    "lengthM": {
      "type": "number",
      "maximum": 500,
      "description": "Strip length in metres.",
      "exclusiveMinimum": 0
    },
    "maxRunM": {
      "type": "number",
      "maximum": 100,
      "description": "Manufacturer's maximum strip length per feed in m. Default: 5.",
      "exclusiveMinimum": 0
    },
    "voltage": {
      "enum": [
        5,
        12,
        24,
        48
      ],
      "type": "number",
      "description": "Strip nominal voltage in V DC. Default: 24."
    },
    "colorMode": {
      "enum": [
        "mono",
        "cct",
        "rgb",
        "rgbw",
        "rgbcct"
      ],
      "type": "string",
      "description": "Colour channels: mono, cct, rgb, rgbw or rgbcct. Default: mono."
    },
    "cutUnitMm": {
      "type": "number",
      "maximum": 1000,
      "description": "Cut unit in mm; the length is rounded down to it.",
      "exclusiveMinimum": 0
    },
    "feedLengthM": {
      "type": "number",
      "maximum": 1000,
      "description": "One-way feed-cable length from power supply to strip in m. Default: 5.",
      "exclusiveMinimum": 0
    },
    "feedMaterial": {
      "enum": [
        "CU",
        "AL"
      ],
      "type": "string",
      "description": "Feed-cable conductor material. Default: CU."
    },
    "powerPerMeterW": {
      "type": "number",
      "maximum": 200,
      "description": "Power per metre in W with all channels at full brightness. Default: 14.4.",
      "exclusiveMinimum": 0
    },
    "psuReservePercent": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Power-supply reserve in percent. Default: 20."
    },
    "maxFeedDropPercent": {
      "type": "number",
      "maximum": 20,
      "description": "Feed-cable voltage-drop limit in percent (planning assumption). Default: 3.",
      "exclusiveMinimum": 0
    },
    "feedCrossSectionMm2": {
      "enum": [
        0.5,
        0.75,
        1,
        1.5,
        2.5,
        4,
        6,
        10
      ],
      "type": "number",
      "description": "Planned feed-cable cross-section in mm²; omit for a recommendation only."
    }
  }
}
calculate_led_strip output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "channels",
    "powerW",
    "currentA",
    "requiredFeeds",
    "feeds",
    "psuRequiredW",
    "feedComparison",
    "warnings",
    "overallStatus",
    "input",
    "source",
    "nextSteps"
  ],
  "properties": {
    "feeds": {
      "type": "number"
    },
    "input": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "powerW": {
      "type": "number"
    },
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "channels": {
      "type": "number"
    },
    "currentA": {
      "type": "number"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "psuRequiredW": {
      "type": "number"
    },
    "overallStatus": {
      "enum": [
        "pass",
        "warn",
        "fail"
      ],
      "type": "string"
    },
    "requiredFeeds": {
      "type": "number"
    },
    "feedComparison": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "crossSectionMm2"
        ],
        "properties": {
          "crossSectionMm2": {
            "type": "number"
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": {}
}
calculate_led_strip annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
search_help_guides — Search the PlanElec help center
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Searches the PlanElec guides about getting started, automatic planning, document exports, AREI self-check coverage, floor plan import, symbols and circuits in the visitor’s current language. Returns up to five guides with title, summary, category and a link to the full article; the article text itself is not returned.

search_help_guides input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "string",
      "description": "Keywords matched against title, summary and tags. Empty lists all guides."
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    }
  }
}
search_help_guides output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "results",
    "source"
  ],
  "properties": {
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "description",
          "source"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "source": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "description": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": {}
}
search_help_guides annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
search_regelwerk — Search the Belgian AREI/RGIE regulations
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches Book 1 of the Belgian AREI/RGIE (Royal Decree on electrical installations) in the language of the text: Dutch, French or German; English uses the German text. Returns up to ten articles with number, title, an excerpt, the edition in force today and a link to the article in the PlanElec reader; the full article text is not returned, use get_regelwerk_article for it. Search by keywords or by article number such as 4.2.4.3. Results are planning aids, not an official inspection.

search_regelwerk input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "Maximum number of articles, 1–10. Default: 5."
    },
    "query": {
      "type": "string",
      "description": "Keywords or an article number such as 5.2.2.1 or 4.2.4.3, 2–120 characters."
    },
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    },
    "version": {
      "type": "string",
      "pattern": "^v\\d{2}$",
      "description": "Optional edition, e.g. v06 or v07. Default: the edition in force today (v06 until 31/10/2026, v07 from 01/11/2026)."
    }
  }
}
search_regelwerk output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "results",
    "source"
  ],
  "properties": {
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "edition": {
      "type": "object",
      "required": [
        "version",
        "sourceVersion",
        "language",
        "phase",
        "applicableFrom",
        "officialTranslationPending"
      ],
      "properties": {
        "phase": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "language": {
          "enum": [
            "nl",
            "fr",
            "de"
          ],
          "type": "string"
        },
        "sourceVersion": {
          "type": "string"
        },
        "applicableFrom": {
          "type": "string"
        },
        "applicableUntil": {
          "type": "string"
        },
        "officialTranslationPending": {
          "type": "boolean"
        }
      },
      "additionalProperties": {}
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "article",
          "title",
          "part",
          "excerpt",
          "source"
        ],
        "properties": {
          "part": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "article": {
            "type": "string"
          },
          "excerpt": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": {}
}
search_regelwerk annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_regelwerk_article — Read an AREI/RGIE article
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the text of one article of Book 1 of the Belgian AREI/RGIE by its number (for example 4.2.4.3 or "AREI 7.1.4.3"), in the language of the text (Dutch, French or German; English uses the German text), with the edition, change notices of amending decrees, the titles of its sub-articles and a link to the article in the PlanElec reader. Cite the article number and edition when you pass the content on. Use search_regelwerk to find the number.

get_regelwerk_article input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "article"
  ],
  "properties": {
    "locale": {
      "enum": [
        "nl",
        "fr",
        "de",
        "en"
      ],
      "type": "string",
      "description": "Language of source titles and links (nl, fr, de, en). Defaults to the server setting."
    },
    "article": {
      "type": "string",
      "description": "Article number such as 4.2.4.3; a prefix such as \"AREI\" or \"RGIE\" is accepted."
    },
    "version": {
      "type": "string",
      "pattern": "^v\\d{2}$",
      "description": "Optional edition, e.g. v06 or v07. Default: the edition in force today (v06 until 31/10/2026, v07 from 01/11/2026)."
    }
  }
}
get_regelwerk_article output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "source"
  ],
  "properties": {
    "text": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "required": [
        "title",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "article": {
      "type": "string"
    },
    "changes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "scope",
          "version",
          "provision"
        ],
        "properties": {
          "scope": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "provision": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "edition": {
      "type": "object",
      "required": [
        "version",
        "sourceVersion",
        "language",
        "phase",
        "applicableFrom",
        "officialTranslationPending"
      ],
      "properties": {
        "phase": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "language": {
          "enum": [
            "nl",
            "fr",
            "de"
          ],
          "type": "string"
        },
        "sourceVersion": {
          "type": "string"
        },
        "applicableFrom": {
          "type": "string"
        },
        "applicableUntil": {
          "type": "string"
        },
        "officialTranslationPending": {
          "type": "boolean"
        }
      },
      "additionalProperties": {}
    },
    "truncated": {
      "type": "boolean"
    },
    "subArticles": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "article",
          "title"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "article": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": {}
}
get_regelwerk_article annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
712 ms
95th percentile latency
712 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 712 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http planelec-mcp https://planelec.be/mcp/public

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add planelec-mcp --url https://planelec.be/mcp/public

Cursor

Merge this server into .cursor/mcp.json in your project, then enable planelec-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "planelec-mcp": {
      "url": "https://planelec.be/mcp/public"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "planelec-mcp": {
      "type": "streamableHttp",
      "url": "https://planelec.be/mcp/public",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start planelec-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "planelec-mcp": {
      "type": "http",
      "url": "https://planelec.be/mcp/public"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http planelec-mcp https://planelec.be/mcp/public

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://planelec.be/mcp/public

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "planelec-mcp": {
      "serverUrl": "https://planelec.be/mcp/public"
    }
  }
}

Let your agent find its tools

Find servers like PlanElec MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run PlanElec MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing