Skip to main content
Glama

AIDC-AI.IO — MCP Connector

AI data center sizing, validation, and layout via a remote MCP server.
AI 데이터센터 자동화 툴: 결정론적 엔진으로 AI 데이터센터를 설계·검증·레이아웃합니다.

MCP Registry License


What is this?

This repository shows how to connect an MCP client or REST client to the AIDC-AI.IO Design Engine — a deterministic, source-backed engine that sizes, validates, and lays out Rubin-era AI data centers.

What the engine does (on the server):

  • Accepts an IT load, rack density, GPU generation (Hopper / Blackwell / NVIDIA Vera Rubin NVL72 / VR200), and site constraints.

  • Returns deployment-unit-snapped rack counts, design PUE, power-factor-backed total MVA (22.9 kV intake), liquid-cooling / air-cooling heat split, CDU planning values, cost (KRW), and timeline.

  • Validates designs against electrical, cooling, layout, safety, and data rules with severity-classified findings and RFIs.

  • Generates a rack-plan grid (hall dimensions, row/column positions in mm) and a site-block layout.

What this repo contains:

  • MCP client configuration snippet.

  • curl and Node.js examples that call the public REST projection (/api/agent/*).

  • Authenticated runnable examples that read the current response shape.

The core calculation engine, reference catalogs (rack library, AHJ/code matrix, 1.6T fabric topology, direct-to-chip (D2C) cooling models, etc.) are proprietary and remain server-side. No engine source is published here.

Korea live. Region-specific: 22.9 kV utility intake, Korean AHJ/code, climate, and operations validation. Keywords the engine targets: AI data center, AIDC, NVIDIA Rubin, Vera Rubin, 22.9kV, liquid cooling, CDU, D2C, 1.6T fabric, PUE.


Related MCP server: datacenter-mcp-server

MCP Server

Field

Value

Transport

Streamable HTTP

Endpoint

https://aidc-ai.io/api/mcp

Official registry name

io.aidc-ai/design-engine

Registry descriptor

remote.server.json (metadata revision 1.0.1; separate from npm/API versions)

Auth

Registered API key required. Configure Authorization: Bearer in the client credential settings; never send keys in tool arguments.

Tool count

3

Limits

The registered account limits apply; preserve HTTP 429 and Retry-After.

Tools

Tool

One-line description

design

Size an AI data center: returns rack count, PUE, total MVA, liquid/air cooling split, CDU count, cost (KRW), and build timeline.

validate

Check a design against electrical, cooling, layout, safety, and data rules; returns severity-classified findings and RFIs.

layout

Generate a rack-plan grid (hall dimensions, row/column positions in mm) and a site-block layout.


Quick Start

MCP client configuration

Obtain a registered integration key through AIDC Contact. Use a client that supports Streamable HTTP and pass the key through its credential settings as an Authorization: Bearer header. The mcp.json example contains a replacement marker, not a working credential. Keep the configured copy private and never commit a real key.

For a local stdio client, the published package is available through npm:

npx -y aidc-mcp-server@0.2.4

Set AIDC_API_KEY in the MCP server process's environment using your client's secret or environment configuration. A file next to the server is not read automatically. design, validate, and layout do not accept credentials as tool inputs. Authentication errors are connection-configuration failures, not engineering verdicts.

Docker (local stdio server)

Build and run the same published MCP server used for registry evaluation:

docker build -t aidc-ai-mcp .
docker run --rm -i -e AIDC_API_KEY aidc-ai-mcp

The container communicates over stdio and connects to https://aidc-ai.io by default. Export a registered AIDC_API_KEY before running the container; -e AIDC_API_KEY forwards the existing variable without placing its value in the command text.


REST Usage

The MCP package calls these REST endpoints. All calculation routes require a registered key:

Tool

REST endpoint

design

POST https://aidc-ai.io/api/agent/design

validate

POST https://aidc-ai.io/api/agent/validate

layout

POST https://aidc-ai.io/api/agent/layout

Example: size a 30 MW Rubin-era AI data center

curl -s -X POST https://aidc-ai.io/api/agent/design \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${AIDC_API_KEY}" \
  -d '{
    "itLoadMw": 30,
    "rackDensityKw": 120,
    "gpuGen": "rubin",
    "siteAreaSqm": 5000,
    "region": "metropolitan",
    "options": {
      "redundancy": "n_plus_1",
      "coolingMode": "liquid",
      "pueTarget": 1.2
    }
  }'

Read the response

Use node design.example.js for a live authenticated example. Successful responses contain ok, summary, warnings, engineVersion, requestId, and _agent. Sizing values such as rackCount, pueDesign, and mvaTotal are inside summary. Preserve warnings and validation findings; an ok: true response does not certify the design or turn PENDING into PASS.

There is no fixed numeric output fixture for a real project. Use the returned engine result and its evidence for the exact selected inputs.


Tools — Input Reference

design

Size an AI data center from scratch.

Field

Type

Range / values

Required

itLoadMw

number

0 < x ≤ 1000

Yes

rackDensityKw

number

0 < x ≤ 500

Yes

gpuGen

string

"hopper" | "blackwell" | "rubin"

Yes

siteAreaSqm

number

0 < x ≤ 1 000 000

Yes

region

string

"metropolitan" | "regional"

Yes

options.redundancy

string

"n" | "n_plus_1" | "2n"

No

options.coolingMode

string

"air" | "hybrid" | "liquid"

No

options.pueTarget

number

1.0 – 2.5

No

Key response fields: summary.rackCount, optional summary.unsnappedRackCount, summary.pueDesign, summary.mvaTotal, and cooling/commercial values inside summary. warnings[], engineVersion, and requestId are top-level fields.


validate

Check a design against engineering rules.

{
  "rawInput": {
    "itLoadMw": 30,
    "rackDensityKw": 120,
    "gpuGen": "rubin",
    "siteAreaSqm": 5000,
    "region": "metropolitan"
  }
}

Key response fields: findings[] (including severity, family, message, and optional publicRuleId), rfis[], and optional verdict / graphVerdict. Public MCP accepts rawInput or designSummary; private EngineSession IDs remain in the signed-in AIDC workflow.


layout

Generate a rack plan and site block layout.

{
  "design": {
    "itLoadMw": 30,
    "rackDensityKw": 120,
    "gpuGen": "rubin",
    "siteAreaSqm": 5000,
    "region": "metropolitan"
  },
  "siteCentroid": { "lat": 37.5665, "lng": 126.9780 },
  "siteAreaSqm": 5000
}

Key response fields: rackPlan (hall dimensions, rows, columns, per-rack positions in mm), sitePlan (block-level layout in percentage coords)



License

This repository (examples and connector code only) is released under the MIT License.
The AIDC-AI.IO engine, reference catalogs, and all server-side logic remain proprietary.

Available Tools

3 tools
designSize an AI data centerC

Generate a profile-aware AI data center design basis from OPR inputs and optional project data.

ParametersJSON Schema
NameRequiredDescriptionDefault
gpuGenYesNVIDIA GPU generation: hopper, blackwell, or rubin.
regionYesMetropolitan or regional site class.
optionsNoOptional redundancy, cooling-mode, and PUE overrides.
parcelsNoOptional bounded GeoJSON parcel features.
itLoadMwYesIT load in megawatts. 0 < x <= 1000.
hallCountNoOptional requested data-hall count.
siteAreaSqmYesTotal site area in square meters.
customInputsNoOptional project-specific design inputs.
rackDensityKwYesRequested per-rack power in kW. 0 < x <= 500.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says the tool generates a design basis, but it does not disclose whether it is read-only, whether it persists anything, what permissions are needed, or how errors are handled. The mention of 'profile-aware' is too vague to count as meaningful behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single, front-loaded sentence with no redundant or filler language. Every part of the sentence contributes to identifying the tool's output and input context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 9 parameters, 5 required, nested objects, no annotations, and no output schema, yet the description only gives a one-line summary. It does not explain the output structure, behavioral expectations, or how the optional inputs affect the result, leaving substantial gaps for a complex sizing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already provides per-parameter meaning. The description adds only a high-level grouping ('OPR inputs and optional project data') and no parameter-level detail beyond what the schema states, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate') and resource ('AI data center design basis'), with the input source ('OPR inputs and optional project data'). It is clear what the tool produces, but it does not distinguish itself from the sibling tools 'validate' and 'layout'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. The phrase 'from OPR inputs and optional project data' hints at context, but it does not state prerequisites, exclusions, or when a caller should prefer 'validate' or 'layout'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layoutGenerate rack and site layoutC

Generate profile-aware physical rack blocks, rack-plan candidates, and site layout data from a nested design request.

ParametersJSON Schema
NameRequiredDescriptionDefault
designYesNested design request that drives layout.
siteAreaSqmNoOptional layout-specific site area override.
siteCentroidNoOptional WGS84 site centroid.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses almost nothing beyond purpose. It does not say whether generation is deterministic, read-only, whether it consumes significant compute, or how many candidates are produced. 'Profile-aware' is unexplained jargon.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, stating the verb, the outputs, and the input source. It is efficient, though too sparse given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex generator with a deeply nested input schema and no output schema, the description enumerates the return artifacts but omits invocation context, ordering relative to 'design'/'validate', and any behavioral caveats. Adequate but thin relative to complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the nested design request and the optional overrides, establishing a baseline of 3. The description only nods to 'a nested design request' and adds no meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb ('Generate') and concrete resources ('physical rack blocks, rack-plan candidates, and site layout data'), which is far better than a tautology. It is clear what the tool produces, though it does not explicitly contrast itself with the sibling 'design' tool that presumably produces the input request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from a nested design request' faintly implies this runs after a design exists, but there is no explicit when-to-use statement, no named alternatives among design/validate, and no prerequisites or ordering guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validateValidate a data center designB

Validate a previous design summary or raw design input against engineering rules. Private EngineSessions remain in the signed-in AIDC workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawInputNoRaw design request to size and validate.
designSummaryNoPreviously computed design summary.

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. 'Against engineering rules' is vague about what is checked or returned, and the EngineSessions sentence only hints at session/auth scoping ('signed-in AIDC workflow') without stating whether validation mutates state or requires authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and tight, which is good. The second sentence about private EngineSessions is cryptic and its contribution is unclear, so it does not clearly earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex validation tool with deep nested schemas, no annotations, and no output schema, yet the description never explains what a validation result looks like or what happens on failure. Given the complexity, the description leaves significant gaps for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description correctly names the two mutually exclusive inputs matching the schema's anyOf, but adds no syntax, format, or constraint detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (validate) and resource (data center design) and clarifies the two accepted input forms (design summary or raw input). It does not differentiate itself from the sibling tools 'design' and 'layout', so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Validate a previous design summary or raw design input' implies the follow-on role after a design step, which is useful. However, there is no explicit when-not guidance and no routing to the 'design' or 'layout' siblings, leaving the agent to infer which tool starts the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.2
    • Addeddesign
    • Addedlayout
    • Changedvalidate17 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "designSummary"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "rawInput"
        +    ]
        +  }
        +]
      • addedInput schema / description
        Added value: +"Provide a previous design summary or raw design input. Private EngineSessions remain in the signed-in AIDC workflow."
      • removedInput schema / properties / designSummary / additionalProperties
        Removed value: -false
      • changedInput schema / properties / designSummary / description
        Previous value: -"Previously computed design summary. Provide either this OR rawInput."New value: +"Previously computed design summary."
      • changedInput schema / properties / rawInput / additionalProperties
        Previous value: -falseNew value: +{}
      • changedInput schema / properties / rawInput / description
        Previous value: -"Raw design request. The engine will size first, then validate. Provide either this OR designSummary."New value: +"Raw design request to size and validate."
      • addedInput schema / properties / rawInput / properties / customInputs
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Optional project-specific design inputs.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • changedInput schema / properties / rawInput / properties / gpuGen / description
        Previous value: -"NVIDIA GPU generation. hopper=H100/H200, blackwell=B100/B200/GB200, rubin=R100/Vera Rubin."New value: +"NVIDIA GPU generation: hopper, blackwell, or rubin."
      • addedInput schema / properties / rawInput / properties / hallCount
        Added value: +{
        +  "description": "Optional requested data-hall count.",
        +  "exclusiveMinimum": 0,
        +  "maximum": 48,
        +  "type": "integer"
        +}
      • changedInput schema / properties / rawInput / properties / itLoadMw / description
        Previous value: -"IT load in megawatts. 0 < x ≤ 1000."New value: +"IT load in megawatts. 0 < x <= 1000."
      • removedInput schema / properties / rawInput / properties / options / additionalProperties
        Removed value: -false
      • changedInput schema / properties / rawInput / properties / options / description
        Previous value: -"Optional engineering overrides: redundancy tier (n / n+1 / 2n), cooling mode (air / hybrid / liquid), PUE target (1.0–2.5)."New value: +"Optional redundancy, cooling-mode, and PUE overrides."
      • addedInput schema / properties / rawInput / properties / parcels
        Added value: +{
        +  "description": "Optional bounded GeoJSON parcel features.",
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "geometry": {
        +        "anyOf": [
        +          {
        +            "properties": {
        +              "coordinates": {
        +                "items": {
        +                  "items": {
        +                    "items": {
        +                      "type": "number"
        +                    },
        +                    "maxItems": 3,
        +                    "minItems": 2,
        +                    "type": "array"
        +                  },
        +                  "maxItems": 512,
        +                  "minItems": 4,
        +                  "type": "array"
        +                },
        +                "maxItems": 16,
        +                "minItems": 1,
        +                "type": "array"
        +              },
        +              "type": {
        +                "const": "Polygon",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "type",
        +              "coordinates"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "properties": {
        +              "coordinates": {
        +                "items": {
        +                  "items": {
        +                    "items": {
        +                      "items": {
        +                        "type": "number"
        +                      },
        +                      "maxItems": 3,
        +                      "minItems": 2,
        +                      "type": "array"
        +                    },
        +                    "maxItems": 512,
        +                    "minItems": 4,
        +                    "type": "array"
        +                  },
        +                  "maxItems": 16,
        +                  "minItems": 1,
        +                  "type": "array"
        +                },
        +                "maxItems": 8,
        +                "minItems": 1,
        +                "type": "array"
        +              },
        +              "type": {
        +                "const": "MultiPolygon",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "type",
        +              "coordinates"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      },
        +      "id": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "number"
        +          }
        +        ]
        +      },
        +      "properties": {
        +        "additionalProperties": {},
        +        "propertyNames": {
        +          "type": "string"
        +        },
        +        "type": "object"
        +      },
        +      "type": {
        +        "const": "Feature",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "type",
        +      "geometry"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 25,
        +  "type": "array"
        +}
      • changedInput schema / properties / rawInput / properties / rackDensityKw / description
        Previous value: -"Per-rack power in kW. 0 < x ≤ 500. Rubin Ultra targets 300+."New value: +"Requested per-rack power in kW. 0 < x <= 500."
      • changedInput schema / properties / rawInput / properties / region / description
        Previous value: -"Site classification. metropolitan = dense urban / capital region (e.g. Seoul / Tokyo / Frankfurt / Northern Virginia), regional = secondary / suburban / industrial-park region. Drives utility cost and substation availability assumptions."New value: +"Metropolitan or regional site class."
      • changedInput schema / properties / rawInput / properties / siteAreaSqm / description
        Previous value: -"Total site area in m². 0 < x ≤ 1,000,000."New value: +"Total site area in square meters."
  2. 2 tool updatesv0.1.1
    • Removeddesign
    • Addedvalidate
  3. 2 tool updates
    • Removedlayout
    • Removedvalidate
  4. 3 tool updatesv0.1.0
    • First observeddesign
    • First observedlayout
    • First observedvalidate

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

The three tools target distinct stages: design generates the design basis, validate checks inputs/rules, layout produces physical rack/site data. No functional overlap; boundaries are clear from descriptions.

Naming Consistency5/5

All tool names are single, lowercase action words (design, validate, layout) following a consistent terse style. No mixed conventions or casing.

Tool Count5/5

Three tools is well within the ideal 3-15 range and each maps to a core operation (generate, validate, layout). No redundant tools; the set is tightly scoped.

Completeness4/5

Core generate-validate-layout pipeline is covered, but there is no explicit retrieval/update/list for designs, and sessions are handled externally. Minor gaps may require workarounds but no critical dead end.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A physics engine for liquid-cooled GPU systems, exposed as an AI-callable MCP server. Enables thermal analysis, coolant comparison, flow optimization, and rack-level sizing via natural language queries.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides professional-grade data center engineering calculations including cooling, power, GPU thermal optimization, UPS/battery sizing, tier classification, and commissioning workflows, compliant with ASHRAE and Uptime Institute standards.
    8
    9 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    DC Hub is the live data layer for data-center siting that agents can query and cite: 330,000+ mapped power, grid, gas and fiber assets, 300+ markets scored daily (DCPI) and live grid feeds from the seven US ISOs. 92 MCP tools at https://dchub.cloud/mcp plus a REST API at https://dchub.cloud/api/v1. Free tier needs no key; $10 one-time pack of 1,000 API credits.
    92
    523 npm
    3
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides deterministic, standards-based calculations for data center critical power infrastructure. Enables site selection, generator sizing, UPS sizing, NFPA 110 compliance, and more via 50+ AI agents and 8 compound chains.
    -