Skip to main content
Glama

idrac-design-mcp

A local Model Context Protocol (MCP) server that exposes iDRAC design-system knowledge to MCP-compatible clients. It runs over stdio (no web server) and currently registers a single get_component tool backed by hardcoded placeholder data.

Protocol note: In stdio mode, stdout is reserved exclusively for MCP protocol messages. All logging in this server goes to stderr via console.error(). Never write to stdout.

Requirements

  • Node.js 18+ (ES modules, built-in node:test)

Related MCP server: web-ui-component-spec-mcp

Install

npm install

Build

Compiles TypeScript from src/ to dist/:

npm run build

Run

Starts the server on stdio (it will wait for an MCP client to connect):

npm start

Test

Runs the automated test for the get_component handler (builds first):

npm test

The test asserts that get_component("button") contains ic-button and that an unknown component returns No record found.

The get_component tool

Field

Type

Description

name

string

Component name to look up, e.g. "button".

Behavior (placeholder data):

  • "button" -> Use ic-button from @idrac/ui. Do not use raw HTML buttons.

  • anything else -> No record found for that component.

Inspect with the MCP Inspector

The MCP Inspector lets you exercise the tools interactively. After building:

npm run build
npx @modelcontextprotocol/inspector node dist/index.js

This launches the Inspector UI and starts this server as its stdio child process. Open the printed URL, select the get_component tool, and try name: "button".

Register in an MCP client

Add an entry to your client's MCP config. Use an absolute path to the built entry file. Example (Claude Desktop / generic mcpServers format):

{
  "mcpServers": {
    "idrac-design": {
      "command": "node",
      "args": ["C:/Users/Ashwini_Paradkar/CascadeProjects/idrac-design-mcp/dist/index.js"]
    }
  }
}

Build first (npm run build) so dist/index.js exists, then restart the client.

Project layout

src/
  index.ts            # McpServer + StdioServerTransport wiring, tool registration
  getComponent.ts     # Pure lookup logic (testable, hardcoded data for now)
  getComponent.test.ts# node:test unit tests for the lookup logic

Available Tools

1 tool
get_componentGet ComponentA

Look up iDRAC design-system guidance for a named component (e.g. "button").

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe component name to look up, e.g. "button".

TDQS

A3.7/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 burden. It only states that the tool looks up guidance, implying a read-only operation, but does not disclose any behavioral details such as authentication needs, rate limits, error handling, or whether the tool performs any side effects.

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?

The description is a single sentence that is concise and front-loaded with the key information. Every word serves a purpose without any waste.

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?

Given the simple input (one string parameter) and no output schema, the description is mostly adequate. However, it does not describe the return value format or content, which is a gap for an AI agent deciding whether the tool's output is useful.

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% (the 'name' parameter has a description), so the baseline is 3. The tool description does not add additional meaning beyond repeating the example; it provides no extra context about parameter constraints or formats.

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

Purpose5/5

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

The description specifies a clear action ('look up') and a specific resource ('iDRAC design-system guidance for a named component'), with a concrete example (e.g., 'button'). No sibling tools exist, so no differentiation needed.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool (when design guidance for a named component is needed), but it does not explicitly state conditions for when not to use it or mention alternatives.

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. 1 tool updatev0.1.0
    • First observedget_component

TDQS

A3.7/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools.

Naming Consistency5/5

A single tool trivially follows a consistent naming pattern.

Tool Count3/5

One tool is minimal but may be appropriate for a simple lookup server; however, it feels thin for a design system with many components.

Completeness2/5

The server only provides a single lookup operation, lacking list, search, or management functions, which are significant gaps for a design system guidance tool.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers