Arama Motorları ve Yapay Zeka Ajanları İçin Tam Uyumlu Altyapı | VOLTFORMER

Voltformer; Google, Bing, ChatGPT Search, Perplexity ve otonom kurumsal satın alma ajanlarının tüm transformatör modellerimizi, Ecodesign Tier 2 kayıp verile...

Arama Motorları ve Yapay Zeka Ajanları İçin Tam Uyumlu Altyapı | VOLTFORMER

Voltformer; Google, Bing, ChatGPT Search, Perplexity ve otonom kurumsal satın alma ajanlarının tüm transformatör modellerimizi, Ecodesign Tier 2 kayıp verilerini ve teknik parametrelerini eksiksiz indexleyebileceği semantik ve programatik bir mimari sunar.

Arama Motorları ve Yapay Zeka Ajanları İçin Tam Uyumlu Altyapı | VOLTFORMER

API araç referansı (65)

API tanımlayıcıları ve sözleşme açıklamaları İngilizce yayımlanır. Üye verileri özeldir; bu referans yalnızca tanımları içerir.

JSON · Markdown · OpenAPI · MCP

Kamu ihalelerini ara

queryGovernmentTenders

Kaynakları incelenmiş seçili kamu alım ilanlarını arayın. Kapsamı, kanıtları ve bilinmeyenleri inceleyin; güncel son tarihi resmi portalda doğrulayın.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, countryCode, buyerType, noticeType, sector, status, month, sort, limit, offset, language
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string",
        "maxLength": 200
      },
      "countryCode": {
        "type": "string",
        "pattern": "^[A-Za-z]{2}
quot; }, "buyerType": { "type": "string", "enum": [ "government", "intergovernmental" ] }, "noticeType": { "type": "string", "enum": [ "tender", "expression-of-interest", "prequalification", "award", "procurement-plan" ] }, "sector": { "type": "string", "enum": [ "power", "energy", "oil-gas", "construction", "civil-engineering", "mining" ] }, "status": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "month": { "type": "string", "pattern": "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])
quot;, "description": "Publication month (YYYY-MM). Available coverage is returned with the current curated dataset." }, "sort": { "type": "string", "enum": [ "published-desc", "published-asc", "deadline-asc" ] }, "limit": { "type": "integer", "minimum": 1, "maximum": 50 }, "offset": { "type": "integer", "minimum": 0, "maximum": 10000 }, "language": { "type": "string", "enum": [ "tr", "en", "de", "ru", "es", "ar", "it", "pt" ] } }, "additionalProperties": false }, "outputSchema": { "type": "object", "properties": { "coverage": { "type": "object", "properties": { "from": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "through": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "reviewedAt": { "type": "string" }, "mode": { "type": "string", "const": "curated-snapshot" }, "exhaustive": { "type": "boolean", "const": false }, "noticeCount": { "type": "integer", "minimum": 0 }, "contentRevision": { "type": "string", "pattern": "^[a-f0-9]{64}
quot; }, "disclaimer": { "type": "string" } }, "required": [ "from", "through", "reviewedAt", "mode", "exhaustive", "noticeCount", "disclaimer" ], "additionalProperties": false }, "total": { "type": "integer", "minimum": 0 }, "limit": { "type": "integer", "minimum": 1, "maximum": 50 }, "offset": { "type": "integer", "minimum": 0 }, "results": { "type": "array", "maxItems": 50, "items": { "type": "object", "properties": { "id": { "type": "string" }, "reference": { "type": "string" }, "originalTitle": { "type": "string" }, "title": { "type": "string" }, "summary": { "type": "string" }, "buyer": { "type": "string" }, "buyerType": { "type": "string", "enum": [ "government", "intergovernmental" ] }, "countryCode": { "type": "string", "pattern": "^[A-Z]{2}
quot; }, "countryName": { "type": "string" }, "sectors": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": [ "power", "energy", "oil-gas", "construction", "civil-engineering", "mining" ] } }, "noticeType": { "type": "string", "enum": [ "tender", "expression-of-interest", "prequalification", "award", "procurement-plan" ] }, "publishedDate": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "deadline": { "type": [ "string", "null" ] }, "deadlineTimezone": { "type": [ "string", "null" ] }, "status": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "sourceStatus": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "value": { "type": [ "object", "null" ], "properties": { "amount": { "type": "number", "minimum": 0 }, "currency": { "type": "string", "pattern": "^[A-Z]{3}
quot; }, "basis": { "type": "string", "enum": [ "estimate", "budget", "contract-value" ] } }, "required": [ "amount", "currency", "basis" ], "additionalProperties": false }, "source": { "type": "object", "properties": { "publisher": { "type": "string" }, "url": { "type": "string", "pattern": "^https?://" }, "accessedAt": { "type": "string" } }, "required": [ "publisher", "url", "accessedAt" ], "additionalProperties": false }, "labeling": { "type": "object", "properties": { "method": { "type": "string", "const": "editorial-source-review" }, "reviewStatus": { "type": "string", "const": "source-verified" }, "evidence": { "type": "array", "items": { "type": "string" } }, "unknowns": { "type": "array", "items": { "type": "string" } } }, "required": [ "method", "reviewStatus", "evidence", "unknowns" ], "additionalProperties": false }, "language": { "type": "string", "enum": [ "tr", "en", "de", "ru", "es", "ar", "it", "pt" ] } }, "required": [ "id", "reference", "originalTitle", "title", "summary", "buyer", "buyerType", "countryCode", "countryName", "sectors", "noticeType", "publishedDate", "deadline", "deadlineTimezone", "status", "sourceStatus", "value", "source", "labeling", "language" ], "additionalProperties": false } } }, "required": [ "coverage", "total", "limit", "offset", "results" ], "additionalProperties": false }, "securitySchemes": [ { "type": "noauth" } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/queryGovernmentTenders
{
  "operationId": "queryGovernmentTenders",
  "summary": "Query Government Tenders",
  "description": "Use this when the user needs Voltformer to search selected source-reviewed government and intergovernmental procurement notices by text, country, buyerType, noticeType, sector, current effective status and publication month. Coverage is a bounded curated snapshot, not exhaustive or live. Preserve authoritative sources, evidence and unknowns.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "q": {
              "type": "string",
              "maxLength": 200
            },
            "countryCode": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}
quot; }, "buyerType": { "type": "string", "enum": [ "government", "intergovernmental" ] }, "noticeType": { "type": "string", "enum": [ "tender", "expression-of-interest", "prequalification", "award", "procurement-plan" ] }, "sector": { "type": "string", "enum": [ "power", "energy", "oil-gas", "construction", "civil-engineering", "mining" ] }, "status": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "month": { "type": "string", "pattern": "^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])
quot;, "description": "Publication month (YYYY-MM). Available coverage is returned with the current curated dataset." }, "sort": { "type": "string", "enum": [ "published-desc", "published-asc", "deadline-asc" ] }, "limit": { "type": "integer", "minimum": 1, "maximum": 50 }, "offset": { "type": "integer", "minimum": 0, "maximum": 10000 }, "language": { "type": "string", "enum": [ "tr", "en", "de", "ru", "es", "ar", "it", "pt" ] } }, "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "properties": { "coverage": { "type": "object", "properties": { "from": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "through": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "reviewedAt": { "type": "string" }, "mode": { "type": "string", "const": "curated-snapshot" }, "exhaustive": { "type": "boolean", "const": false }, "noticeCount": { "type": "integer", "minimum": 0 }, "contentRevision": { "type": "string", "pattern": "^[a-f0-9]{64}
quot; }, "disclaimer": { "type": "string" } }, "required": [ "from", "through", "reviewedAt", "mode", "exhaustive", "noticeCount", "disclaimer" ], "additionalProperties": false }, "total": { "type": "integer", "minimum": 0 }, "limit": { "type": "integer", "minimum": 1, "maximum": 50 }, "offset": { "type": "integer", "minimum": 0 }, "results": { "type": "array", "maxItems": 50, "items": { "type": "object", "properties": { "id": { "type": "string" }, "reference": { "type": "string" }, "originalTitle": { "type": "string" }, "title": { "type": "string" }, "summary": { "type": "string" }, "buyer": { "type": "string" }, "buyerType": { "type": "string", "enum": [ "government", "intergovernmental" ] }, "countryCode": { "type": "string", "pattern": "^[A-Z]{2}
quot; }, "countryName": { "type": "string" }, "sectors": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": [ "power", "energy", "oil-gas", "construction", "civil-engineering", "mining" ] } }, "noticeType": { "type": "string", "enum": [ "tender", "expression-of-interest", "prequalification", "award", "procurement-plan" ] }, "publishedDate": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "deadline": { "type": [ "string", "null" ] }, "deadlineTimezone": { "type": [ "string", "null" ] }, "status": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "sourceStatus": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "value": { "type": [ "object", "null" ], "properties": { "amount": { "type": "number", "minimum": 0 }, "currency": { "type": "string", "pattern": "^[A-Z]{3}
quot; }, "basis": { "type": "string", "enum": [ "estimate", "budget", "contract-value" ] } }, "required": [ "amount", "currency", "basis" ], "additionalProperties": false }, "source": { "type": "object", "properties": { "publisher": { "type": "string" }, "url": { "type": "string", "pattern": "^https?://" }, "accessedAt": { "type": "string" } }, "required": [ "publisher", "url", "accessedAt" ], "additionalProperties": false }, "labeling": { "type": "object", "properties": { "method": { "type": "string", "const": "editorial-source-review" }, "reviewStatus": { "type": "string", "const": "source-verified" }, "evidence": { "type": "array", "items": { "type": "string" } }, "unknowns": { "type": "array", "items": { "type": "string" } } }, "required": [ "method", "reviewStatus", "evidence", "unknowns" ], "additionalProperties": false }, "language": { "type": "string", "enum": [ "tr", "en", "de", "ru", "es", "ar", "it", "pt" ] } }, "required": [ "id", "reference", "originalTitle", "title", "summary", "buyer", "buyerType", "countryCode", "countryName", "sectors", "noticeType", "publishedDate", "deadline", "deadlineTimezone", "status", "sourceStatus", "value", "source", "labeling", "language" ], "additionalProperties": false } } }, "required": [ "coverage", "total", "limit", "offset", "results" ], "additionalProperties": false } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Kamu ihalesini oku

getGovernmentTender

Bir ilanı kimliğiyle, resmi kaynağı, kanıtları, bilinmeyenleri ve anlık veri kapsamıyla okuyun.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
id
İsteğe bağlı girdiler
language
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      },
      "language": {
        "type": "string",
        "enum": [
          "tr",
          "en",
          "de",
          "ru",
          "es",
          "ar",
          "it",
          "pt"
        ]
      }
    },
    "required": [
      "id"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "coverage": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "through": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "reviewedAt": { "type": "string" }, "mode": { "type": "string", "const": "curated-snapshot" }, "exhaustive": { "type": "boolean", "const": false }, "noticeCount": { "type": "integer", "minimum": 0 }, "contentRevision": { "type": "string", "pattern": "^[a-f0-9]{64}
quot; }, "disclaimer": { "type": "string" } }, "required": [ "from", "through", "reviewedAt", "mode", "exhaustive", "noticeCount", "disclaimer" ], "additionalProperties": false }, "tender": { "type": "object", "properties": { "id": { "type": "string" }, "reference": { "type": "string" }, "originalTitle": { "type": "string" }, "title": { "type": "string" }, "summary": { "type": "string" }, "buyer": { "type": "string" }, "buyerType": { "type": "string", "enum": [ "government", "intergovernmental" ] }, "countryCode": { "type": "string", "pattern": "^[A-Z]{2}
quot; }, "countryName": { "type": "string" }, "sectors": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": [ "power", "energy", "oil-gas", "construction", "civil-engineering", "mining" ] } }, "noticeType": { "type": "string", "enum": [ "tender", "expression-of-interest", "prequalification", "award", "procurement-plan" ] }, "publishedDate": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "deadline": { "type": [ "string", "null" ] }, "deadlineTimezone": { "type": [ "string", "null" ] }, "status": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "sourceStatus": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "value": { "type": [ "object", "null" ], "properties": { "amount": { "type": "number", "minimum": 0 }, "currency": { "type": "string", "pattern": "^[A-Z]{3}
quot; }, "basis": { "type": "string", "enum": [ "estimate", "budget", "contract-value" ] } }, "required": [ "amount", "currency", "basis" ], "additionalProperties": false }, "source": { "type": "object", "properties": { "publisher": { "type": "string" }, "url": { "type": "string", "pattern": "^https?://" }, "accessedAt": { "type": "string" } }, "required": [ "publisher", "url", "accessedAt" ], "additionalProperties": false }, "labeling": { "type": "object", "properties": { "method": { "type": "string", "const": "editorial-source-review" }, "reviewStatus": { "type": "string", "const": "source-verified" }, "evidence": { "type": "array", "items": { "type": "string" } }, "unknowns": { "type": "array", "items": { "type": "string" } } }, "required": [ "method", "reviewStatus", "evidence", "unknowns" ], "additionalProperties": false }, "language": { "type": "string", "enum": [ "tr", "en", "de", "ru", "es", "ar", "it", "pt" ] } }, "required": [ "id", "reference", "originalTitle", "title", "summary", "buyer", "buyerType", "countryCode", "countryName", "sectors", "noticeType", "publishedDate", "deadline", "deadlineTimezone", "status", "sourceStatus", "value", "source", "labeling", "language" ], "additionalProperties": false } }, "required": [ "coverage", "tender" ], "additionalProperties": false }, "securitySchemes": [ { "type": "noauth" } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/getGovernmentTender
{
  "operationId": "getGovernmentTender",
  "summary": "Get Government Tender",
  "description": "Use this when the user needs Voltformer to read a selected government or intergovernmental procurement notice by ID, including source evidence, unknowns, current effective status, reviewed source status, snapshot dates and localized title/summary. Verify amendments on the authoritative portal before acting.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "language": {
              "type": "string",
              "enum": [
                "tr",
                "en",
                "de",
                "ru",
                "es",
                "ar",
                "it",
                "pt"
              ]
            }
          },
          "required": [
            "id"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "coverage": {
                "type": "object",
                "properties": {
                  "from": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "through": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "reviewedAt": { "type": "string" }, "mode": { "type": "string", "const": "curated-snapshot" }, "exhaustive": { "type": "boolean", "const": false }, "noticeCount": { "type": "integer", "minimum": 0 }, "contentRevision": { "type": "string", "pattern": "^[a-f0-9]{64}
quot; }, "disclaimer": { "type": "string" } }, "required": [ "from", "through", "reviewedAt", "mode", "exhaustive", "noticeCount", "disclaimer" ], "additionalProperties": false }, "tender": { "type": "object", "properties": { "id": { "type": "string" }, "reference": { "type": "string" }, "originalTitle": { "type": "string" }, "title": { "type": "string" }, "summary": { "type": "string" }, "buyer": { "type": "string" }, "buyerType": { "type": "string", "enum": [ "government", "intergovernmental" ] }, "countryCode": { "type": "string", "pattern": "^[A-Z]{2}
quot; }, "countryName": { "type": "string" }, "sectors": { "type": "array", "minItems": 1, "items": { "type": "string", "enum": [ "power", "energy", "oil-gas", "construction", "civil-engineering", "mining" ] } }, "noticeType": { "type": "string", "enum": [ "tender", "expression-of-interest", "prequalification", "award", "procurement-plan" ] }, "publishedDate": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}
quot; }, "deadline": { "type": [ "string", "null" ] }, "deadlineTimezone": { "type": [ "string", "null" ] }, "status": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "sourceStatus": { "type": "string", "enum": [ "open", "closed", "awarded", "cancelled", "unknown" ] }, "value": { "type": [ "object", "null" ], "properties": { "amount": { "type": "number", "minimum": 0 }, "currency": { "type": "string", "pattern": "^[A-Z]{3}
quot; }, "basis": { "type": "string", "enum": [ "estimate", "budget", "contract-value" ] } }, "required": [ "amount", "currency", "basis" ], "additionalProperties": false }, "source": { "type": "object", "properties": { "publisher": { "type": "string" }, "url": { "type": "string", "pattern": "^https?://" }, "accessedAt": { "type": "string" } }, "required": [ "publisher", "url", "accessedAt" ], "additionalProperties": false }, "labeling": { "type": "object", "properties": { "method": { "type": "string", "const": "editorial-source-review" }, "reviewStatus": { "type": "string", "const": "source-verified" }, "evidence": { "type": "array", "items": { "type": "string" } }, "unknowns": { "type": "array", "items": { "type": "string" } } }, "required": [ "method", "reviewStatus", "evidence", "unknowns" ], "additionalProperties": false }, "language": { "type": "string", "enum": [ "tr", "en", "de", "ru", "es", "ar", "it", "pt" ] } }, "required": [ "id", "reference", "originalTitle", "title", "summary", "buyer", "buyerType", "countryCode", "countryName", "sectors", "noticeType", "publishedDate", "deadline", "deadlineTimezone", "status", "sourceStatus", "value", "source", "labeling", "language" ], "additionalProperties": false } }, "required": [ "coverage", "tender" ], "additionalProperties": false } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Query Transformers

queryTransformers

Use this when the user needs Voltformer to search and filter the transformer catalog.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, brandId, mainCategory, subCategory, targetIndustry, minKva, maxKva, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string"
      },
      "brandId": {
        "type": "string"
      },
      "mainCategory": {
        "type": "string",
        "description": "Canonical English main-category identifier (for example distribution-transformers)."
      },
      "subCategory": {
        "type": "string",
        "description": "Canonical English sub-category identifier (for example cast-resin-dry-type-transformers)."
      },
      "targetIndustry": {
        "type": "string"
      },
      "minKva": {
        "type": "number"
      },
      "maxKva": {
        "type": "number"
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "products": {
        "type": "array",
        "description": "Matching transformer records.",
        "items": {
          "type": "object",
          "description": "Matching transformer records.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "products"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/catalog
{
  "operationId": "queryTransformers",
  "summary": "Search and filter transformer catalog",
  "description": "Use this when the user needs Voltformer to search and filter the transformer catalog.",
  "tags": [
    "Catalog"
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Free-text search (e.g. '1000 kVA 35kV SCB18', 'VF-TBEA-SCB18-1000-35')"
    },
    {
      "name": "mainCategory",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "distribution-transformers",
          "power-transmission-transformers",
          "renewable-energy-transformers",
          "special-industrial-process-transformers",
          "compact-substations-and-padmounted"
        ]
      },
      "description": "Canonical English main-category identifier (see GET /api/v1/categories)."
    },
    {
      "name": "subCategory",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Canonical English sub-category identifier, e.g. cast-resin-dry-type-transformers, solar-pv-step-up-transformers, or electric-arc-furnace-transformers."
    },
    {
      "name": "targetIndustry",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Industry filter, e.g. 'Data Centers', 'Hospitals', or 'Solar PV Plants'"
    },
    {
      "name": "brandId",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "abb-hitachi",
          "alfanar",
          "astor",
          "baobian",
          "best",
          "ceeg",
          "cg-power",
          "china-xd",
          "chint",
          "dachi",
          "daihen",
          "eaton",
          "elimsan",
          "eltas",
          "fuji-electric",
          "ge-vernova",
          "haihong",
          "hyosung",
          "hyundai-electric",
          "iljin",
          "jinpan",
          "jshp",
          "koncar",
          "legrand",
          "ls-electric",
          "mingyang",
          "mitsubishi-electric",
          "qingdao",
          "sanbian",
          "sanil",
          "schneider",
          "sgb-smit",
          "siemens",
          "sunten",
          "taikai",
          "tamini",
          "tbea",
          "toshiba",
          "weg",
          "wilson-power",
          "wolong",
          "wujiang",
          "zhiguang"
        ]
      },
      "description": "Brand id filter"
    },
    {
      "name": "minKva",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number"
      },
      "description": "Minimum rated power kVA"
    },
    {
      "name": "maxKva",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number"
      },
      "description": "Maximum rated power kVA (up to 1,000,000)"
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50,
        "default": 20
      },
      "description": "Max results (default 20, max 50)"
    }
  ],
  "responses": {
    "200": {
      "description": "Matching transformers",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 123
              },
              "limit": {
                "type": "integer"
              },
              "products": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TransformerProduct"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Query Switchgear

querySwitchgear

Use this when the user needs Voltformer to search and filter switchgear products. Use q, brand, productType, maxVoltageKV, and limit.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, brand, productType, maxVoltageKV, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string"
      },
      "brand": {
        "type": "string"
      },
      "productType": {
        "type": "string",
        "enum": [
          "RMU",
          "medium-voltage switchgear",
          "high-voltage switchgear",
          "low-voltage switchgear",
          "circuit-breaker",
          "recloser",
          "contactor",
          "power-fuse",
          "switch-disconnector",
          "fuse-switch-disconnector",
          "earthing-switch"
        ]
      },
      "maxVoltageKV": {
        "type": "number"
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "products": {
        "type": "array",
        "description": "Matching switchgear records.",
        "items": {
          "type": "object",
          "description": "Matching switchgear records.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "products"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/switchgear
{
  "operationId": "querySwitchgear",
  "summary": "Search and filter switchgear catalog",
  "description": "Use this when the user needs Voltformer to search and filter switchgear products. Use q, brand, productType, maxVoltageKV, and limit.",
  "tags": [
    "Switchgear"
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Free-text search across name, brand, family, application and electrical details"
    },
    {
      "name": "brand",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Exact brand name, e.g. Schneider Electric or ABB"
    },
    {
      "name": "productType",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "RMU",
          "medium-voltage switchgear",
          "high-voltage switchgear",
          "low-voltage switchgear",
          "circuit-breaker",
          "recloser",
          "contactor",
          "power-fuse",
          "switch-disconnector",
          "fuse-switch-disconnector",
          "earthing-switch"
        ]
      }
    },
    {
      "name": "maxVoltageKV",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number"
      },
      "description": "Maximum rated voltage in kV"
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50,
        "default": 20
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Matching switchgear products",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "products": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SwitchgearProduct"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Query Protection Control

queryProtectionControl

Use this when the user needs Voltformer to search transformer and feeder protection, control and substation automation products.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, brand, productType, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string"
      },
      "brand": {
        "type": "string"
      },
      "productType": {
        "type": "string",
        "enum": [
          "transformer-protection",
          "feeder-protection",
          "bay-control"
        ]
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "products": {
        "type": "array",
        "description": "Matching protection and control records.",
        "items": {
          "type": "object",
          "description": "Matching protection and control records.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "products"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/protection-control
{
  "operationId": "queryProtectionControl",
  "summary": "Search protection, control and automation products",
  "tags": [
    "Protection & Control"
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "brand",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "productType",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "transformer-protection",
          "feeder-protection",
          "bay-control"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Matching protection/control products",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "description": "Use this when the user needs Voltformer to search transformer and feeder protection, control and substation automation products.",
  "security": []
}

Query Generators

queryGenerators

Use this when the user needs Voltformer to search generator sets by power range, brand, product type and text matching names, engines or applications.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, brand, productType, minKva, maxKva, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string"
      },
      "brand": {
        "type": "string"
      },
      "productType": {
        "type": "string",
        "enum": [
          "diesel-generator-set",
          "gas-generator-set"
        ]
      },
      "minKva": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "maxKva": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "products": {
        "type": "array",
        "description": "Matching generator set records.",
        "items": {
          "type": "object",
          "description": "Matching generator set records.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "products"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/generators
{
  "operationId": "queryGenerators",
  "summary": "Search diesel and gas generator sets",
  "tags": [
    "Generator Systems"
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "brand",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "productType",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "diesel-generator-set",
          "gas-generator-set"
        ]
      }
    },
    {
      "name": "minKva",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number",
        "exclusiveMinimum": 0
      }
    },
    {
      "name": "maxKva",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number",
        "exclusiveMinimum": 0
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Generator sets matching the query",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "x-openai-isConsequential": false
  },
  "x-openai-isConsequential": false,
  "description": "Use this when the user needs Voltformer to search generator sets by power range, brand, product type and text matching names, engines or applications.",
  "security": []
}

Get Generator By Slug

getGeneratorBySlug

Use this when the user needs Voltformer to get a generator set (genset) by slug.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "A generator set catalog record.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/generators/{slug}
{
  "operationId": "getGeneratorBySlug",
  "summary": "Get generator set by slug",
  "tags": [
    "Generator Systems"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Generator set found",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "404": {
      "description": "Product not found"
    }
  },
  "x-openai-isConsequential": false,
  "description": "Use this when the user needs Voltformer to get a generator set (genset) by slug.",
  "security": []
}

Query Grid Equipment

queryGridEquipment

Use this when the user needs Voltformer to search instrument transformers, meters, surge arresters, compensation, conductors, motors, UPS/BESS/PV and EVSE products by brand, type and stated connection-voltage envelope.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, brand, productType, maxVoltageKV, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string"
      },
      "brand": {
        "type": "string"
      },
      "productType": {
        "type": "string",
        "enum": [
          "current-transformer",
          "voltage-transformer",
          "energy-meter",
          "surge-arrester",
          "reactive-compensation-bank",
          "statcom",
          "power-cable",
          "busway",
          "induction-motor",
          "synchronous-motor",
          "uninterruptible-power-supply",
          "battery-energy-storage-system",
          "photovoltaic-inverter",
          "ev-charger"
        ]
      },
      "maxVoltageKV": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "products": {
        "type": "array",
        "description": "Matching instrument-transformer, metering, surge-arrester, capacitor/reactor-bank, STATCOM, conductor, motor, UPS, BESS, PV and EVSE records.",
        "items": {
          "type": "object",
          "description": "Matching instrument-transformer, metering, surge-arrester, capacitor/reactor-bank, STATCOM, conductor, motor, UPS, BESS, PV and EVSE records.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "products"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/grid-equipment
{
  "operationId": "queryGridEquipment",
  "summary": "Search SLD-supporting grid equipment",
  "description": "Use this when the user needs Voltformer to search instrument transformers, meters, surge arresters, compensation, conductors, motors, UPS/BESS/PV and EVSE products by brand, type and stated connection-voltage envelope.",
  "tags": [
    "Grid Equipment"
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Free-text search across product, application and technical details"
    },
    {
      "name": "brand",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Exact manufacturer name"
    },
    {
      "name": "productType",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "current-transformer",
          "voltage-transformer",
          "energy-meter",
          "surge-arrester",
          "reactive-compensation-bank",
          "statcom",
          "power-cable",
          "busway",
          "induction-motor",
          "synchronous-motor",
          "uninterruptible-power-supply",
          "battery-energy-storage-system",
          "photovoltaic-inverter",
          "ev-charger"
        ]
      }
    },
    {
      "name": "maxVoltageKV",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "description": "Maximum connection/system voltage in kV"
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50,
        "default": 20
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Matching grid equipment products",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "total",
              "limit",
              "products"
            ],
            "properties": {
              "total": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "products": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GridEquipmentProduct"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Grid Equipment By Slug

getGridEquipmentBySlug

Use this when the user needs Voltformer to get a grid-equipment product (metering, power quality, conductor, motor, UPS/BESS/PV or EVSE) by slug.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "Complete grid-equipment product record with localized detail, typed technical specifications and official source links.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/grid-equipment/{slug}
{
  "operationId": "getGridEquipmentBySlug",
  "summary": "Get grid equipment product by slug",
  "description": "Use this when the user needs Voltformer to get a grid-equipment product (metering, power quality, conductor, motor, UPS/BESS/PV or EVSE) by slug.",
  "tags": [
    "Grid Equipment"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Grid equipment product found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/GridEquipmentProduct"
          }
        }
      }
    },
    "404": {
      "description": "Grid equipment product not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Query Solar

querySolar

Use this when the user needs Voltformer to search solar modules by name, brand, cell technology and stated power in watts. Solar panels are separate from grid-equipment PV inverters.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, brand, cellTechnology, minWatts, maxWatts, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string",
        "maxLength": 200
      },
      "brand": {
        "type": "string",
        "maxLength": 100
      },
      "cellTechnology": {
        "type": "string",
        "maxLength": 100
      },
      "minWatts": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "maxWatts": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      }
    },
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "products": {
        "type": "array",
        "description": "Matching solar module records with stated watt ratings and manufacturer sources.",
        "items": {
          "type": "object",
          "description": "Matching solar module records with stated watt ratings and manufacturer sources.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "products"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/querySolar
{
  "operationId": "querySolar",
  "summary": "Query Solar",
  "description": "Use this when the user needs Voltformer to search solar modules by name, brand, cell technology and stated power in watts. Solar panels are separate from grid-equipment PV inverters.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "q": {
              "type": "string",
              "maxLength": 200
            },
            "brand": {
              "type": "string",
              "maxLength": 100
            },
            "cellTechnology": {
              "type": "string",
              "maxLength": 100
            },
            "minWatts": {
              "type": "number",
              "exclusiveMinimum": 0
            },
            "maxWatts": {
              "type": "number",
              "exclusiveMinimum": 0
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "products": {
                "type": "array",
                "description": "Matching solar module records with stated watt ratings and manufacturer sources.",
                "items": {
                  "type": "object",
                  "description": "Matching solar module records with stated watt ratings and manufacturer sources.",
                  "additionalProperties": true
                }
              }
            },
            "required": [
              "total",
              "limit",
              "products"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Get Solar By Slug

getSolarBySlug

Use this when the user needs Voltformer to get a solar module by slug, SKU or ID, including stated electrical ratings, localized descriptions and manufacturer sources.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "required": [
      "slug"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "description": "Complete solar module record, including electrical ratings, localized detail and manufacturer sources.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/getSolarBySlug
{
  "operationId": "getSolarBySlug",
  "summary": "Get Solar By Slug",
  "description": "Use this when the user needs Voltformer to get a solar module by slug, SKU or ID, including stated electrical ratings, localized descriptions and manufacturer sources.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            }
          },
          "required": [
            "slug"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "description": "Complete solar module record, including electrical ratings, localized detail and manufacturer sources.",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Get Product By Slug

getProductBySlug

Use this when the user needs Voltformer to get full transformer specifications by slug, SKU, or ID.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "A transformer catalog record.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/product/{slug}
{
  "operationId": "getProductBySlug",
  "summary": "Get single transformer by slug or SKU",
  "description": "Use this when the user needs Voltformer to get full transformer specifications by slug, SKU, or ID.",
  "tags": [
    "Product"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "Product slug or SKU (case-insensitive)"
    }
  ],
  "responses": {
    "200": {
      "description": "Product found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TransformerProduct"
          }
        }
      }
    },
    "404": {
      "description": "Not found - use GET /api/v1/catalog to discover valid slugs"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Switchgear By Slug

getSwitchgearBySlug

Use this when the user needs Voltformer to get a switchgear product by slug.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "A switchgear catalog record.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/switchgear/{slug}
{
  "operationId": "getSwitchgearBySlug",
  "summary": "Get switchgear product by slug",
  "description": "Use this when the user needs Voltformer to get a switchgear product by slug.",
  "tags": [
    "Switchgear"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Switchgear product found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SwitchgearProduct"
          }
        }
      }
    },
    "404": {
      "description": "Switchgear product not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Protection Control By Slug

getProtectionControlBySlug

Use this when the user needs Voltformer to get a protection and control product by slug.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "A protection and control catalog record.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/protection-control/{slug}
{
  "operationId": "getProtectionControlBySlug",
  "summary": "Get protection/control product by slug",
  "tags": [
    "Protection & Control"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Protection/control product found",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "404": {
      "description": "Product not found"
    }
  },
  "x-openai-isConsequential": false,
  "description": "Use this when the user needs Voltformer to get a protection and control product by slug.",
  "security": []
}

Get Compatible Transformers For Switchgear

getCompatibleTransformersForSwitchgear

Use this when the user needs Voltformer to assess preliminary transformer candidates against switchgear voltage and numeric current ratings. Prospective fault current is optional; without it, short-circuit compatibility is unknown.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
prospectiveFaultCurrentKA, prospectiveFaultDurationSeconds
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      },
      "prospectiveFaultCurrentKA": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 150,
        "description": "Optional three-phase symmetrical RMS prospective short-circuit current at the switchgear connection point in kA; do not supply peak/making current."
      },
      "prospectiveFaultDurationSeconds": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 10,
        "description": "Project protection clearing duration in seconds for the stated RMS short-circuit duty. Required together with fault current for a positive short-time withstand result."
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "switchgear": {
        "type": "object",
        "description": "The selected switchgear record.",
        "additionalProperties": true
      },
      "voltageRangeKV": {
        "type": "object",
        "description": "Parsed voltage range.",
        "additionalProperties": true
      },
      "total": {
        "type": "integer"
      },
      "compatibleTransformers": {
        "type": "array",
        "description": "Preliminary compatible transformer records.",
        "items": {
          "type": "object",
          "description": "Preliminary compatible transformer records.",
          "additionalProperties": true
        }
      },
      "compatibilityAssessments": {
        "type": "array",
        "description": "Per-transformer compatibility assessments.",
        "items": {
          "type": "object",
          "description": "Per-transformer compatibility assessments.",
          "additionalProperties": true
        }
      },
      "isPreliminary": {
        "type": "boolean"
      },
      "engineeringVerificationRequired": {
        "type": "boolean"
      },
      "note": {
        "type": "string"
      }
    },
    "required": [
      "switchgear",
      "total",
      "compatibleTransformers",
      "compatibilityAssessments",
      "isPreliminary",
      "engineeringVerificationRequired",
      "note"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/switchgear/{slug}/compatible-transformers
{
  "operationId": "getCompatibleTransformersForSwitchgear",
  "summary": "Find preliminary transformer candidates for switchgear",
  "description": "Use this when the user needs Voltformer to assess preliminary transformer candidates against switchgear voltage and numeric current ratings. Prospective fault current is optional; without it, short-circuit compatibility is unknown.",
  "tags": [
    "Switchgear"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "Switchgear product slug"
    },
    {
      "name": "prospectiveFaultCurrentKA",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 150
      },
      "description": "Optional three-phase symmetrical RMS prospective short-circuit current at the switchgear connection point in kA; do not supply peak/making current."
    },
    {
      "name": "prospectiveFaultDurationSeconds",
      "in": "query",
      "required": false,
      "schema": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 10
      },
      "description": "Project protection clearing duration in seconds for the stated RMS short-circuit duty. Required together with fault current for a positive short-time withstand result."
    }
  ],
  "responses": {
    "200": {
      "description": "Preliminary voltage-range transformer candidates",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "switchgear",
              "voltageRangeKV",
              "total",
              "compatibleTransformers",
              "compatibilityAssessments",
              "isPreliminary",
              "engineeringVerificationRequired",
              "note"
            ],
            "properties": {
              "switchgear": {
                "$ref": "#/components/schemas/SwitchgearProduct"
              },
              "voltageRangeKV": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "min": {
                    "type": "number"
                  },
                  "max": {
                    "type": "number"
                  }
                }
              },
              "total": {
                "type": "integer"
              },
              "compatibleTransformers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TransformerProduct"
                }
              },
              "compatibilityAssessments": {
                "type": "array",
                "description": "One assessment per candidate; transformer records remain unchanged.",
                "items": {
                  "$ref": "#/components/schemas/SwitchgearCompatibilityAssessment"
                }
              },
              "isPreliminary": {
                "type": "boolean",
                "example": true
              },
              "engineeringVerificationRequired": {
                "type": "boolean",
                "example": true
              },
              "note": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "404": {
      "description": "Switchgear product not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

List Brands

listBrands

Use this when the user needs Voltformer to list brands represented across all six equipment catalog families and their total catalog product counts.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "brands": {
        "type": "array",
        "description": "Represented brands and product counts.",
        "items": {
          "type": "object",
          "description": "Represented brands and product counts.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "brands"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/brands
{
  "operationId": "listBrands",
  "summary": "List all 25 represented brands",
  "description": "Use this when the user needs Voltformer to list brands represented across all six equipment catalog families and their total catalog product counts.",
  "tags": [
    "Brand"
  ],
  "responses": {
    "200": {
      "description": "Brand list",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Brand"
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Brand

getBrand

Use this when the user needs Voltformer to get a represented equipment brand with its total catalog product count and sample products across all equipment families.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string"
      }
    },
    "required": [
      "slug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "productCount": {
        "type": "integer"
      },
      "sampleProducts": {
        "type": "array",
        "description": "Sample equipment records for this brand.",
        "items": {
          "type": "object",
          "description": "Sample equipment records for this brand.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "id",
      "name",
      "productCount",
      "sampleProducts"
    ],
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/brands/{slug}
{
  "operationId": "getBrand",
  "summary": "Get brand by slug",
  "description": "Use this when the user needs Voltformer to get a represented equipment brand with its total catalog product count and sample products across all equipment families.",
  "tags": [
    "Brand"
  ],
  "parameters": [
    {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Brand found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Brand"
          }
        }
      }
    },
    "404": {
      "description": "Brand not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

List Categories

listCategories

Use this when the user needs Voltformer to list categories within the Power & Energy Equipment product domain.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "categories": {
        "type": "array",
        "description": "Power & Energy Equipment main-category records across all catalog families.",
        "items": {
          "type": "object",
          "description": "Power & Energy Equipment main-category records across all catalog families.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "categories"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/categories
{
  "operationId": "listCategories",
  "summary": "List canonical main categories",
  "description": "Use this when the user needs Voltformer to list categories within the Power & Energy Equipment product domain.",
  "tags": [
    "Category"
  ],
  "responses": {
    "200": {
      "description": "Category taxonomy",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MainCategory"
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Catalog Taxonomy

getCatalogTaxonomy

Use this when the user needs Voltformer to get the complete versioned hierarchy: product domain, engineering product families, main categories, subcategories and technical specializations.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "outputSchema": {
    "type": "object",
    "description": "Versioned Power & Energy Equipment taxonomy with domains, product families and nested categories.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/taxonomy
{
  "operationId": "getCatalogTaxonomy",
  "summary": "Get the complete Power & Energy Equipment taxonomy",
  "description": "Use this when the user needs Voltformer to get the complete versioned hierarchy: product domain, engineering product families, main categories, subcategories and technical specializations.",
  "tags": [
    "Category"
  ],
  "responses": {
    "200": {
      "description": "Complete catalog taxonomy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CatalogTaxonomy"
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Category

getCategory

Use this when the user needs Voltformer to get a main category by slug or ID.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
mainSlug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "mainSlug": {
        "type": "string"
      }
    },
    "required": [
      "mainSlug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "A Power & Energy Equipment main-category record.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/categories/{mainSlug}
{
  "operationId": "getCategory",
  "summary": "Get main category by slug",
  "description": "Use this when the user needs Voltformer to get a main category by slug or ID.",
  "tags": [
    "Category"
  ],
  "parameters": [
    {
      "name": "mainSlug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Category found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MainCategory"
          }
        }
      }
    },
    "404": {
      "description": "Not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Sub Category

getSubCategory

Use this when the user needs Voltformer to get a sub-category by main and sub slug or ID.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
mainSlug, subSlug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "mainSlug": {
        "type": "string"
      },
      "subSlug": {
        "type": "string"
      }
    },
    "required": [
      "mainSlug",
      "subSlug"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "A Power & Energy Equipment sub-category record.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/categories/{mainSlug}/{subSlug}
{
  "operationId": "getSubCategory",
  "summary": "Get sub-category by slugs",
  "description": "Use this when the user needs Voltformer to get a sub-category by main and sub slug or ID.",
  "tags": [
    "Category"
  ],
  "parameters": [
    {
      "name": "mainSlug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "subSlug",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Sub-category",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "404": {
      "description": "Not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Compare Transformers

compareTransformers

Use this when the user needs Voltformer to compare two catalog transformers across electrical, loss, mechanical and compliance specifications.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
productA, productB
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "productA": {
        "type": "string",
        "description": "SKU, ID or slug"
      },
      "productB": {
        "type": "string",
        "description": "SKU, ID or slug"
      }
    },
    "required": [
      "productA",
      "productB"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "products": {
        "type": "array",
        "description": "The two compared transformer records.",
        "items": {
          "type": "object",
          "description": "The two compared transformer records.",
          "additionalProperties": true
        }
      },
      "comparison": {
        "type": "object",
        "description": "Field-by-field comparison values.",
        "additionalProperties": true
      },
      "parallelOperation": {
        "type": "object",
        "description": "IEC 60076-1 / IEEE C57.12.00 parallel operation assessment and load sharing.",
        "additionalProperties": true
      }
    },
    "required": [
      "products",
      "comparison",
      "parallelOperation"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/compare
{
  "operationId": "compareTransformers",
  "summary": "Compare two catalog transformers",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "productA",
            "productB"
          ],
          "properties": {
            "productA": {
              "type": "string"
            },
            "productB": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Canonical comparison with full product records and comparable specifications."
    },
    "400": {
      "description": "Invalid product identifiers."
    }
  },
  "x-openai-isConsequential": false,
  "description": "Use this when the user needs Voltformer to compare two catalog transformers across electrical, loss, mechanical and compliance specifications.",
  "security": []
}

Calculate Transformer Sizing

calculateTransformerSizing

Use this when the user needs Voltformer to perform preliminary transformer-only kVA sizing. Catalog matches are withheld until primary voltage, secondary voltage and phase count are supplied. Cable selection is withheld because it requires site-specific current, installation, derating, voltage-drop and short-circuit inputs.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
totalActivePowerKW
İsteğe bağlı girdiler
powerFactorCosPhi, simultaneityFactor, growthMarginPercent, primaryVoltageKV, secondaryVoltageKV, phases, siteAltitudeMeters, ambientTemperatureC, harmonicKFactor, coolingMedium
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "totalActivePowerKW": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "powerFactorCosPhi": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 1,
        "default": 0.85
      },
      "simultaneityFactor": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 1,
        "default": 0.75
      },
      "growthMarginPercent": {
        "type": "number",
        "minimum": 0,
        "maximum": 100,
        "default": 20
      },
      "primaryVoltageKV": {
        "type": "number",
        "exclusiveMinimum": 0,
        "description": "Optional exact required primary voltage in kV for catalog matching."
      },
      "secondaryVoltageKV": {
        "type": "number",
        "exclusiveMinimum": 0,
        "description": "Optional exact required secondary voltage in kV for catalog matching."
      },
      "phases": {
        "type": "integer",
        "enum": [
          1,
          3
        ],
        "description": "Optional required transformer phase count for catalog matching."
      },
      "siteAltitudeMeters": {
        "type": "number",
        "minimum": 0,
        "maximum": 5000,
        "description": "Installation altitude in meters above sea level (IEC 60076-2 / 60076-11 derating applied above 1000m)."
      },
      "ambientTemperatureC": {
        "type": "number",
        "minimum": -40,
        "maximum": 60,
        "description": "Maximum site ambient temperature in °C (derating applied above 40°C)."
      },
      "harmonicKFactor": {
        "type": "number",
        "minimum": 1,
        "maximum": 50,
        "description": "Harmonic load K-factor per IEEE C57.110 (1 = linear load)."
      },
      "coolingMedium": {
        "type": "string",
        "enum": [
          "oil",
          "dry"
        ],
        "description": "Cooling/insulation medium (oil-immersed or dry-type)."
      }
    },
    "required": [
      "totalActivePowerKW"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "demandLoadKW": {
        "type": "number"
      },
      "apparentPowerKVA": {
        "type": "number"
      },
      "reactivePowerKVAR": {
        "type": [
          "number",
          "null"
        ]
      },
      "calculatedKVA": {
        "type": "number"
      },
      "recommendedStandardKVA": {
        "type": [
          "number",
          "null"
        ],
        "description": "Next rating in the published standard series, or null when the requirement exceeds it."
      },
      "operatingLoadPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "standardImpedanceUkPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "primaryRatedCurrentA": {
        "type": [
          "number",
          "null"
        ]
      },
      "secondaryRatedCurrentA": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedSecondaryFaultCurrentKA": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedSecondaryPeakFaultCurrentKA": {
        "type": [
          "number",
          "null"
        ]
      },
      "recommendedSecondaryBreakingCapacityIcuKA": {
        "type": [
          "number",
          "null"
        ]
      },
      "voltageRegulationPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "loadedSecondaryVoltageKV": {
        "type": [
          "number",
          "null"
        ]
      },
      "recommendedTapPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "voltageBoostPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "recommendedHvTapPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "recommendedTapPositionNote": {
        "type": [
          "string",
          "null"
        ]
      },
      "siteDeratingFactor": {
        "type": "number"
      },
      "altitudeDeratingFactor": {
        "type": "number"
      },
      "temperatureDeratingFactor": {
        "type": "number"
      },
      "harmonicDeratingFactor": {
        "type": "number"
      },
      "dielectricAltitudeFactor": {
        "type": "number"
      },
      "unDeratedRequiredKVA": {
        "type": "number"
      },
      "estimatedInrushMultiple": {
        "type": "number"
      },
      "estimatedInrushCurrentPeakA": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedInrushCurrentRmsA": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedP0Watts": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedPkWatts": {
        "type": [
          "number",
          "null"
        ]
      },
      "heatDissipationKW": {
        "type": [
          "number",
          "null"
        ]
      },
      "substationVentilationAirflowM3H": {
        "type": [
          "number",
          "null"
        ]
      },
      "substationNaturalVentilationInletM2": {
        "type": [
          "number",
          "null"
        ]
      },
      "substationNaturalVentilationOutletM2": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedOilVolumeLiters": {
        "type": [
          "number",
          "null"
        ]
      },
      "substationOilContainmentBundM3": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedSoundPressureLevelDbA": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedXtoRRatio": {
        "type": [
          "number",
          "null"
        ]
      },
      "estimatedMethodCKappa": {
        "type": [
          "number",
          "null"
        ]
      },
      "primaryContinuousDesignAmpacityA": {
        "type": [
          "number",
          "null"
        ]
      },
      "recommendedHarmonicKClass": {
        "type": [
          "string",
          "null"
        ]
      },
      "operatingEfficiencyPercent": {
        "type": [
          "number",
          "null"
        ]
      },
      "requiresCustomEngineering": {
        "type": "boolean"
      },
      "isPreliminary": {
        "type": "boolean"
      },
      "recommendationMode": {
        "type": "string"
      },
      "assumptions": {
        "type": "object",
        "description": "Sizing assumptions used by the calculation.",
        "additionalProperties": true
      },
      "recommendedPrimaryCable": {},
      "cableSpecIsPreliminary": {
        "type": "boolean"
      },
      "matchingCriteriaComplete": {
        "type": "boolean",
        "description": "True only when primary voltage, secondary voltage and phase count were supplied for catalog matching."
      },
      "matchingCriteriaMissing": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "matchingTransformers": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "demandLoadKW",
      "apparentPowerKVA",
      "calculatedKVA",
      "recommendedStandardKVA",
      "requiresCustomEngineering",
      "isPreliminary",
      "recommendationMode",
      "assumptions",
      "cableSpecIsPreliminary",
      "matchingCriteriaComplete",
      "matchingCriteriaMissing",
      "matchingTransformers"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/calculate-sizing
{
  "operationId": "calculateTransformerSizing",
  "summary": "Calculate required transformer kVA",
  "description": "Use this when the user needs Voltformer to perform preliminary transformer-only kVA sizing. Catalog matches are withheld until primary voltage, secondary voltage and phase count are supplied. Cable selection is withheld because it requires site-specific current, installation, derating, voltage-drop and short-circuit inputs.",
  "tags": [
    "Tools"
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "totalActivePowerKW"
          ],
          "properties": {
            "totalActivePowerKW": {
              "type": "number",
              "exclusiveMinimum": 0,
              "description": "Total active power kW",
              "example": 850
            },
            "powerFactorCosPhi": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 1,
              "default": 0.85,
              "example": 0.85
            },
            "simultaneityFactor": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 1,
              "default": 0.75,
              "example": 0.75
            },
            "growthMarginPercent": {
              "type": "number",
              "minimum": 0,
              "maximum": 100,
              "default": 20,
              "example": 20
            },
            "primaryVoltageKV": {
              "type": "number",
              "exclusiveMinimum": 0,
              "description": "Optional exact required primary voltage in kV used for catalog matching."
            },
            "secondaryVoltageKV": {
              "type": "number",
              "exclusiveMinimum": 0,
              "description": "Optional exact required secondary voltage in kV used for catalog matching."
            },
            "phases": {
              "type": "integer",
              "enum": [
                1,
                3
              ],
              "description": "Optional required transformer phase count used for catalog matching."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Sizing result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "calculatedKVA": {
                "type": "number"
              },
              "demandLoadKW": {
                "type": "number"
              },
              "apparentPowerKVA": {
                "type": "number"
              },
              "recommendedStandardKVA": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Next rating in the published standard series, or null when calculatedKVA exceeds that series.",
                "example": 1600
              },
              "recommendedPrimaryCable": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Always null until site-specific installation, derating, voltage-drop and short-circuit inputs are available."
              },
              "matchingCriteriaComplete": {
                "type": "boolean",
                "description": "True only when primaryVoltageKV, secondaryVoltageKV and phases were all supplied."
              },
              "matchingCriteriaMissing": {
                "type": "array",
                "description": "Electrical connection criteria still required before catalog models can be screened.",
                "items": {
                  "type": "string",
                  "enum": [
                    "primaryVoltageKV",
                    "secondaryVoltageKV",
                    "phases"
                  ]
                }
              },
              "matchingTransformers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "requiresCustomEngineering": {
                "type": "boolean"
              },
              "cableSpecIsPreliminary": {
                "type": "boolean",
                "example": false
              },
              "isPreliminary": {
                "type": "boolean",
                "example": true
              },
              "recommendationMode": {
                "type": "string",
                "enum": [
                  "standard-catalog",
                  "custom-engineering-required"
                ]
              },
              "assumptions": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Calculate Transformer Loss Roi

calculateTransformerLossRoi

Use this when the user needs Voltformer to calculate loss-cost difference, CO2 impact, and optional simple payback from stated baseline and candidate transformer loss values. The comparison never estimates missing losses or certifies compliance.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
baselineP0Watts, baselinePkWatts, candidateP0Watts, candidatePkWatts
İsteğe bağlı girdiler
loadFactorPercent, electricityPriceUsdPerKwh, operatingHoursPerYear, analysisYears, incrementalInvestmentUSD, gridEmissionFactorKgPerKwh, discountRatePercent
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "baselineP0Watts": {
        "type": "number",
        "minimum": 0
      },
      "baselinePkWatts": {
        "type": "number",
        "minimum": 0
      },
      "candidateP0Watts": {
        "type": "number",
        "minimum": 0
      },
      "candidatePkWatts": {
        "type": "number",
        "minimum": 0
      },
      "loadFactorPercent": {
        "type": "number",
        "minimum": 0,
        "maximum": 150,
        "description": "Constant or RMS-equivalent loading as percent of rated current; do not use an arithmetic-average loading for a varying profile."
      },
      "electricityPriceUsdPerKwh": {
        "type": "number",
        "minimum": 0
      },
      "operatingHoursPerYear": {
        "type": "number",
        "minimum": 0,
        "maximum": 8760,
        "description": "Annual transformer energized hours. No-load loss P0 and RMS-equivalent load loss are both accumulated over these hours."
      },
      "analysisYears": {
        "type": "number",
        "minimum": 1,
        "maximum": 50
      },
      "incrementalInvestmentUSD": {
        "type": "number",
        "minimum": 0
      },
      "gridEmissionFactorKgPerKwh": {
        "type": "number",
        "minimum": 0,
        "maximum": 2,
        "default": 0.45,
        "description": "Project grid emission factor in kg CO2e/kWh."
      },
      "discountRatePercent": {
        "type": "number",
        "minimum": 0,
        "maximum": 30,
        "description": "Annual discount rate / WACC in percent for present-worth capitalized loss evaluation (IEEE C57.120 / IEC TOC)."
      }
    },
    "required": [
      "baselineP0Watts",
      "baselinePkWatts",
      "candidateP0Watts",
      "candidatePkWatts"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "annualEnergySavingsKWh": {
        "type": "number"
      },
      "annualFinancialSavingsUSD": {
        "type": "number"
      },
      "candidateAnnualLossKWh": {
        "type": "number"
      },
      "candidateAnnualLossCostUSD": {
        "type": "number"
      },
      "lifetimeTotalSavingsUSD": {
        "type": "number"
      },
      "discountedLifetimeSavingsUSD": {
        "type": "number"
      },
      "factorA_USD_per_W": {
        "type": "number"
      },
      "factorB_USD_per_W": {
        "type": "number"
      },
      "oldCapitalizedLossCostUSD": {
        "type": "number"
      },
      "tier2CapitalizedLossCostUSD": {
        "type": "number"
      },
      "capitalizedLossSavingsUSD": {
        "type": "number"
      },
      "presentWorthFactor": {
        "type": "number"
      },
      "discountRatePercent": {
        "type": "number"
      },
      "co2SavedTonsPerYear": {
        "type": "number"
      },
      "gridEmissionFactorKgPerKwh": {
        "type": "number"
      },
      "paybackYears": {
        "type": [
          "number",
          "null"
        ]
      },
      "simplePaybackYears": {
        "type": [
          "number",
          "null"
        ]
      },
      "discountedPaybackYears": {
        "type": [
          "number",
          "null"
        ]
      },
      "assumptions": {
        "type": "object",
        "properties": {
          "loadRatioBasis": {
            "type": "string",
            "const": "constant-or-rms-equivalent-current"
          },
          "noLoadLossHoursBasis": {
            "type": "string",
            "const": "stated-energized-hours"
          },
          "loadLossModel": {
            "type": "string",
            "const": "pk-times-load-ratio-squared"
          },
          "financialBasis": {
            "type": "string"
          },
          "emissionsBasis": {
            "type": "string",
            "const": "constant-grid-emission-factor"
          },
          "discountRatePercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "presentWorthFactor": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "loadRatioBasis",
          "noLoadLossHoursBasis",
          "loadLossModel",
          "financialBasis",
          "emissionsBasis"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "annualEnergySavingsKWh",
      "annualFinancialSavingsUSD",
      "candidateAnnualLossKWh",
      "candidateAnnualLossCostUSD",
      "lifetimeTotalSavingsUSD",
      "co2SavedTonsPerYear",
      "gridEmissionFactorKgPerKwh",
      "paybackYears",
      "assumptions"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/calculate-loss-roi
{
  "operationId": "calculateTransformerLossRoi",
  "summary": "Calculate annual transformer loss, CO2 and simple payback differences",
  "description": "Use this when the user needs Voltformer to calculate loss-cost difference, CO2 impact, and optional simple payback from stated baseline and candidate transformer loss values. The comparison never estimates missing losses or certifies compliance.",
  "tags": [
    "Tools"
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "baselineP0Watts",
            "baselinePkWatts",
            "candidateP0Watts",
            "candidatePkWatts"
          ],
          "properties": {
            "baselineP0Watts": {
              "type": "number",
              "minimum": 0,
              "description": "Baseline transformer no-load loss P0 in W.",
              "example": 680
            },
            "baselinePkWatts": {
              "type": "number",
              "minimum": 0,
              "description": "Baseline transformer load loss Pk at rated current in W.",
              "example": 7300
            },
            "candidateP0Watts": {
              "type": "number",
              "minimum": 0,
              "description": "Candidate no-load loss P0 in W.",
              "example": 450
            },
            "candidatePkWatts": {
              "type": "number",
              "minimum": 0,
              "description": "Candidate load loss Pk at rated current in W.",
              "example": 5900
            },
            "loadFactorPercent": {
              "type": "number",
              "minimum": 0,
              "maximum": 150,
              "default": 65,
              "example": 65,
              "description": "Constant or RMS-equivalent loading as percent of rated current. An arithmetic-average loading is not sufficient for a varying load profile."
            },
            "electricityPriceUsdPerKwh": {
              "type": "number",
              "minimum": 0,
              "default": 0.14,
              "example": 0.14
            },
            "operatingHoursPerYear": {
              "type": "number",
              "minimum": 0,
              "maximum": 8760,
              "default": 8760,
              "example": 8760,
              "description": "Annual transformer energized hours. No-load loss P0 and RMS-equivalent load loss are both accumulated over these hours."
            },
            "analysisYears": {
              "type": "number",
              "minimum": 1,
              "maximum": 50,
              "default": 25,
              "example": 25
            },
            "incrementalInvestmentUSD": {
              "type": "number",
              "description": "Optional incremental purchase cost of the candidate model; enables paybackYears.",
              "minimum": 0,
              "example": 12000
            },
            "gridEmissionFactorKgPerKwh": {
              "type": "number",
              "minimum": 0,
              "maximum": 2,
              "default": 0.45,
              "description": "Project-specific electricity emission factor in kg CO2e/kWh."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "ROI analysis",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "annualEnergySavingsKWh": {
                "type": "number"
              },
              "annualFinancialSavingsUSD": {
                "type": "number"
              },
              "candidateAnnualLossKWh": {
                "type": "number",
                "description": "Candidate transformer's calculated annual loss energy."
              },
              "candidateAnnualLossCostUSD": {
                "type": "number",
                "description": "Candidate transformer's calculated annual loss cost."
              },
              "lifetimeTotalSavingsUSD": {
                "type": "number"
              },
              "co2SavedTonsPerYear": {
                "type": "number"
              },
              "gridEmissionFactorKgPerKwh": {
                "type": "number",
                "description": "Emission factor used by the calculation in kg CO2e/kWh."
              },
              "paybackYears": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Simple payback in years, or null when incrementalInvestmentUSD is not provided or annual savings are zero."
              }
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

List Country Grid Standards

listCountryGridStandards

Use this when the user needs Voltformer to list or search preliminary country engineering profiles: grid voltages, frequency, transformer standards, operators, climate basis, project defaults and mandatory verification items. Read the returned collection for current coverage.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
continent, frequencyHz, searchQuery, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "continent": {
        "type": "string",
        "enum": [
          "Europe",
          "Americas",
          "Asia",
          "Middle East",
          "Africa",
          "Oceania"
        ]
      },
      "frequencyHz": {
        "type": "integer",
        "enum": [
          50,
          60
        ]
      },
      "searchQuery": {
        "type": "string",
        "description": "Search query for country name, ISO code, grid operator, or standard."
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "total": {
        "type": "integer"
      },
      "limit": {
        "type": "integer"
      },
      "countries": {
        "type": "array",
        "description": "Country engineering profiles; total reports current matching coverage before pagination.",
        "items": {
          "type": "object",
          "description": "Country engineering profiles; total reports current matching coverage before pagination.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "total",
      "limit",
      "countries"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/countries
{
  "operationId": "listCountryGridStandards",
  "summary": "List or filter national power grid standards across supported countries",
  "description": "Use this when the user needs Voltformer to list or search preliminary country engineering profiles: grid voltages, frequency, transformer standards, operators, climate basis, project defaults and mandatory verification items. Read the returned collection for current coverage.",
  "tags": [
    "Grid Standards"
  ],
  "parameters": [
    {
      "name": "continent",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "Europe",
          "Americas",
          "Asia",
          "Middle East",
          "Africa",
          "Oceania"
        ]
      }
    },
    {
      "name": "frequencyHz",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "enum": [
          50,
          60
        ]
      }
    },
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "default": 100
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Filtered list of country grid standard dossiers",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "countries": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CountryGridStandard"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Get Country Grid Standard

getCountryGridStandard

Use this when the user needs Voltformer to get a country engineering profile with grid data, safe project defaults and explicit site/utility unknowns. It is not regulatory approval.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
countryCodeOrName
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "countryCodeOrName": {
        "type": "string",
        "minLength": 2,
        "maxLength": 100,
        "description": "Exact 2-letter ISO alpha-2 code (e.g. TR, DE, US, SA) or exact localized country name."
      }
    },
    "required": [
      "countryCodeOrName"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "description": "A country power, transformer and grid engineering profile with project defaults and verification guardrails.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/countries/{code}
{
  "operationId": "getCountryGridStandard",
  "summary": "Get comprehensive national grid standards for a specific country",
  "description": "Use this when the user needs Voltformer to get a country engineering profile with grid data, safe project defaults and explicit site/utility unknowns. It is not regulatory approval.",
  "tags": [
    "Grid Standards"
  ],
  "parameters": [
    {
      "name": "code",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "2-letter ISO country code (e.g. CA, DE, US, JP) or country name"
    }
  ],
  "responses": {
    "200": {
      "description": "Country grid standard dossier",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CountryGridStandard"
          }
        }
      }
    },
    "404": {
      "description": "Country standard not found"
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Validate Transformer Country Compatibility

validateTransformerCountryCompatibility

Use this when the user needs Voltformer to screen stated transformer frequency, primary kV, secondary V and vector group against preliminary country reference data. This does not verify regulatory compliance or utility approval.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
countryCodeOrName
İsteğe bağlı girdiler
phases, frequencyHz, primaryVoltageKV, secondaryVoltageV, vectorGroup
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "countryCodeOrName": {
        "type": "string",
        "minLength": 2,
        "maxLength": 100,
        "description": "Exact target-country ISO alpha-2 code or exact localized name."
      },
      "phases": {
        "type": "integer",
        "enum": [
          1,
          3
        ],
        "description": "Transformer phase count. Required for a complete result and to distinguish three-phase line-to-line LV ratings from phase-to-neutral utilization voltages."
      },
      "frequencyHz": {
        "type": "integer",
        "enum": [
          50,
          60
        ],
        "description": "Operating frequency in Hz (50 or 60)."
      },
      "primaryVoltageKV": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 1200,
        "description": "Primary rated voltage in kV (e.g. 34.5, 20, 11, 13.8)."
      },
      "secondaryVoltageV": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 1200000,
        "description": "Secondary rated voltage in V, including LV/MV/HV secondaries (e.g. 400, 480, 34500)."
      },
      "vectorGroup": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80,
        "description": "Complete vector-group configuration for a three-phase transformer (e.g. Dyn11, Dyn5, YNd11); omit for a single-phase unit."
      }
    },
    "required": [
      "countryCodeOrName"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "valid": {
        "type": "boolean"
      },
      "status": {
        "type": "string",
        "enum": [
          "pass",
          "fail",
          "unknown"
        ]
      },
      "complete": {
        "type": "boolean"
      },
      "regulatoryComplianceVerified": {
        "type": "boolean",
        "const": false
      },
      "country": {
        "type": [
          "object",
          "null"
        ],
        "description": "Target country grid standards summary, or null when the country is unknown.",
        "additionalProperties": true
      },
      "frequencyMatch": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Null when frequency was not supplied."
      },
      "primaryVoltageMatch": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Null when primary voltage was not supplied."
      },
      "secondaryVoltageMatch": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Null when secondary voltage, or its required LV phase context, was not supplied."
      },
      "vectorGroupStandard": {
        "type": [
          "boolean",
          "null"
        ],
        "description": "Null when not supplied or not applicable to a single-phase unit."
      },
      "warnings": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "recommendations": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "valid",
      "status",
      "complete",
      "regulatoryComplianceVerified",
      "country",
      "frequencyMatch",
      "primaryVoltageMatch",
      "secondaryVoltageMatch",
      "vectorGroupStandard",
      "warnings",
      "recommendations"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/countries/validate
{
  "operationId": "validateTransformerCountryCompatibility",
  "summary": "Validate transformer electrical parameters against destination country grid standard",
  "description": "Use this when the user needs Voltformer to screen stated transformer frequency, primary kV, secondary V and vector group against preliminary country reference data. This does not verify regulatory compliance or utility approval.",
  "tags": [
    "Grid Standards"
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "countryCodeOrName": {
              "type": "string",
              "minLength": 2,
              "maxLength": 100,
              "description": "Exact ISO alpha-2 code or exact localized country name."
            },
            "phases": {
              "type": "integer",
              "enum": [
                1,
                3
              ],
              "description": "Transformer phase count. Required for a complete result and to distinguish three-phase line-to-line LV ratings from phase-to-neutral utilization voltages."
            },
            "frequencyHz": {
              "type": "integer",
              "enum": [
                50,
                60
              ]
            },
            "primaryVoltageKV": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 1200
            },
            "secondaryVoltageV": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 1200000,
              "description": "Secondary rated voltage in V; LV, MV and HV secondaries are supported."
            },
            "vectorGroup": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "description": "Required for a complete three-phase result; omit for a single-phase transformer."
            }
          },
          "required": [
            "countryCodeOrName"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Validation result with warnings and engineering recommendations",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "valid": {
                "type": "boolean"
              },
              "status": {
                "type": "string",
                "enum": [
                  "pass",
                  "fail",
                  "unknown"
                ]
              },
              "complete": {
                "type": "boolean"
              },
              "regulatoryComplianceVerified": {
                "type": "boolean",
                "const": false
              },
              "frequencyMatch": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True or false when frequency was supplied; null when it was not supplied."
              },
              "primaryVoltageMatch": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True or false when primary voltage was supplied; null when it was not supplied."
              },
              "secondaryVoltageMatch": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True or false when secondary voltage and required LV phase context were supplied; otherwise null."
              },
              "vectorGroupStandard": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "True or false for a supplied three-phase vector group; null when absent or not applicable."
              },
              "country": {
                "type": [
                  "object",
                  "null"
                ]
              },
              "warnings": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "recommendations": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "valid",
              "status",
              "complete",
              "regulatoryComplianceVerified",
              "country",
              "frequencyMatch",
              "primaryVoltageMatch",
              "secondaryVoltageMatch",
              "vectorGroupStandard",
              "warnings",
              "recommendations"
            ],
            "additionalProperties": false
          }
        }
      }
    }
  },
  "x-openai-isConsequential": false,
  "security": []
}

