Skip to content

MCP Server

The Human Standards MCP (Model Context Protocol) server gives AI tools like Claude real-time access to usability heuristics and design standards. Think of it as a reference book that AI can consult while building interfaces.

The MCP server exposes three tools:

ToolPurpose
get_heuristicDeep dive on a specific Nielsen usability heuristic (H1-H10)
get_all_heuristicsSummary of all 10 heuristics for context
search_standardsSearch the Human Standards documentation

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)
  • Node.js 18+
  • npm or yarn
Terminal window
# Clone the repository
git clone https://github.com/aklodhi98/humanstandards.git
cd humanstandards/human-standards-mcp
# Install dependencies and build
npm install
npm run build
# Index the documentation (creates searchable index)
npm run index-docs

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": "node",
"args": ["/path/to/humanstandards/human-standards-mcp/dist/index.js"]
}
}
}

Option 1: Edit ~/.claude.json directly

{
"projects": {
"/path/to/your/project": {
"mcpServers": {
"human-standards": {
"command": "node",
"args": ["/path/to/humanstandards/human-standards-mcp/dist/index.js"]
}
}
}
}
}

Option 2: Use the /mcp command

  1. Start Claude Code in your project directory
  2. Type /mcp to open the MCP configuration menu
  3. Add a new server with:
    • Name: human-standards
    • Command: node
    • Args: /path/to/humanstandards/human-standards-mcp/dist/index.js

After configuration, restart Claude Code and type /mcp to verify the server is connected.

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
],
"reference": "https://humanstandards.org/interaction-patterns/nielsen-heuristics"
}

Search Human Standards documentation for specific topics.

// Input
{ "query": "cognitive load" }
// Output
{
"query": "cognitive load",
"results": [
{
"title": "Cognitive Load",
"description": "Reduce extraneous load and fit intrinsic load to user ability.",
"path": "/cognition/cognitive-load",
"url": "https://humanstandards.org/cognition/cognitive-load"
},
{
"title": "Working Memory",
"description": "Understanding the brain's limited scratch pad...",
"path": "/cognition/working-memory",
"url": "https://humanstandards.org/cognition/working-memory"
}
]
}
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')* - Form patterns
AI now knows:
- Use confirmation for important actions
- Validate before submission
- Show specific, actionable error messages
- Preserve user input after errors
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: Nielsen’s Heuristics | Getting Started