Skip to content

MCP Server

The Human Standards MCP (Model Context Protocol) server gives compatible AI tools read-only access to usability heuristics and the indexed Human Standards guidance. Think of it as a reference book that AI can consult while building interfaces.

The guidance is a snapshot bundled with each package release. The server runs locally, does not browse the live website, and does not automatically validate or modify a project.

The MCP server exposes five read-only tools:

ToolPurpose
get_heuristicDeep dive on a specific Nielsen usability heuristic (H1-H10)
get_all_heuristicsSummary of all 10 heuristics for context
search_standardsSearch full document content and return ranked excerpts
get_standardRead an indexed document or one named section
get_spatial_rhythmRetrieve relationship-first spacing guidance for a composition and context

The MCP is the reference book. The AI is the practitioner.

When building an interface, the AI decides which principles are relevant based on context, then looks them up:

  • Building a form? Look up H1 (feedback), H5 (error prevention), H9 (error recovery)
  • Designing navigation? Look up H4 (consistency), H6 (recognition over recall)
  • Adding a delete button? Look up H3 (user control), H5 (error prevention)
  • Laying out a form or dashboard? Retrieve its spatial rhythm before resolving product-specific tokens

The npm package is a delivery mechanism for the MCP server. It is installed and launched by the MCP client, not added to the application being designed. The client communicates with the local Node.js process over standard input/output.

The server:

  • does not run inside or bundle with the finished application;
  • does not read or write project files;
  • does not open a network port or send project data to Human Standards; and
  • uses the documentation snapshot included in that npm release.
  • Node.js 18.14.1 or later
  • An MCP-compatible client

You normally do not need to install the package in your project. Configure the MCP client to run:

Terminal window
npx --yes @humanstandards/mcp-server

Add this to ~/.codex/config.toml:

[mcp_servers.human-standards]
command = "npx"
args = ["--yes", "@humanstandards/mcp-server"]

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
"mcpServers": {
"human-standards": {
"command": "npx",
"args": ["--yes", "@humanstandards/mcp-server"]
}
}
}

Add the local stdio server from a terminal:

Terminal window
claude mcp add --transport stdio human-standards -- npx --yes @humanstandards/mcp-server

Run claude mcp list to check the connection. In any client, listing the MCP tools should show the five read-only Human Standards tools.

Use the source workflow when contributing to the server or testing unreleased documentation:

Terminal window
git clone https://github.com/aklodhi98/humanstandards.git
cd humanstandards/human-standards-mcp
npm ci
npm run build
npm run index-docs

Then configure the client to run the absolute path to human-standards-mcp/dist/index.js with Node.

Get detailed information about a specific Nielsen usability heuristic.

// Input
{ "id": "H1" }
// Output
{
"id": "H1",
"name": "Visibility of system status",
"principle": "The design should always keep users informed...",
"description": "Users should never have to wonder what is happening...",
"questions": [
"Does the user know what state the system is in?",
"Is feedback provided immediately after user actions?"
],
"examples": [
"Loading spinners and progress bars",
"Form submission confirmation messages"
],
"violations": [
"Silent failures with no error message",
"Actions that complete without confirmation"
],
"related_docs": [
{ "path": "/interaction-patterns/notifications-feedback/", "url": "..." }
]
}

Get a summary of all 10 Nielsen usability heuristics.

// Input
{}
// Output
{
"heuristics": [
{ "id": "H1", "name": "Visibility of system status", "principle": "..." },
{ "id": "H2", "name": "Match between system and the real world", "principle": "..." },
// ... H3-H10
],
"source": "https://www.nngroup.com/articles/ten-usability-heuristics/"
}

Search every indexed Human Standards document. Results include matched terms and an excerpt from the actual guidance, so the tool remains useful when the website cannot be opened.

// Input
{ "query": "forms error recovery", "limit": 3 }
// Output
{
"query": "forms error recovery",
"result_count": 3,
"results": [
{
"title": "Forms",
"description": "Designing forms that balance usability, accessibility, and conversion...",
"path": "/interaction-patterns/forms/",
"matched_terms": ["form", "error", "recovery"],
"snippet": "Relevant guidance excerpt...",
"relevance": 58,
"url": "https://humanstandards.org/interaction-patterns/forms/"
}
]
}

Use a path returned by search_standards to read the actual guidance. Long documents list their section headings and can be requested one section at a time.

// Input
{
"path": "/interaction-patterns/forms/",
"section": "Validation timing"
}

The response includes document content, available sections, key points, references, and an explicit truncated flag.

Retrieve the ordered spatial relationships and composition guidance for a whole interface or a form, settings section, card collection, editorial flow, or dashboard.

// Input
{
"pattern": "form-stack",
"density": "comfortable",
"viewport": "small"
}

The response preserves attached < associated < grouped < separated < sectional, includes responsive and density guidance, and supplies manual review questions. It requires the agent to resolve those roles through the product’s own tokens rather than imposing a universal 8px unit.

User: "Build a registration form"
AI thinks: "Forms involve feedback (H1), error prevention (H5),
and error recovery (H9). Let me check these."
AI: *calls get_heuristic('H5')* - Error prevention
AI: *calls get_heuristic('H9')* - Error recovery
AI: *calls search_standards('forms error recovery')* - Ranked excerpts
AI: *calls get_standard('/interaction-patterns/forms/', 'Validation timing')*
AI: *calls get_spatial_rhythm({ pattern: 'form-stack' })*
AI now knows:
- Use confirmation for important actions
- Validate before submission
- Show specific, actionable error messages
- Preserve user input after errors
- Keep labels, controls, messages, fields, and actions in a clear relationship hierarchy
AI: *generates form with these principles applied*
User: "Add navigation to the app"
AI thinks: "Navigation involves consistency (H4) and
recognition over recall (H6)."
AI: *calls get_heuristic('H4')* - Consistency and standards
AI: *calls get_heuristic('H6')* - Recognition rather than recall
AI: *calls search_standards('navigation')* - Navigation patterns
AI now knows:
- Follow platform conventions
- Keep terminology consistent
- Make options visible, don't require memorization
- Show current location clearly
IDNameWhen to Use
H1Visibility of system statusLoading states, feedback, progress
H2Match between system and real worldTerminology, icons, mental models
H3User control and freedomUndo, cancel, escape routes
H4Consistency and standardsPatterns, conventions, terminology
H5Error preventionValidation, confirmations, constraints
H6Recognition rather than recallVisible options, context, history
H7Flexibility and efficiencyShortcuts, customization, power users
H8Aesthetic and minimalist designFocus, hierarchy, remove noise
H9Help users recover from errorsClear messages, solutions, recovery
H10Help and documentationContextual help, searchable docs

When documentation changes, rebuild the search index:

Terminal window
cd human-standards-mcp
npm run index-docs
npm run build

Test the server standalone using MCP Inspector:

Terminal window
npm start
# In another terminal:
npx @modelcontextprotocol/inspector node dist/index.js

The MCP server source code is available in the human-standards-mcp directory of the repository.


See also: Spatial Rhythm, Grouping & Layout | Nielsen’s Heuristics | Getting Started