Submit Rfq Quote Request

submitRfqQuoteRequest

Use this when the user needs Voltformer to create a durable quotation request for known catalog products. Before calling: prefill from the member profile/project, ask for missing operational details and whether a PDF specification exists, show a final summary, and obtain explicit user confirmation. Omit unknown optional properties.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · rfq:create
Zorunlu girdiler
companyName, items
İsteğe bağlı girdiler
contactName, email, phone, city, taxNumber, deliveryAddress, projectName, projectType, language, requestedDeliveryTerms, requestedDeliveryDate, installationScope, technicalSpecificationStatus, siteConditionsStatus, destinationCountryCode, countryRevision, prospectiveFaultCurrentKA, prospectiveFaultDurationSeconds, siteAltitudeMeters, minimumAmbientTemperatureC, maximumAmbientTemperatureC, ctPrimaryA, ctSecondaryA, ctConnectionSide, auxiliaryDcVoltageV, requireIec61850, requireSampledValues, requireRedundantNetwork, notes, projectId, agentName, agentVersion, idempotencyKey, targetBudgetUSD, urgencyLevel, userConfirmed, technicalSpecification
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "companyName": {
        "type": "string",
        "minLength": 2,
        "maxLength": 200
      },
      "contactName": {
        "type": "string",
        "maxLength": 200
      },
      "email": {
        "type": "string",
        "maxLength": 254,
        "description": "Deprecated and ignored: Voltformer has no email channel. The requester follows the RFQ and talks to the team through directFollowupLink."
      },
      "phone": {
        "type": "string",
        "maxLength": 40,
        "description": "Deprecated and ignored: Voltformer has no phone channel."
      },
      "city": {
        "type": "string",
        "maxLength": 100
      },
      "taxNumber": {
        "type": "string",
        "maxLength": 60,
        "description": "Optional business tax registration number only when needed for the quotation; omit personal tax IDs, national IDs and other government identity numbers."
      },
      "deliveryAddress": {
        "type": "string",
        "maxLength": 500,
        "description": "Optional delivery/site address. Omit when unknown; never send null or undefined."
      },
      "projectName": {
        "type": "string",
        "maxLength": 200
      },
      "projectType": {
        "type": "string",
        "maxLength": 120
      },
      "language": {
        "type": "string",
        "enum": [
          "tr",
          "en",
          "de",
          "ru",
          "es",
          "ar",
          "it",
          "pt"
        ],
        "description": "Optional language of the requester for the receipt message (default: English). Use the user's language."
      },
      "requestedDeliveryTerms": {
        "type": "string",
        "enum": [
          "exw",
          "fca",
          "cpt",
          "cip",
          "dap",
          "dpu",
          "ddp",
          "fas",
          "fob",
          "cfr",
          "cif"
        ],
        "description": "Incoterms 2020 rule code. State the agreed named place or port in deliveryAddress or notes."
      },
      "requestedDeliveryDate": {
        "type": "string",
        "maxLength": 80,
        "description": "Requested date in ISO YYYY-MM-DD where known, or an explicit value such as flexible."
      },
      "installationScope": {
        "type": "string",
        "enum": [
          "supply-only",
          "installation",
          "installation-and-commissioning",
          "unknown"
        ]
      },
      "technicalSpecificationStatus": {
        "type": "string",
        "enum": [
          "attached",
          "none",
          "will-provide-later"
        ],
        "description": "Must reflect the user answer after explicitly asking whether a PDF specification exists."
      },
      "siteConditionsStatus": {
        "type": "string",
        "enum": [
          "standard",
          "provided",
          "in-specification",
          "unknown"
        ],
        "description": "Explicit user answer about altitude, ambient and indoor/outdoor site conditions."
      },
      "destinationCountryCode": {
        "type": "string",
        "minLength": 2,
        "maxLength": 2,
        "pattern": "^[A-Za-z]{2}
quot;, "description": "Optional 2-letter ISO country code for server-side preliminary grid compatibility verification (e.g. CA, DE, US, JP, BR). Current local utility requirements still require final verification." }, "countryRevision": { "type": "string", "pattern": "^[a-f0-9]{64}
quot;, "description": "Optional immutable country-reference revision selected by the user; a stale choice is rejected for review." }, "prospectiveFaultCurrentKA": { "type": "number", "exclusiveMinimum": 0, "maximum": 150, "description": "Optional three-phase symmetrical RMS prospective short-circuit current at the connection point in kA; do not supply peak/making current. Rating duration still requires verification." }, "prospectiveFaultDurationSeconds": { "type": "number", "exclusiveMinimum": 0, "maximum": 10, "description": "Optional total fault-clearing time at the same connection point in seconds, obtained from the protection coordination study." }, "siteAltitudeMeters": { "type": "number", "minimum": -500, "maximum": 6000, "description": "Project site elevation relative to mean sea level in metres. Used as a design-basis input; equipment altitude correction and derating still require manufacturer verification." }, "minimumAmbientTemperatureC": { "type": "number", "minimum": -80, "maximum": 60, "description": "Minimum project design ambient temperature in degrees Celsius." }, "maximumAmbientTemperatureC": { "type": "number", "minimum": -50, "maximum": 80, "description": "Maximum project design ambient temperature in degrees Celsius. Must be greater than or equal to the minimum design ambient." }, "ctPrimaryA": { "type": "number", "exclusiveMinimum": 0, "description": "Optional CT primary rating in amperes; supply together with ctSecondaryA." }, "ctSecondaryA": { "type": "number", "enum": [ 1, 5 ], "description": "Optional CT secondary rating in amperes; supply together with ctPrimaryA." }, "ctConnectionSide": { "type": "string", "enum": [ "primary", "secondary" ], "description": "Transformer side where the stated CT ratio is installed; required with CT ratings." }, "auxiliaryDcVoltageV": { "type": "number", "exclusiveMinimum": 0, "description": "Optional protection and trip circuit auxiliary DC voltage." }, "requireIec61850": { "type": "boolean", "description": "Whether IEC 61850 integration is required." }, "requireSampledValues": { "type": "boolean", "description": "Whether IEC 61850 Sampled Values/process bus support is required." }, "requireRedundantNetwork": { "type": "boolean", "description": "Whether PRP or HSR network redundancy is required." }, "notes": { "type": "string", "maxLength": 2000 }, "projectId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot;, "description": "Optional id of one of the member projects (listProjects/upsertProject) to link this RFQ to." }, "agentName": { "type": "string", "maxLength": 120 }, "agentVersion": { "type": "string", "maxLength": 80 }, "idempotencyKey": { "type": "string", "minLength": 8, "maxLength": 200, "description": "Stable caller-generated key for safe MCP retries." }, "targetBudgetUSD": { "type": "number", "minimum": 0 }, "urgencyLevel": { "type": "string", "maxLength": 80 }, "userConfirmed": { "type": "boolean", "enum": [ true ], "description": "Set true only after showing the final RFQ summary and receiving immediate explicit user confirmation." }, "technicalSpecification": { "type": "object", "description": "Validated PDF metadata returned by uploadSpecificationInline or finalizeSpecificationUpload. Ask the user whether a specification exists before final RFQ confirmation.", "properties": { "name": { "type": "string", "maxLength": 160, "pattern": "\\.pdf
quot; }, "path": { "type": "string", "maxLength": 240, "pattern": "^users/.+/rfq-specifications/.+\\.pdf
quot; }, "url": { "type": "string", "maxLength": 2000 }, "size": { "type": "number", "minimum": 1, "maximum": 83886080 } }, "required": [ "name", "path", "size" ], "additionalProperties": false }, "items": { "type": "array", "minItems": 1, "maxItems": 50, "items": { "type": "object", "properties": { "skuOrId": { "type": "string" }, "catalogRevision": { "type": "string", "pattern": "^[a-f0-9]{64}
quot;, "description": "Optional immutable catalog data revision selected by the user; a stale choice is rejected for review." }, "quantity": { "type": "integer", "minimum": 1, "maximum": 10000 }, "requiredPowerKVA": { "type": "number", "exclusiveMinimum": 0 }, "primaryVoltageKV": { "type": "number", "exclusiveMinimum": 0 }, "secondaryVoltageKV": { "type": "number", "exclusiveMinimum": 0 }, "customWinding": { "type": "string" }, "customVectorGroup": { "type": "string", "maxLength": 80 }, "selectedOptionalAccessories": { "type": "array", "maxItems": 50, "items": { "type": "string", "maxLength": 160 } }, "catalogSpecificationAccepted": { "type": "boolean", "description": "Explicit user answer: true means the selected catalog model specifications are accepted; false requires deviations or a PDF." }, "notes": { "type": "string", "maxLength": 2000 } }, "required": [ "skuOrId", "quantity" ], "additionalProperties": false } } }, "required": [ "companyName", "items" ], "additionalProperties": false }, "outputSchema": { "type": "object", "properties": { "success": { "type": "boolean" }, "rfqReferenceCode": { "type": "string" }, "status": { "type": "string" }, "language": { "type": "string", "description": "Language of the receipt message." }, "message": { "type": "string" }, "estimatedOfferTimeHours": { "type": "number" }, "assignedEngineer": { "type": "string" }, "directFollowupLink": { "type": "string", "description": "Private tracking link for the requester: opens the request status and its conversation with the Voltformer team on any device without signing in. Voltformer answers only on the platform (no email or phone), so hand this link to the requester and share it with no one else." }, "submittedItems": { "type": "integer" }, "timestamp": {} }, "required": [ "success", "rfqReferenceCode", "status", "message", "estimatedOfferTimeHours", "assignedEngineer", "directFollowupLink", "submittedItems", "timestamp" ], "additionalProperties": false }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "rfq:create" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/rfq
{
  "operationId": "submitRfqQuoteRequest",
  "summary": "Submit autonomous RFQ - instant reference code",
  "description": "Use this when the user needs Voltformer to create a durable quotation request for known catalog products. Before calling: prefill from the member profile/project, ask for missing operational details and whether a PDF specification exists, show a final summary, and obtain explicit user confirmation. Omit unknown optional properties.",
  "parameters": [
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "minLength": 8,
        "maxLength": 200
      },
      "description": "Stable caller-generated key for safe retry of the same RFQ."
    }
  ],
  "tags": [
    "RFQ"
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentRfqPayload",
          "properties": {
            "projectId": {
              "type": "string",
              "maxLength": 128,
              "description": "Optional id of the member's project to link this RFQ to. Requires an authenticated submitter; the project must belong to them."
            }
          }
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "RFQ registered",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentRfqResponse"
          }
        }
      }
    },
    "400": {
      "description": "Validation error - missing companyName/contactName/items or no SKU matched. Body includes error string with valid SKUs."
    }
  },
  "security": [
    {
      "VoltformerOAuth": [
        "rfq:create"
      ]
    }
  ],
  "x-openai-isConsequential": true
}

