Infraestructura semántica y programática para motores de búsqueda y agentes de IA | VOLTFORMER
Voltformer dota a Google, Bing, ChatGPT Search, Perplexity y bots de compras autónomos con manifiestos legibles por máquina, especificaciones OpenAPI y endpo...
Infraestructura semántica y programática para motores de búsqueda y agentes de IA | VOLTFORMER
Voltformer dota a Google, Bing, ChatGPT Search, Perplexity y bots de compras autónomos con manifiestos legibles por máquina, especificaciones OpenAPI y endpoints para envío directo de RFQ.
Los identificadores y descripciones de contratos de la API se publican en inglés. Los datos de miembros son privados; esta referencia contiene únicamente definiciones.
{
"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.
{
"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.
Acceso
Solo lectura · noauth · catalog:read
Parámetros obligatorios
—
Parámetros opcionales
q, brand, cellTechnology, minWatts, maxWatts, limit
Contrato REST: 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.
Contrato REST: 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.
{
"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.
{
"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.
Acceso
Solo lectura · noauth · catalog:read
Parámetros obligatorios
—
Parámetros opcionales
—
Contrato MCP completo
{
"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
}
}
Contrato REST: 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.
{
"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.
Contrato REST: 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.
Contrato REST: 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.
{
"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.
Acceso
Solo lectura · noauth · catalog:read
Parámetros obligatorios
countryCodeOrName
Parámetros opcionales
—
Contrato MCP completo
{
"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
}
}
Contrato REST: 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.
{
"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
}
}
Contrato REST: 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.
{
"inputSchema": {
"type": "object",
"properties": {
"companyName": {
"type": "string",
"minLength": 2,
"maxLength": 200
},
"email": {
"type": "string",
"format": "email"
},
"contactName": {
"type": "string",
"maxLength": 200
},
"phone": {
"type": "string",
"maxLength": 40
},
"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
},
"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."
},
"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",
"maxLength": 128,
"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": "\\.pdfquot;
},
"path": {
"type": "string",
"maxLength": 240,
"pattern": "^users/.+/rfq-specifications/.+\\.pdfquot;
},
"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"
},
"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",
"email",
"items"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"rfqReferenceCode": {
"type": "string"
},
"status": {
"type": "string"
},
"message": {
"type": "string"
},
"estimatedOfferTimeHours": {
"type": "number"
},
"assignedEngineer": {
"type": "string"
},
"directFollowupLink": {
"type": "string"
},
"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
}
}
Contrato REST: 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/email/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.
Contrato REST: 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": true,
"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.
Acceso
Modifica datos guardados · oauth2 · profile:write
Parámetros obligatorios
companyName
Parámetros opcionales
id, contactName, email, phone, city, taxNumber, deliveryAddress
Contrato MCP completo
{
"inputSchema": {
"type": "object",
"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
},
"email": {
"type": "string",
"maxLength": 254
},
"phone": {
"type": "string",
"maxLength": 40
},
"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
}
}
Contrato REST: 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": true,
"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
},
"email": {
"type": "string",
"maxLength": 254
},
"phone": {
"type": "string",
"maxLength": 40
},
"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.
{
"security": [
{
"VoltformerOAuth": [
"project:read"
]
},
{
"AgentKey": []
}
],
"operationId": "listProjects",
"summary": "List the member's projects",
"tags": [
"Agents"
],
"parameters": [
{
"name": "X-Voltformer-Agent-Key",
"in": "header",
"required": true,
"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.
{
"security": [
{
"VoltformerOAuth": [
"favorites:read"
]
},
{
"AgentKey": []
}
],
"operationId": "listFavorites",
"summary": "List the member's shortlist",
"tags": [
"Agents"
],
"parameters": [
{
"name": "X-Voltformer-Agent-Key",
"in": "header",
"required": true,
"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.
Acceso
Modifica datos guardados · oauth2 · favorites:write
{
"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": true,
"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.
Acceso
Solo lectura · oauth2 · rfq:read
Parámetros obligatorios
—
Parámetros opcionales
projectId
Contrato MCP completo
{
"inputSchema": {
"type": "object",
"properties": {
"projectId": {
"type": "string",
"maxLength": 128,
"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
}
}
Contrato REST: 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": true,
"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 upload URL to upload a technical-specification PDF (PUT the bytes, then call finalizeSpecificationUpload). Requires a connected member.
Acceso
Solo lectura · oauth2 · specification:upload
Parámetros obligatorios
fileName
Parámetros opcionales
—
Contrato MCP completo
{
"inputSchema": {
"type": "object",
"properties": {
"fileName": {
"type": "string",
"maxLength": 160,
"pattern": "\\.pdfquot;,
"description": "Original file name; must end with .pdf. Overall PDF limit: 80 MiB."
}
},
"required": [
"fileName"
],
"description": "Returns a signed write URL (application/pdf) so the agent can upload a technical-specification PDF with an HTTP PUT, then call finalizeSpecificationUpload."
},
"outputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"uploadUrl": {
"type": "string"
},
"contentType": {
"type": "string"
},
"maxSizeBytes": {
"type": "number"
},
"expiresInSeconds": {
"type": "number"
}
},
"required": [
"path",
"uploadUrl",
"contentType",
"maxSizeBytes",
"expiresInSeconds"
],
"additionalProperties": false
},
"securitySchemes": [
{
"type": "oauth2",
"scopes": [
"specification:upload"
]
}
],
"annotations": {
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": false
}
}
Contrato REST: 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 upload URL to upload a technical-specification PDF (PUT the bytes, then call finalizeSpecificationUpload). Requires a connected member.",
"security": [
{
"VoltformerOAuth": [
"specification:upload"
]
},
{
"AgentKey": []
}
],
"tags": [
"Agents"
],
"parameters": [
{
"name": "X-Voltformer-Agent-Key",
"in": "header",
"required": true,
"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."
},
"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.
Acceso
Modifica datos guardados · oauth2 · specification:upload
Contrato REST: 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": "\\.pdfquot;
},
"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.
Acceso
Modifica datos guardados · oauth2 · specification:finalize
Contrato REST: 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/.+\\.pdfquot;
}
}
}
}
}
},
"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.
Contrato REST: 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": true,
"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/.+\\.pdfquot;
}
}
}
}
}
},
"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.
Acceso
Modifica datos guardados · noauth · catalog:read
Parámetros obligatorios
country
Parámetros opcionales
currency, unit
Contrato MCP completo
{
"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
}
}
Contrato REST: 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.
Contrato REST: 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.
Contrato REST: 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.
Contrato REST: 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.
Use this when the user needs Voltformer to discover SLD templates, symbol library, editing contract, export formats and example document. Use before drawing.
Use this when the user needs Voltformer to read a complete editable SLD snapshot: equipment, positions, connections, annotations, sheets and study settings.
Contrato REST: 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": "^[A-Za-z0-9_-]+quot;
},
"sldId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+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; expectedVersion prevents overwriting concurrent edits.
Use this when the user needs Voltformer to delete a diagram only after the user requests deletion. Immutable revisions are retained. Requires the last read version.
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. Updates the current diagram status and revision code; obtain explicit instructions before recording approval.
Acceso
Modifica datos guardados · oauth2 · project:write
Parámetros obligatorios
projectId, sldId, expectedVersion, revisionId, revisionCode, status
Contrato REST: 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. 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": "^[A-Za-z0-9_-]+quot;
},
"sldId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+quot;
},
"expectedVersion": {
"type": "integer",
"minimum": 0,
"description": "storageVersion returned by getSldDocument; stale writes are rejected."
},
"revisionId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+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"
],
"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.
Contrato REST: 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": "^[A-Za-z0-9_-]+quot;
},
"sldId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+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.
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; expectedVersion rejects concurrent edits.
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.
Contrato REST: 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.",
"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": "^[A-Za-z0-9_-]+quot;
},
"sldId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+quot;
},
"expectedVersion": {
"type": "integer",
"minimum": 0,
"description": "storageVersion returned by getSldDocument; stale writes are rejected."
}
},
"required": [
"projectId",
"sldId",
"expectedVersion"
],
"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.
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.
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.