List Company Profiles

listCompanyProfiles

Use this when the user needs Voltformer to list the connected member's saved company profiles (used to prefill RFQ customer data). Requires a connected member.

Erişim
Salt okunur · oauth2 · profile:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "profiles": {
        "type": "array",
        "description": "Saved company profiles.",
        "items": {
          "type": "object",
          "description": "Saved company profiles.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "profiles"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "oauth2",
      "scopes": [
        "profile:read"
      ]
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/agents/company-profiles
{
  "security": [
    {
      "VoltformerOAuth": [
        "profile:read"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "listCompanyProfiles",
  "summary": "List the member's company profiles",
  "description": "Use this when the user needs Voltformer to list the connected member's saved company profiles (used to prefill RFQ customer data). Requires a connected member.",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "responses": {
    "200": {
      "description": "Company profile list."
    },
    "401": {
      "description": "Valid agent key required."
    }
  },
  "x-openai-isConsequential": false
}

Upsert Company Profile

upsertCompanyProfile

Use this when the user needs Voltformer to create or replace company/contact fields in a connected member profile. On update, omitted optional fields are cleared; read the existing profile and preserve required values.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · profile:write
Zorunlu girdiler
companyName
İsteğe bağlı girdiler
id, contactName, city, taxNumber, deliveryAddress
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot;, "description": "Existing profile id to update; omit to create." }, "companyName": { "type": "string", "minLength": 2, "maxLength": 200 }, "contactName": { "type": "string", "maxLength": 200 }, "city": { "type": "string", "maxLength": 100 }, "taxNumber": { "type": "string", "maxLength": 60, "description": "Optional business tax registration number only when needed for quotation billing; omit personal tax IDs, national IDs and other government identity numbers." }, "deliveryAddress": { "type": "string", "maxLength": 500 } }, "required": [ "companyName" ] }, "outputSchema": { "type": "object", "description": "The created or updated company profile.", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "profile:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/agents/company-profiles
{
  "security": [
    {
      "VoltformerOAuth": [
        "profile:write"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "upsertCompanyProfile",
  "summary": "Create or update a company profile",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "companyName"
          ],
          "properties": {
            "id": {
              "type": "string",
              "maxLength": 128,
              "description": "Existing profile id to update; omit to create."
            },
            "companyName": {
              "type": "string",
              "minLength": 2,
              "maxLength": 200
            },
            "contactName": {
              "type": "string",
              "maxLength": 200
            },
            "city": {
              "type": "string",
              "maxLength": 100
            },
            "taxNumber": {
              "type": "string",
              "maxLength": 60,
              "description": "Optional business tax registration number only when needed for quotation billing; omit personal tax IDs, national IDs and other government identity numbers."
            },
            "deliveryAddress": {
              "type": "string",
              "maxLength": 500
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Saved profile (includes id)."
    },
    "400": {
      "description": "Invalid payload."
    },
    "401": {
      "description": "Valid agent key required."
    },
    "404": {
      "description": "Profile id not found."
    }
  },
  "description": "Use this when the user needs Voltformer to create or replace company/contact fields in a connected member profile. On update, omitted optional fields are cleared; read the existing profile and preserve required values.",
  "x-openai-isConsequential": true
}

Delete Company Profile

deleteCompanyProfile

Use this when the user needs Voltformer to delete one of the connected member's company profiles by id. Requires a connected member.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · profile:write
Zorunlu girdiler
id
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "id" ] }, "outputSchema": { "type": "object", "properties": { "deleted": { "type": "boolean" }, "id": { "type": "string" } }, "required": [ "deleted", "id" ], "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "profile:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: DELETE /api/v1/agents/company-profiles/{id}
{
  "security": [
    {
      "VoltformerOAuth": [
        "profile:write"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "deleteCompanyProfile",
  "summary": "Delete a company profile",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    },
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Deleted."
    },
    "401": {
      "description": "Valid agent key required."
    },
    "404": {
      "description": "Profile not found."
    }
  },
  "description": "Use this when the user needs Voltformer to delete one of the connected member's company profiles by id. Requires a connected member.",
  "x-openai-isConsequential": true
}

List Projects

listProjects

Use this when the user needs Voltformer to list the connected member's projects. Requires a connected member.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "projects": {
        "type": "array",
        "description": "Saved member projects.",
        "items": {
          "type": "object",
          "description": "Saved member projects.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "projects"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "oauth2",
      "scopes": [
        "project:read"
      ]
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/agents/projects
{
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "listProjects",
  "summary": "List the member's projects",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "responses": {
    "200": {
      "description": "Project list, newest activity first."
    },
    "401": {
      "description": "Valid agent key required."
    }
  },
  "description": "Use this when the user needs Voltformer to list the connected member's projects. Requires a connected member.",
  "x-openai-isConsequential": false
}

Upsert Project

upsertProject

Use this when the user needs Voltformer to create or update a connected member project, including engineering inputs, equipment and status. Supplied fields overwrite existing values; changing country clears unstated connection-dependent values.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
—
İsteğe bağlı girdiler
id, name, projectType, deliveryTerms, destinationCountryCode, nominalVoltageKV, frequencyHz, prospectiveFaultCurrentKA, prospectiveFaultDurationSeconds, siteAltitudeMeters, minimumAmbientTemperatureC, maximumAmbientTemperatureC, earthingSystem, installationEnvironment, requiredStandards, equipment, notes, status
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot;, "description": "Existing project id to patch; omitted fields are preserved. Omit id to create. Changing destination country clears omitted connection voltage, fault duty and earthing fields." }, "name": { "type": "string", "minLength": 2, "maxLength": 200, "description": "Required when creating; optional when patching an existing id." }, "projectType": { "type": "string", "maxLength": 120 }, "deliveryTerms": { "type": "string", "enum": [ "exw", "fca", "cpt", "cip", "dap", "dpu", "ddp", "fas", "fob", "cfr", "cif" ], "description": "Incoterms 2020 rule code; the named place or port belongs in the project notes." }, "destinationCountryCode": { "type": "string", "pattern": "^[A-Za-z]{2}
quot;, "description": "Target ISO alpha-2 country profile. Fixed frequency and required standards may be derived from it; nominal connection voltage, fault duty and earthing are never inferred when multiple national options exist." }, "nominalVoltageKV": { "type": "number", "exclusiveMinimum": 0, "maximum": 1200, "description": "Project point-of-connection nominal voltage in kV. Supply the utility-confirmed level; country profiles expose candidates but do not guess among multiple levels." }, "frequencyHz": { "type": "number", "enum": [ 50, 60 ], "description": "Optional project grid frequency; omit to use a fixed country profile frequency where available." }, "prospectiveFaultCurrentKA": { "type": "number", "exclusiveMinimum": 0, "maximum": 150, "description": "Optional three-phase symmetrical RMS prospective short-circuit current Ik″ at the connection point in kA; do not supply peak/making current. Rating duration remains subject to engineering verification." }, "prospectiveFaultDurationSeconds": { "type": "number", "exclusiveMinimum": 0, "maximum": 10, "description": "Optional total fault-clearing time at the same connection point in seconds, obtained from the protection coordination study." }, "siteAltitudeMeters": { "type": "number", "minimum": -500, "maximum": 6000, "description": "Project site elevation relative to mean sea level in metres; never infer it from a country profile." }, "minimumAmbientTemperatureC": { "type": "number", "minimum": -80, "maximum": 60, "description": "Minimum project design ambient temperature in degrees Celsius." }, "maximumAmbientTemperatureC": { "type": "number", "minimum": -50, "maximum": 80, "description": "Maximum project design ambient temperature in degrees Celsius; must not be lower than the minimum." }, "earthingSystem": { "type": "string", "maxLength": 120, "description": "Optional neutral/earthing arrangement supplied by the project engineer or utility." }, "installationEnvironment": { "type": "string", "enum": [ "indoor", "outdoor", "mixed" ] }, "requiredStandards": { "type": "string", "maxLength": 500, "description": "Optional utility, IEC, IEEE or local standards; omit to copy the country profile standards." }, "equipment": { "type": "array", "maxItems": 100, "description": "Pre-RFQ project equipment schedule.", "items": { "type": "object", "additionalProperties": false, "properties": { "productId": { "type": "string", "minLength": 2, "maxLength": 160 }, "productKind": { "type": "string", "enum": [ "transformer", "switchgear", "protection-control", "generator", "grid-equipment", "solar" ] }, "quantity": { "type": "integer", "minimum": 1, "maximum": 999 }, "addedAt": { "type": "string", "maxLength": 80 } }, "required": [ "productId", "productKind", "quantity" ] } }, "notes": { "type": "string", "maxLength": 2000 }, "status": { "type": "string", "enum": [ "PLANNING", "ACTIVE", "COMPLETED", "CANCELLED" ] } } }, "outputSchema": { "type": "object", "description": "The created or updated member project.", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/agents/projects
{
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "upsertProject",
  "summary": "Create or update a project",
  "description": "Use this when the user needs Voltformer to create or update a connected member project, including engineering inputs, equipment and status. Supplied fields overwrite existing values; changing country clears unstated connection-dependent values.",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "maxLength": 128,
              "description": "Existing project id to patch; omitted fields are preserved. Omit id to create. Changing destination country clears omitted connection voltage, fault duty and earthing fields."
            },
            "name": {
              "type": "string",
              "minLength": 2,
              "maxLength": 200,
              "description": "Required when creating; optional when patching an existing id."
            },
            "projectType": {
              "type": "string",
              "maxLength": 120
            },
            "deliveryTerms": {
              "type": "string",
              "enum": [
                "exw",
                "fca",
                "cpt",
                "cip",
                "dap",
                "dpu",
                "ddp",
                "fas",
                "fob",
                "cfr",
                "cif"
              ],
              "description": "Incoterms 2020 rule code; state the agreed named place or port in project notes."
            },
            "destinationCountryCode": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}
quot;, "description": "Target ISO alpha-2 country engineering profile. Fixed frequency and required standards may be derived from it; nominal connection voltage, fault duty and earthing are never inferred when multiple national options exist." }, "nominalVoltageKV": { "type": "number", "nullable": true, "exclusiveMinimum": 0, "maximum": 1200, "description": "Project point-of-connection nominal voltage in kV. Supply the utility-confirmed level; country profiles expose candidates but do not guess among multiple levels." }, "frequencyHz": { "type": "number", "nullable": true, "enum": [ 50, 60 ], "description": "Optional project grid frequency; omit to use a fixed country profile frequency where available." }, "prospectiveFaultCurrentKA": { "type": "number", "nullable": true, "exclusiveMinimum": 0, "maximum": 150, "description": "Optional three-phase symmetrical RMS prospective short-circuit current Ik″ at the connection point in kA; do not supply peak/making current. Rating duration remains subject to engineering verification." }, "prospectiveFaultDurationSeconds": { "type": "number", "nullable": true, "exclusiveMinimum": 0, "maximum": 10, "description": "Optional total fault-clearing time at the same connection point in seconds, obtained from the protection coordination study." }, "siteAltitudeMeters": { "type": "number", "nullable": true, "minimum": -500, "maximum": 6000, "description": "Project site elevation relative to mean sea level in metres. Never inferred from a country profile; altitude correction and derating require equipment-specific verification." }, "minimumAmbientTemperatureC": { "type": "number", "nullable": true, "minimum": -80, "maximum": 60, "description": "Minimum project design ambient temperature in degrees Celsius." }, "maximumAmbientTemperatureC": { "type": "number", "nullable": true, "minimum": -50, "maximum": 80, "description": "Maximum project design ambient temperature in degrees Celsius; must not be lower than the minimum." }, "earthingSystem": { "type": "string", "maxLength": 120 }, "installationEnvironment": { "type": "string", "nullable": true, "enum": [ "indoor", "outdoor", "mixed" ] }, "requiredStandards": { "type": "string", "maxLength": 500, "description": "Optional standards override; omit to copy the country engineering profile standards." }, "equipment": { "type": "array", "maxItems": 100, "description": "Pre-RFQ project equipment schedule.", "items": { "type": "object", "additionalProperties": false, "required": [ "productId", "productKind", "quantity" ], "properties": { "productId": { "type": "string", "minLength": 2, "maxLength": 160 }, "productKind": { "type": "string", "enum": [ "transformer", "switchgear", "protection-control" ] }, "quantity": { "type": "integer", "minimum": 1, "maximum": 999 }, "addedAt": { "type": "string", "maxLength": 80 } } } }, "notes": { "type": "string", "maxLength": 2000 }, "status": { "type": "string", "enum": [ "PLANNING", "ACTIVE", "COMPLETED", "CANCELLED" ], "default": "PLANNING" } } } } } }, "responses": { "200": { "description": "Saved project (includes id)." }, "400": { "description": "Invalid payload or status." }, "401": { "description": "Valid agent key required." }, "404": { "description": "Project id not found." } }, "x-openai-isConsequential": true }

Get Project

getProject

Use this when the user needs Voltformer to get a project with its linked RFQs (project management view). Requires a connected member.

Erişim
Salt okunur · oauth2 · project:read, rfq:read
Zorunlu girdiler
id
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "id" ] }, "outputSchema": { "type": "object", "description": "A member project and its linked RFQs.", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read", "rfq:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: GET /api/v1/agents/projects/{id}
{
  "security": [
    {
      "VoltformerOAuth": [
        "project:read",
        "rfq:read"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "getProject",
  "summary": "Get a project with its linked RFQs",
  "description": "Use this when the user needs Voltformer to get a project with its linked RFQs (project management view). Requires a connected member.",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    },
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Project with rfqCount and rfqs."
    },
    "401": {
      "description": "Valid agent key required."
    },
    "404": {
      "description": "Project not found."
    }
  },
  "x-openai-isConsequential": false
}

Delete Project

deleteProject

Use this when the user needs Voltformer to delete one of the connected member's projects by id. Requires a connected member.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
id
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "id" ] }, "outputSchema": { "type": "object", "properties": { "deleted": { "type": "boolean" }, "id": { "type": "string" } }, "required": [ "deleted", "id" ], "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: DELETE /api/v1/agents/projects/{id}
{
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "deleteProject",
  "summary": "Delete a project",
  "description": "Use this when the user needs Voltformer to delete one of the connected member's projects by id. Requires a connected member.",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    },
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Deleted."
    },
    "401": {
      "description": "Valid agent key required."
    },
    "404": {
      "description": "Project not found."
    }
  },
  "x-openai-isConsequential": true
}

List Favorites

listFavorites

Use this when the user needs Voltformer to list the connected member's saved shortlist of catalog product ids. Requires a connected member.

Erişim
Salt okunur · oauth2 · favorites:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "ownerUid": {
        "type": "string"
      },
      "productIds": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "total": {
        "type": "integer"
      }
    },
    "required": [
      "ownerUid",
      "productIds",
      "total"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "oauth2",
      "scopes": [
        "favorites:read"
      ]
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: GET /api/v1/agents/favorites
{
  "security": [
    {
      "VoltformerOAuth": [
        "favorites:read"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "listFavorites",
  "summary": "List the member's shortlist",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "responses": {
    "200": {
      "description": "Product id list with total."
    },
    "401": {
      "description": "Valid agent key required."
    }
  },
  "description": "Use this when the user needs Voltformer to list the connected member's saved shortlist of catalog product ids. Requires a connected member.",
  "x-openai-isConsequential": false
}

Set Favorites

setFavorites

Use this when the user needs Voltformer to replace the connected member's shortlist with a new list of catalog product ids. Requires a connected member.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · favorites:write
Zorunlu girdiler
productIds
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "productIds": {
        "type": "array",
        "maxItems": 500,
        "items": {
          "type": "string"
        },
        "description": "Complete shortlist of catalog product ids (replaces the current list)."
      }
    },
    "required": [
      "productIds"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "ownerUid": {
        "type": "string"
      },
      "productIds": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "total": {
        "type": "integer"
      }
    },
    "required": [
      "ownerUid",
      "productIds",
      "total"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "oauth2",
      "scopes": [
        "favorites:write"
      ]
    }
  ],
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": false,
    "idempotentHint": true
  }
}
REST sözleşmesi: PUT /api/v1/agents/favorites
{
  "security": [
    {
      "VoltformerOAuth": [
        "favorites:write"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "setFavorites",
  "summary": "Replace the member's shortlist",
  "description": "Use this when the user needs Voltformer to replace the connected member's shortlist with a new list of catalog product ids. Requires a connected member.",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "productIds"
          ],
          "properties": {
            "productIds": {
              "type": "array",
              "maxItems": 500,
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Updated shortlist."
    },
    "400": {
      "description": "productIds must be an array of at most 500 ids."
    },
    "401": {
      "description": "Valid agent key required."
    }
  },
  "x-openai-isConsequential": true
}

List Rfqs

listRfqs

Use this when the user needs Voltformer to list the connected member's RFQ requests with their current status (results). Use projectId for the project-management view. Requires a connected member.

Erişim
Salt okunur · oauth2 · rfq:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
projectId
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot;, "description": "Optional member project id - returns the project-management view (project + its linked RFQs). Without it, returns the latest 100 member RFQs." } } }, "outputSchema": { "type": "object", "description": "The member RFQ list, or a project with its linked RFQs.", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "rfq:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: GET /api/v1/agents/rfqs
{
  "operationId": "listRfqs",
  "summary": "List RFQs submitted by this agent",
  "description": "Use this when the user needs Voltformer to list the connected member's RFQ requests with their current status (results). Use projectId for the project-management view. Requires a connected member.",
  "security": [
    {
      "VoltformerOAuth": [
        "rfq:read"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    },
    {
      "name": "projectId",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Scope results to a member project; returns the project with its linked RFQs."
    }
  ],
  "responses": {
    "200": {
      "description": "Agent-scoped RFQ list."
    },
    "401": {
      "description": "Valid agent key required."
    }
  },
  "x-openai-isConsequential": false
}

Create Specification Upload Url

createSpecificationUploadUrl

Use this when the user needs Voltformer to get a signed URL for a server-side PDF PUT with the returned uploadHeaders (Content-Type: application/pdf and x-goog-if-generation-match: 0), then call finalizeSpecificationUpload. Each URL creates one immutable object. Requires a connected member; browser uploads use the Firebase SDK.

Erişim
Salt okunur · oauth2 · specification:upload
Zorunlu girdiler
fileName
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "fileName": {
        "type": "string",
        "maxLength": 160,
        "pattern": "\\.pdf
quot;, "description": "Original file name; must end with .pdf. Overall PDF limit: 80 MiB." } }, "required": [ "fileName" ], "description": "Returns a signed URL and required uploadHeaders for a server-side HTTP PUT of a technical-specification PDF, then call finalizeSpecificationUpload. Send Content-Type: application/pdf and x-goog-if-generation-match: 0 exactly as returned; each URL creates one immutable object. Browser uploads use the Firebase SDK." }, "outputSchema": { "type": "object", "properties": { "path": { "type": "string" }, "uploadUrl": { "type": "string" }, "uploadHeaders": { "type": "object", "properties": { "Content-Type": { "type": "string", "const": "application/pdf" }, "x-goog-if-generation-match": { "type": "string", "const": "0" } }, "required": [ "Content-Type", "x-goog-if-generation-match" ], "additionalProperties": false }, "contentType": { "type": "string" }, "maxSizeBytes": { "type": "number" }, "expiresInSeconds": { "type": "number" } }, "required": [ "path", "uploadUrl", "uploadHeaders", "contentType", "maxSizeBytes", "expiresInSeconds" ], "additionalProperties": false }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "specification:upload" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/agents/rfq-specifications/upload-url
{
  "operationId": "createSpecificationUploadUrl",
  "summary": "Get a signed upload URL for a technical-specification PDF",
  "description": "Use this when the user needs Voltformer to get a signed URL for a server-side PDF PUT with the returned uploadHeaders (Content-Type: application/pdf and x-goog-if-generation-match: 0), then call finalizeSpecificationUpload. Each URL creates one immutable object. Requires a connected member; browser uploads use the Firebase SDK.",
  "security": [
    {
      "VoltformerOAuth": [
        "specification:upload"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "fileName"
          ],
          "properties": {
            "fileName": {
              "type": "string",
              "maxLength": 160,
              "description": "Original file name; must end with .pdf."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Signed upload URL and constraints.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "uploadUrl": {
                "type": "string"
              },
              "uploadHeaders": {
                "type": "object",
                "properties": {
                  "Content-Type": {
                    "type": "string",
                    "const": "application/pdf"
                  },
                  "x-goog-if-generation-match": {
                    "type": "string",
                    "const": "0"
                  }
                },
                "required": [
                  "Content-Type",
                  "x-goog-if-generation-match"
                ],
                "additionalProperties": false
              },
              "contentType": {
                "type": "string"
              },
              "maxSizeBytes": {
                "type": "number"
              },
              "expiresInSeconds": {
                "type": "number"
              }
            },
            "required": [
              "path",
              "uploadUrl",
              "uploadHeaders",
              "contentType",
              "maxSizeBytes",
              "expiresInSeconds"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "400": {
      "description": "fileName must be a string ending with .pdf."
    },
    "401": {
      "description": "Valid agent key required."
    },
    "429": {
      "description": "Too many upload requests - retry later."
    },
    "503": {
      "description": "Upload service unavailable."
    }
  },
  "x-openai-isConsequential": false
}

Upload Specification Inline

uploadSpecificationInline

Use this when the user needs Voltformer to upload PDF bytes available to the MCP client (for example a chat attachment) as base64. Maximum decoded size is 5 MiB; larger PDFs up to 80 MiB use createSpecificationUploadUrl. Requires a connected member.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · specification:upload
Zorunlu girdiler
fileName, contentBase64
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "fileName": {
        "type": "string",
        "maxLength": 160,
        "pattern": "\\.pdf
quot;, "description": "Original .pdf file name." }, "contentBase64": { "type": "string", "minLength": 8, "maxLength": 7000000, "description": "Base64 PDF bytes. This chat/MCP bridge accepts at most 5 MiB decoded; use the signed upload URL flow for PDFs up to 80 MiB." } }, "required": [ "fileName", "contentBase64" ], "additionalProperties": false }, "outputSchema": { "type": "object", "properties": { "name": { "type": "string" }, "path": { "type": "string" }, "url": { "type": "string" }, "size": { "type": "number" }, "contentType": { "type": "string" }, "validated": { "type": "boolean" } }, "required": [ "name", "path", "url", "size", "contentType", "validated" ], "additionalProperties": false }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "specification:upload" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/agents/rfq-specifications/inline
{
  "operationId": "uploadSpecificationInline",
  "summary": "Upload a small technical-specification PDF inline",
  "description": "Use this when the user needs Voltformer to upload PDF bytes available to the MCP client (for example a chat attachment) as base64. Maximum decoded size is 5 MiB; larger PDFs up to 80 MiB use createSpecificationUploadUrl. Requires a connected member.",
  "security": [
    {
      "VoltformerOAuth": [
        "specification:upload"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "tags": [
    "Agents"
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "fileName",
            "contentBase64"
          ],
          "properties": {
            "fileName": {
              "type": "string",
              "maxLength": 160,
              "pattern": "\\.pdf
quot; }, "contentBase64": { "type": "string", "minLength": 8, "maxLength": 7000000 } } } } } }, "responses": { "200": { "description": "Validated PDF metadata ready to attach to an RFQ." }, "400": { "description": "Invalid base64, non-PDF content, or file above 5 MiB." }, "401": { "description": "Connected member authorization required." } }, "x-openai-isConsequential": true }

Finalize Specification Upload

finalizeSpecificationUpload

Use this when the user needs Voltformer to validate an uploaded technical-specification PDF so its path can be attached to an RFQ. Requires a connected member.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · specification:finalize
Zorunlu girdiler
path
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "pattern": "^users/.+/rfq-specifications/.+\\.pdf
quot;, "description": "Path returned by createSpecificationUploadUrl; must belong to the connected member." } }, "required": [ "path" ] }, "outputSchema": { "type": "object", "properties": { "path": { "type": "string" }, "size": { "type": "number" }, "contentType": { "type": "string" }, "validated": { "type": "boolean" } }, "required": [ "path", "size", "contentType", "validated" ], "additionalProperties": false }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "specification:finalize" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false, "idempotentHint": true } }
REST sözleşmesi: POST /api/v1/agents/rfq-specifications/finalize
{
  "operationId": "finalizeSpecificationUpload",
  "summary": "Validate an uploaded agent PDF",
  "description": "Use this when the user needs Voltformer to validate an uploaded technical-specification PDF so its path can be attached to an RFQ. Requires a connected member.",
  "parameters": [],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "path"
          ],
          "properties": {
            "path": {
              "type": "string",
              "pattern": "^users/.+/rfq-specifications/.+\\.pdf
quot; } } } } } }, "responses": { "200": { "description": "Validated PDF metadata." }, "400": { "description": "Missing, invalid, or non-PDF object." }, "401": { "description": "Invalid agent key." } }, "security": [ { "VoltformerOAuth": [ "specification:finalize" ] }, { "AgentKey": [] } ], "x-openai-isConsequential": true }

Get Rfq Specification Download Url

getRfqSpecificationDownloadUrl

Use this when the user needs Voltformer to get a short-lived download URL for one of the connected member's uploaded technical-specification PDFs. Requires a connected member.

Erişim
Salt okunur · oauth2 · rfq:read
Zorunlu girdiler
path
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "pattern": "^users/.+/rfq-specifications/.+\\.pdf
quot;, "description": "technicalSpecification.path from an RFQ (visible in listRfqs/getProject results)." } }, "required": [ "path" ] }, "outputSchema": { "type": "object", "properties": { "path": { "type": "string" }, "downloadUrl": { "type": "string" }, "expiresInSeconds": { "type": "number" } }, "required": [ "path", "downloadUrl", "expiresInSeconds" ], "additionalProperties": false }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "rfq:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/agents/rfq-specifications/download-url
{
  "security": [
    {
      "VoltformerOAuth": [
        "rfq:read"
      ]
    },
    {
      "AgentKey": []
    }
  ],
  "operationId": "getRfqSpecificationDownloadUrl",
  "summary": "Get a short-lived download URL for a technical-specification PDF",
  "description": "Use this when the user needs Voltformer to get a short-lived download URL for one of the connected member's uploaded technical-specification PDFs. Requires a connected member.",
  "tags": [
    "Agents"
  ],
  "parameters": [
    {
      "name": "X-Voltformer-Agent-Key",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string"
      },
      "description": "Owner-issued agent key."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "path"
          ],
          "properties": {
            "path": {
              "type": "string",
              "pattern": "^users/.+/rfq-specifications/.+\\.pdf
quot; } } } } } }, "responses": { "200": { "description": "Signed download URL." }, "400": { "description": "Invalid path." }, "401": { "description": "Valid agent key required." }, "404": { "description": "File not found." } }, "x-openai-isConsequential": false }

Get electricity price

get_electricity_price

Use this when the user needs Voltformer to read Voltformer's latest available electricity price reference with its consumer scope, period, tax treatment, separate fixed charges, billing minimums and verification status. Tariff bands are not national averages; unsupported FX conversions remain null. On first use, missing baseline records may be written to the shared price store using configured FX sources.

Erişim
Kayıtlı veriyi değiştirir · noauth · catalog:read
Zorunlu girdiler
country
İsteğe bağlı girdiler
currency, unit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "country": {
        "type": "string",
        "description": "ISO 2-letter country code or country name (e.g. TR, DE, US, FR)."
      },
      "currency": {
        "type": "string",
        "enum": [
          "native",
          "EUR",
          "USD"
        ],
        "description": "Desired target currency."
      },
      "unit": {
        "type": "string",
        "enum": [
          "kWh",
          "MWh"
        ],
        "description": "Desired energy unit."
      }
    },
    "required": [
      "country"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "Voltformer's electricity price reference with consumer scope, period, tax treatment, separate fixed charges, billing minimums and verification status. Tariff bands are distinct from national averages; unsupported FX conversions are null.",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": true
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/get_electricity_price
{
  "operationId": "get_electricity_price",
  "summary": "Get electricity price",
  "description": "Use this when the user needs Voltformer to read Voltformer's latest available electricity price reference with its consumer scope, period, tax treatment, separate fixed charges, billing minimums and verification status. Tariff bands are not national averages; unsupported FX conversions remain null. On first use, missing baseline records may be written to the shared price store using configured FX sources.",
  "security": [],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "country": {
              "type": "string",
              "description": "ISO 2-letter country code or country name (e.g. TR, DE, US, FR)."
            },
            "currency": {
              "type": "string",
              "enum": [
                "native",
                "EUR",
                "USD"
              ],
              "description": "Desired target currency."
            },
            "unit": {
              "type": "string",
              "enum": [
                "kWh",
                "MWh"
              ],
              "description": "Desired energy unit."
            }
          },
          "required": [
            "country"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "description": "Voltformer's electricity price reference with consumer scope, period, tax treatment, separate fixed charges, billing minimums and verification status. Tariff bands are distinct from national averages; unsupported FX conversions are null.",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Compare electricity prices

compare_electricity_prices

Use this when the user needs Voltformer to compare Voltformer's electricity price references across countries while preserving consumer scope, period, tax treatment, separate fixed charges, billing minimums and verification status. Different tariff bands and averages are not equivalent industrial quotations; unsupported FX conversions remain null. On first use, missing baseline records may be written to the shared price store using configured FX sources.

Erişim
Kayıtlı veriyi değiştirir · noauth · catalog:read
Zorunlu girdiler
countries
İsteğe bağlı girdiler
currency, unit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "countries": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of 2-letter ISO country codes (e.g. [\"TR\", \"DE\", \"FR\"])."
      },
      "currency": {
        "type": "string",
        "enum": [
          "native",
          "EUR",
          "USD"
        ]
      },
      "unit": {
        "type": "string",
        "enum": [
          "kWh",
          "MWh"
        ]
      }
    },
    "required": [
      "countries"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "comparison": {
        "type": "array",
        "description": "Comparative electricity prices across requested countries.",
        "items": {
          "type": "object",
          "description": "Comparative electricity prices across requested countries.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "comparison"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": true
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/compare_electricity_prices
{
  "operationId": "compare_electricity_prices",
  "summary": "Compare electricity prices",
  "description": "Use this when the user needs Voltformer to compare Voltformer's electricity price references across countries while preserving consumer scope, period, tax treatment, separate fixed charges, billing minimums and verification status. Different tariff bands and averages are not equivalent industrial quotations; unsupported FX conversions remain null. On first use, missing baseline records may be written to the shared price store using configured FX sources.",
  "security": [],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "countries": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "List of 2-letter ISO country codes (e.g. [\"TR\", \"DE\", \"FR\"])."
            },
            "currency": {
              "type": "string",
              "enum": [
                "native",
                "EUR",
                "USD"
              ]
            },
            "unit": {
              "type": "string",
              "enum": [
                "kWh",
                "MWh"
              ]
            }
          },
          "required": [
            "countries"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "comparison": {
                "type": "array",
                "description": "Comparative electricity prices across requested countries.",
                "items": {
                  "type": "object",
                  "description": "Comparative electricity prices across requested countries.",
                  "additionalProperties": true
                }
              }
            },
            "required": [
              "comparison"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

List electricity prices

list_electricity_prices

Use this when the user needs Voltformer to list Voltformer's electricity price references with their consumer scope, periods, tax treatment, separate fixed charges, billing minimums and verification status. Unverified legacy records are explicitly marked and unsupported FX conversions remain null. On first use, missing baseline records may be written to the shared price store using configured FX sources.

Erişim
Kayıtlı veriyi değiştirir · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
region, currency, unit, limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "region": {
        "type": "string",
        "description": "Region filter (Europe, Americas, Asia-Pacific, Africa, Middle East)."
      },
      "currency": {
        "type": "string",
        "enum": [
          "native",
          "EUR",
          "USD"
        ]
      },
      "unit": {
        "type": "string",
        "enum": [
          "kWh",
          "MWh"
        ]
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 150
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "data": {
        "type": "array",
        "description": "Available country-level electricity prices.",
        "items": {
          "type": "object",
          "description": "Available country-level electricity prices.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": true
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/list_electricity_prices
{
  "operationId": "list_electricity_prices",
  "summary": "List electricity prices",
  "description": "Use this when the user needs Voltformer to list Voltformer's electricity price references with their consumer scope, periods, tax treatment, separate fixed charges, billing minimums and verification status. Unverified legacy records are explicitly marked and unsupported FX conversions remain null. On first use, missing baseline records may be written to the shared price store using configured FX sources.",
  "security": [],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "region": {
              "type": "string",
              "description": "Region filter (Europe, Americas, Asia-Pacific, Africa, Middle East)."
            },
            "currency": {
              "type": "string",
              "enum": [
                "native",
                "EUR",
                "USD"
              ]
            },
            "unit": {
              "type": "string",
              "enum": [
                "kWh",
                "MWh"
              ]
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 150
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "description": "Available country-level electricity prices.",
                "items": {
                  "type": "object",
                  "description": "Available country-level electricity prices.",
                  "additionalProperties": true
                }
              }
            },
            "required": [
              "data"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Get electricity price history

get_electricity_price_history

Use this when the user needs Voltformer to read historical electricity prices for a country. On first use, missing baseline records may be written to the shared price store using configured FX sources.

Erişim
Kayıtlı veriyi değiştirir · noauth · catalog:read
Zorunlu girdiler
country
İsteğe bağlı girdiler
limit
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "country": {
        "type": "string",
        "description": "ISO 2-letter country code."
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    "required": [
      "country"
    ]
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "country_code": {
        "type": "string"
      },
      "history": {
        "type": "array",
        "description": "Historical electricity price records.",
        "items": {
          "type": "object",
          "description": "Historical electricity price records.",
          "additionalProperties": true
        }
      }
    },
    "required": [
      "country_code",
      "history"
    ],
    "additionalProperties": false
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "openWorldHint": true
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/get_electricity_price_history
{
  "operationId": "get_electricity_price_history",
  "summary": "Get electricity price history",
  "description": "Use this when the user needs Voltformer to read historical electricity prices for a country. On first use, missing baseline records may be written to the shared price store using configured FX sources.",
  "security": [],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "country": {
              "type": "string",
              "description": "ISO 2-letter country code."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          "required": [
            "country"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "country_code": {
                "type": "string"
              },
              "history": {
                "type": "array",
                "description": "Historical electricity price records.",
                "items": {
                  "type": "object",
                  "description": "Historical electricity price records.",
                  "additionalProperties": true
                }
              }
            },
            "required": [
              "country_code",
              "history"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Run Sld Study

runSldStudy

Use this when the user needs Voltformer to run an editor study on a saved diagram. contingency uses no settings. motorStarting: motorId, minimumTerminalVoltagePU; motorScenario: motorIds; motorSchedule: entries[{motorId,startAtSeconds,lockedRotorDurationSeconds}], sourceNote. swing: inertiaHSeconds, mechanicalPowerPU, preFaultTransferPU, faultTransferPU, postFaultTransferPU, dampingPU, faultDurationSeconds, simulationSeconds, stepSeconds, sourceNote. sequenceFault: nominalVoltageKV, faultType(3PH/LG/LL/LLG), voltageFactor, positiveOhms/negativeOhms/zeroOhms/faultOhms({r,x}), sourceNote. protectionSweep: upstream/downstream relay profiles, ratio, minPrimaryCurrentA, maxPrimaryCurrentA, upstreamTolerancePercent, downstreamTolerancePercent, upstreamAbsoluteToleranceS, downstreamAbsoluteToleranceS, breakerClearingTimeS, safetyMarginS. All assumptions must be supplied by the user or verified engineering sources.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
projectId, sldId, study, settings
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "study": { "type": "string", "enum": [ "contingency", "motorStarting", "motorScenario", "motorSchedule", "swing", "sequenceFault", "protectionSweep" ] }, "settings": { "type": "object", "additionalProperties": true } }, "required": [ "projectId", "sldId", "study", "settings" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/runSldStudy
{
  "operationId": "runSldStudy",
  "summary": "Run Sld Study",
  "description": "Use this when the user needs Voltformer to run an editor study on a saved diagram. contingency uses no settings. motorStarting: motorId, minimumTerminalVoltagePU; motorScenario: motorIds; motorSchedule: entries[{motorId,startAtSeconds,lockedRotorDurationSeconds}], sourceNote. swing: inertiaHSeconds, mechanicalPowerPU, preFaultTransferPU, faultTransferPU, postFaultTransferPU, dampingPU, faultDurationSeconds, simulationSeconds, stepSeconds, sourceNote. sequenceFault: nominalVoltageKV, faultType(3PH/LG/LL/LLG), voltageFactor, positiveOhms/negativeOhms/zeroOhms/faultOhms({r,x}), sourceNote. protectionSweep: upstream/downstream relay profiles, ratio, minPrimaryCurrentA, maxPrimaryCurrentA, upstreamTolerancePercent, downstreamTolerancePercent, upstreamAbsoluteToleranceS, downstreamAbsoluteToleranceS, breakerClearingTimeS, safetyMarginS. All assumptions must be supplied by the user or verified engineering sources.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    }
  ],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "study": { "type": "string", "enum": [ "contingency", "motorStarting", "motorScenario", "motorSchedule", "swing", "sequenceFault", "protectionSweep" ] }, "settings": { "type": "object", "additionalProperties": true } }, "required": [ "projectId", "sldId", "study", "settings" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Get Sld Capabilities

getSldCapabilities

Use this when the user needs Voltformer to discover SLD templates, symbol library, editing contract, export formats and example document. Use before drawing.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/getSldCapabilities
{
  "operationId": "getSldCapabilities",
  "summary": "Get Sld Capabilities",
  "description": "Use this when the user needs Voltformer to discover SLD templates, symbol library, editing contract, export formats and example document. Use before drawing.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {},
          "required": [],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

List Sld Documents

listSldDocuments

Use this when the user needs Voltformer to list diagram IDs, names, status and storage versions in one owned project.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
projectId
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/listSldDocuments
{
  "operationId": "listSldDocuments",
  "summary": "List Sld Documents",
  "description": "Use this when the user needs Voltformer to list diagram IDs, names, status and storage versions in one owned project.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    }
  ],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Get Sld Document

getSldDocument

Use this when the user needs Voltformer to read a complete editable SLD snapshot: equipment, positions, connections, annotations, sheets and study settings.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
projectId, sldId
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId", "sldId" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/getSldDocument
{
  "operationId": "getSldDocument",
  "summary": "Get Sld Document",
  "description": "Use this when the user needs Voltformer to read a complete editable SLD snapshot: equipment, positions, connections, annotations, sheets and study settings.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    }
  ],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId", "sldId" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Create Sld Document

createSldDocument

Use this when the user needs Voltformer to create a diagram in an owned project from a template or a full document. Use a stable sldId for retries.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, name
İsteğe bağlı girdiler
template, document
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "name": { "type": "string", "minLength": 1, "maxLength": 200 }, "template": { "type": "string", "enum": [ "blank", "substation", "solarBess", "dualIncomer" ] }, "document": { "type": "object", "additionalProperties": true } }, "required": [ "projectId", "sldId", "name" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/createSldDocument
{
  "operationId": "createSldDocument",
  "summary": "Create Sld Document",
  "description": "Use this when the user needs Voltformer to create a diagram in an owned project from a template or a full document. Use a stable sldId for retries.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "name": { "type": "string", "minLength": 1, "maxLength": 200 }, "template": { "type": "string", "enum": [ "blank", "substation", "solarBess", "dualIncomer" ] }, "document": { "type": "object", "additionalProperties": true } }, "required": [ "projectId", "sldId", "name" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Save Sld Document

saveSldDocument

Use this when the user needs Voltformer to replace a complete diagram snapshot after reading it. Supports arbitrary editor changes, sheets, wiring, annotations and saved study settings. Preserve unedited fields; send expectedVersion and expectedCreatedAt from the read to reject concurrent edits or a replaced drawing. Editing an approved or reviewed drawing returns it to DRAFT; use createSldRevision for a new issue.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, expectedVersion, document, expectedCreatedAt
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." }, "document": { "type": "object", "required": [ "schemaVersion", "name", "metadata", "sheets", "elements", "busbars", "connections" ], "properties": { "schemaVersion": { "type": "integer", "enum": [ 1 ] }, "name": { "type": "string", "minLength": 1, "maxLength": 200 }, "metadata": { "type": "object", "additionalProperties": true }, "sheets": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "elements": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "busbars": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "connections": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "junctions": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "annotations": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } } }, "additionalProperties": true } }, "required": [ "projectId", "sldId", "expectedVersion", "document", "expectedCreatedAt" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/saveSldDocument
{
  "operationId": "saveSldDocument",
  "summary": "Save Sld Document",
  "description": "Use this when the user needs Voltformer to replace a complete diagram snapshot after reading it. Supports arbitrary editor changes, sheets, wiring, annotations and saved study settings. Preserve unedited fields; send expectedVersion and expectedCreatedAt from the read to reject concurrent edits or a replaced drawing. Editing an approved or reviewed drawing returns it to DRAFT; use createSldRevision for a new issue.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." }, "document": { "type": "object", "required": [ "schemaVersion", "name", "metadata", "sheets", "elements", "busbars", "connections" ], "properties": { "schemaVersion": { "type": "integer", "enum": [ 1 ] }, "name": { "type": "string", "minLength": 1, "maxLength": 200 }, "metadata": { "type": "object", "additionalProperties": true }, "sheets": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "elements": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "busbars": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "connections": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "junctions": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } }, "annotations": { "type": "array", "maxItems": 500, "items": { "type": "object", "additionalProperties": true } } }, "additionalProperties": true } }, "required": [ "projectId", "sldId", "expectedVersion", "document", "expectedCreatedAt" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Delete Sld Document

deleteSldDocument

Use this when the user needs Voltformer to delete a diagram only after the user requests deletion. Immutable revisions are retained. Send the last read expectedVersion and expectedCreatedAt to avoid deleting a replacement drawing.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, expectedVersion, expectedCreatedAt
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." } }, "required": [ "projectId", "sldId", "expectedVersion", "expectedCreatedAt" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/deleteSldDocument
{
  "operationId": "deleteSldDocument",
  "summary": "Delete Sld Document",
  "description": "Use this when the user needs Voltformer to delete a diagram only after the user requests deletion. Immutable revisions are retained. Send the last read expectedVersion and expectedCreatedAt to avoid deleting a replacement drawing.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." } }, "required": [ "projectId", "sldId", "expectedVersion", "expectedCreatedAt" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Duplicate Sld Document

duplicateSldDocument

Use this when the user needs Voltformer to copy a diagram as a new draft in its project. Use a stable newSldId for retries.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, newSldId, name
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "newSldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "name": { "type": "string", "minLength": 1, "maxLength": 200 } }, "required": [ "projectId", "sldId", "newSldId", "name" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/duplicateSldDocument
{
  "operationId": "duplicateSldDocument",
  "summary": "Duplicate Sld Document",
  "description": "Use this when the user needs Voltformer to copy a diagram as a new draft in its project. Use a stable newSldId for retries.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "newSldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "name": { "type": "string", "minLength": 1, "maxLength": 200 } }, "required": [ "projectId", "sldId", "newSldId", "name" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

List Sld Revisions

listSldRevisions

Use this when the user needs Voltformer to list immutable engineering revisions for a diagram.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
projectId, sldId
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId", "sldId" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/listSldRevisions
{
  "operationId": "listSldRevisions",
  "summary": "List Sld Revisions",
  "description": "Use this when the user needs Voltformer to list immutable engineering revisions for a diagram.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    }
  ],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId", "sldId" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Create Sld Revision

createSldRevision

Use this when the user needs Voltformer to archive the current diagram as an immutable engineering revision, recording the author and advancing the storage version. Send expectedCreatedAt from the read to reject a replaced drawing. Updates the current diagram status and revision code; obtain explicit instructions before recording approval.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, expectedVersion, revisionId, revisionCode, status, expectedCreatedAt
İsteğe bağlı girdiler
description
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." }, "revisionId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "revisionCode": { "type": "string", "minLength": 1, "maxLength": 200 }, "description": { "type": "string", "maxLength": 2000 }, "status": { "type": "string", "enum": [ "DRAFT", "FOR_REVIEW", "APPROVED", "SUPERSEDED" ] } }, "required": [ "projectId", "sldId", "expectedVersion", "revisionId", "revisionCode", "status", "expectedCreatedAt" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/createSldRevision
{
  "operationId": "createSldRevision",
  "summary": "Create Sld Revision",
  "description": "Use this when the user needs Voltformer to archive the current diagram as an immutable engineering revision, recording the author and advancing the storage version. Send expectedCreatedAt from the read to reject a replaced drawing. Updates the current diagram status and revision code; obtain explicit instructions before recording approval.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." }, "revisionId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "revisionCode": { "type": "string", "minLength": 1, "maxLength": 200 }, "description": { "type": "string", "maxLength": 2000 }, "status": { "type": "string", "enum": [ "DRAFT", "FOR_REVIEW", "APPROVED", "SUPERSEDED" ] } }, "required": [ "projectId", "sldId", "expectedVersion", "revisionId", "revisionCode", "status", "expectedCreatedAt" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Analyze Sld Document

analyzeSldDocument

Use this when the user needs Voltformer to run the same engineering study delivery as the editor: validation, load flow, fault, protection, operating cases, BOM, cables and explicitly configured dynamic/harmonic/sequence/ABC/DC studies. Read limitations and readiness; never infer approval from an incomplete study.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
projectId, sldId
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId", "sldId" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/analyzeSldDocument
{
  "operationId": "analyzeSldDocument",
  "summary": "Analyze Sld Document",
  "description": "Use this when the user needs Voltformer to run the same engineering study delivery as the editor: validation, load flow, fault, protection, operating cases, BOM, cables and explicitly configured dynamic/harmonic/sequence/ABC/DC studies. Read limitations and readiness; never infer approval from an incomplete study.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    }
  ],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; } }, "required": [ "projectId", "sldId" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Export Sld Document

exportSldDocument

Use this when the user needs Voltformer to export the saved drawing as SVG, DXF, PNG, PDF, JSON, pandapower Python, BOM/cable CSV, or a study HTML/JSON report. PNG/PDF content is base64; other formats return text. Files remain private.

Erişim
Salt okunur · oauth2 · project:read
Zorunlu girdiler
projectId, sldId, format
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "format": { "type": "string", "enum": [ "svg", "dxf", "png", "pdf", "json", "pandapower", "bomCsv", "cableCsv", "studyHtml", "studyJson" ] } }, "required": [ "projectId", "sldId", "format" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:read" ] } ], "annotations": { "readOnlyHint": true, "destructiveHint": false, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/exportSldDocument
{
  "operationId": "exportSldDocument",
  "summary": "Export Sld Document",
  "description": "Use this when the user needs Voltformer to export the saved drawing as SVG, DXF, PNG, PDF, JSON, pandapower Python, BOM/cable CSV, or a study HTML/JSON report. PNG/PDF content is base64; other formats return text. Files remain private.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:read"
      ]
    }
  ],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "format": { "type": "string", "enum": [ "svg", "dxf", "png", "pdf", "json", "pandapower", "bomCsv", "cableCsv", "studyHtml", "studyJson" ] } }, "required": [ "projectId", "sldId", "format" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Link Sld Catalog Product

linkSldCatalogProduct

Use this when the user needs Voltformer to link an exact catalog product to a compatible diagram element, replacing its catalog reference and synchronizing engineering properties. Read the drawing first; send expectedVersion and expectedCreatedAt to reject concurrent edits or a replaced drawing.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, expectedVersion, elementId, productId, productKind, expectedCreatedAt
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." }, "elementId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!__proto__$|constructor$|prototype$)[A-Za-z0-9_:-]+
quot; }, "productId": { "type": "string", "minLength": 1, "maxLength": 200 }, "productKind": { "type": "string", "enum": [ "transformer", "switchgear", "protection-control", "generator", "grid-equipment" ] } }, "required": [ "projectId", "sldId", "expectedVersion", "elementId", "productId", "productKind", "expectedCreatedAt" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/linkSldCatalogProduct
{
  "operationId": "linkSldCatalogProduct",
  "summary": "Link Sld Catalog Product",
  "description": "Use this when the user needs Voltformer to link an exact catalog product to a compatible diagram element, replacing its catalog reference and synchronizing engineering properties. Read the drawing first; send expectedVersion and expectedCreatedAt to reject concurrent edits or a replaced drawing.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." }, "elementId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!__proto__$|constructor$|prototype$)[A-Za-z0-9_:-]+
quot; }, "productId": { "type": "string", "minLength": 1, "maxLength": 200 }, "productKind": { "type": "string", "enum": [ "transformer", "switchgear", "protection-control", "generator", "grid-equipment" ] } }, "required": [ "projectId", "sldId", "expectedVersion", "elementId", "productId", "productKind", "expectedCreatedAt" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Sync Sld Project Equipment

syncSldProjectEquipment

Use this when the user needs Voltformer to merge procurement items from the selected saved SLD into project equipment, retaining existing items and replacing quantities with the greater quantity for each product, as the editor does. Send expectedCreatedAt from the read to reject a replaced drawing.

Erişim
Kayıtlı veriyi değiştirir · oauth2 · project:write
Zorunlu girdiler
projectId, sldId, expectedVersion, expectedCreatedAt
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." } }, "required": [ "projectId", "sldId", "expectedVersion", "expectedCreatedAt" ], "additionalProperties": false }, "outputSchema": { "type": "object", "additionalProperties": true }, "securitySchemes": [ { "type": "oauth2", "scopes": [ "project:write" ] } ], "annotations": { "readOnlyHint": false, "destructiveHint": true, "openWorldHint": false } }
REST sözleşmesi: POST /api/v1/tools/execute/syncSldProjectEquipment
{
  "operationId": "syncSldProjectEquipment",
  "summary": "Sync Sld Project Equipment",
  "description": "Use this when the user needs Voltformer to merge procurement items from the selected saved SLD into project equipment, retaining existing items and replacing quantities with the greater quantity for each product, as the editor does. Send expectedCreatedAt from the read to reject a replaced drawing.",
  "security": [
    {
      "VoltformerOAuth": [
        "project:write"
      ]
    }
  ],
  "x-openai-isConsequential": true,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "projectId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "sldId": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^(?!\\.{1,2}$)(?!__[\\s\\S]*__$)(?![\\s\\S]*[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF]))(?![\\s\\S]*(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF])[^/]+
quot; }, "expectedVersion": { "type": "integer", "minimum": 0, "description": "storageVersion returned by getSldDocument; stale writes are rejected." }, "expectedCreatedAt": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Required: createdAt returned by getSldDocument; rejects a drawing deleted and recreated under the same id, even if its storageVersion is unchanged." } }, "required": [ "projectId", "sldId", "expectedVersion", "expectedCreatedAt" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Tool result", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true } } } }, "400": { "description": "Invalid tool input or study request" }, "401": { "description": "OAuth authorization required" }, "403": { "description": "Insufficient permissions" }, "409": { "description": "Concurrent update conflict; reload before retrying" }, "429": { "description": "Rate limit exceeded; respect Retry-After before retrying" } } }

Search Technical Articles

searchTechnicalArticles

Use this when the user needs Voltformer to find technical engineering article summaries by query or category; use getTechnicalArticle for the full source.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
—
İsteğe bağlı girdiler
q, category
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "q": {
        "type": "string",
        "maxLength": 200
      },
      "category": {
        "type": "string",
        "maxLength": 200
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/searchTechnicalArticles
{
  "operationId": "searchTechnicalArticles",
  "summary": "Search Technical Articles",
  "description": "Use this when the user needs Voltformer to find technical engineering article summaries by query or category; use getTechnicalArticle for the full source.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "q": {
              "type": "string",
              "maxLength": 200
            },
            "category": {
              "type": "string",
              "maxLength": 200
            }
          },
          "required": [],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Get Technical Article

getTechnicalArticle

Use this when the user needs Voltformer to read the complete canonical technical article with its source URL and metadata.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
slug
İsteğe bağlı girdiler
—
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string",
        "maxLength": 200
      }
    },
    "required": [
      "slug"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/getTechnicalArticle
{
  "operationId": "getTechnicalArticle",
  "summary": "Get Technical Article",
  "description": "Use this when the user needs Voltformer to read the complete canonical technical article with its source URL and metadata.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string",
              "maxLength": 200
            }
          },
          "required": [
            "slug"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Get Raw Material Data

getRawMaterialData

Use this when the user needs Voltformer to read transformer materials, CRGO, insulating fluid indices, methodology, data availability and price history. Preserve source dates and estimated/unavailable labels.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
view
İsteğe bağlı girdiler
materialCode, interval
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "view": {
        "type": "string",
        "enum": [
          "materials",
          "material",
          "history",
          "indices",
          "crgo",
          "fluids",
          "sources",
          "status"
        ]
      },
      "materialCode": {
        "type": "string",
        "maxLength": 40
      },
      "interval": {
        "type": "string",
        "enum": [
          "1D",
          "7D",
          "30D",
          "90D",
          "1Y"
        ]
      }
    },
    "required": [
      "view"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": true
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/getRawMaterialData
{
  "operationId": "getRawMaterialData",
  "summary": "Get Raw Material Data",
  "description": "Use this when the user needs Voltformer to read transformer materials, CRGO, insulating fluid indices, methodology, data availability and price history. Preserve source dates and estimated/unavailable labels.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "view": {
              "type": "string",
              "enum": [
                "materials",
                "material",
                "history",
                "indices",
                "crgo",
                "fluids",
                "sources",
                "status"
              ]
            },
            "materialCode": {
              "type": "string",
              "maxLength": 40
            },
            "interval": {
              "type": "string",
              "enum": [
                "1D",
                "7D",
                "30D",
                "90D",
                "1Y"
              ]
            }
          },
          "required": [
            "view"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Calculate Material Escalation

calculateMaterialEscalation

Use this when the user needs Voltformer to calculate a quotation escalation scenario using explicit user-supplied or source-verified commodity reference prices; this is not a live quotation.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
base_price, weights, references
İsteğe bağlı girdiler
currency, base_date, current_date
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "base_price": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "currency": {
        "type": "string",
        "maxLength": 3
      },
      "base_date": {
        "type": "string"
      },
      "current_date": {
        "type": "string"
      },
      "weights": {
        "type": "object",
        "properties": {
          "copper": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "aluminium": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "crgo": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "oil": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "fixed": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "copper",
          "aluminium",
          "crgo",
          "oil",
          "fixed"
        ],
        "additionalProperties": false
      },
      "references": {
        "type": "object",
        "properties": {
          "cu0": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "cu": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "al0": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "al": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "fe0": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "fe": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "oil0": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "oil": {
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "cu0",
          "cu",
          "al0",
          "al",
          "fe0",
          "fe",
          "oil0",
          "oil"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "base_price",
      "weights",
      "references"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/calculateMaterialEscalation
{
  "operationId": "calculateMaterialEscalation",
  "summary": "Calculate Material Escalation",
  "description": "Use this when the user needs Voltformer to calculate a quotation escalation scenario using explicit user-supplied or source-verified commodity reference prices; this is not a live quotation.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "base_price": {
              "type": "number",
              "exclusiveMinimum": 0
            },
            "currency": {
              "type": "string",
              "maxLength": 3
            },
            "base_date": {
              "type": "string"
            },
            "current_date": {
              "type": "string"
            },
            "weights": {
              "type": "object",
              "properties": {
                "copper": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "aluminium": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "crgo": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "oil": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "fixed": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "copper",
                "aluminium",
                "crgo",
                "oil",
                "fixed"
              ],
              "additionalProperties": false
            },
            "references": {
              "type": "object",
              "properties": {
                "cu0": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "cu": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "al0": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "al": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "fe0": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "fe": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "oil0": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "oil": {
                  "type": "number",
                  "exclusiveMinimum": 0
                }
              },
              "required": [
                "cu0",
                "cu",
                "al0",
                "al",
                "fe0",
                "fe",
                "oil0",
                "oil"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "base_price",
            "weights",
            "references"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}

Convert Fluid Barrel

convertFluidBarrel

Use this when the user needs Voltformer to convert a stated insulating fluid tonne price to barrel units using the selected grade or explicit density.

Erişim
Salt okunur · noauth · catalog:read
Zorunlu girdiler
priceUsdPerTonne, fluidGrade
İsteğe bağlı girdiler
customDensityKgPerL
Tam MCP sözleşmesi
{
  "inputSchema": {
    "type": "object",
    "properties": {
      "priceUsdPerTonne": {
        "type": "number",
        "exclusiveMinimum": 0
      },
      "fluidGrade": {
        "type": "string"
      },
      "customDensityKgPerL": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 2
      }
    },
    "required": [
      "priceUsdPerTonne",
      "fluidGrade"
    ],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "additionalProperties": true
  },
  "securitySchemes": [
    {
      "type": "noauth"
    }
  ],
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "openWorldHint": false
  }
}
REST sözleşmesi: POST /api/v1/tools/execute/convertFluidBarrel
{
  "operationId": "convertFluidBarrel",
  "summary": "Convert Fluid Barrel",
  "description": "Use this when the user needs Voltformer to convert a stated insulating fluid tonne price to barrel units using the selected grade or explicit density.",
  "security": [],
  "x-openai-isConsequential": false,
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "priceUsdPerTonne": {
              "type": "number",
              "exclusiveMinimum": 0
            },
            "fluidGrade": {
              "type": "string"
            },
            "customDensityKgPerL": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 2
            }
          },
          "required": [
            "priceUsdPerTonne",
            "fluidGrade"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Tool result",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "400": {
      "description": "Invalid tool input or study request"
    },
    "401": {
      "description": "OAuth authorization required"
    },
    "403": {
      "description": "Insufficient permissions"
    },
    "409": {
      "description": "Concurrent update conflict; reload before retrying"
    },
    "429": {
      "description": "Rate limit exceeded; respect Retry-After before retrying"
    }
  }
}