
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@humanstandards/mcp-server
Advanced tools
Read-only Human Standards reference retrieval for AI-assisted interface work
A reference guide for human-centered design principles, accessible to AI agents via MCP
This MCP (Model Context Protocol) server gives compatible AI tools local, read-only access to a bundled snapshot of Human Standards documentation and Nielsen's 10 Usability Heuristics. It acts as a "reference book" that an AI can consult while designing and building interfaces.
The MCP server exposes five read-only tools:
get_heuristic - Deep dive on a specific Nielsen usability heuristic (H1-H10)get_all_heuristics - Summary of all 10 heuristics for contextsearch_standards - Search the full Human Standards library with ranked excerptsget_standard - Read an indexed document or one named sectionget_spatial_rhythm - Retrieve relationship-first spacing guidance for a composition and contextThe 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. For example:
The package is installed and launched by the MCP client, not added as a
dependency of the application being designed. The client starts
@humanstandards/mcp-server as a local Node.js process and communicates with it
over standard input/output.
The server:
Updating to a newer package release updates the bundled guidance.
get_heuristicGet 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 about what is going on...",
"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?",
"Are loading states and progress clearly communicated?"
],
"examples": [
"Loading spinners and progress bars",
"Form submission confirmation messages",
"Highlighted current navigation item"
],
"violations": [
"Silent failures with no error message",
"Actions that complete without confirmation"
],
"related_docs": [
{ "path": "/interaction-patterns/notifications-feedback/", "url": "https://humanstandards.org/interaction-patterns/notifications-feedback/" }
],
"source": "https://www.nngroup.com/articles/ten-usability-heuristics/"
}
get_all_heuristicsGet 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": "..." },
...
],
"source": "https://www.nngroup.com/articles/ten-usability-heuristics/"
}
search_standardsSearch the complete indexed document content. Results include the matched terms and an excerpt from the actual guidance, not only a website link.
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/"
}
]
}
get_standardRead the guidance found by search_standards. Long documents list their section
headings and can be requested one section at a time.
{
"path": "/interaction-patterns/forms/",
"section": "Validation timing"
}
The response includes the document content, available sections, key points,
references, and an explicit truncated flag.
get_spatial_rhythmRetrieve the ordered spacing relationships and composition guidance for a whole interface or a form, settings section, card collection, editorial flow, or dashboard.
{
"pattern": "form-stack",
"density": "comfortable",
"viewport": "small"
}
The response preserves the relationship order attached < associated < grouped < separated < sectional, includes manual review questions, and tells the agent
to resolve those roles with the product's own spacing tokens. It deliberately
does not prescribe a universal pixel unit.
You normally do not need to install the package in your project. Configure the MCP client to run:
npx --yes @humanstandards/mcp-server
The first run downloads the package through npm. The MCP client then starts and stops the local server when needed.
Add this to ~/.codex/config.toml:
[mcp_servers.human-standards]
command = "npx"
args = ["--yes", "@humanstandards/mcp-server"]
Add this to the Claude Desktop configuration:
{
"mcpServers": {
"human-standards": {
"command": "npx",
"args": ["--yes", "@humanstandards/mcp-server"]
}
}
}
On macOS the file is ~/Library/Application Support/Claude/claude_desktop_config.json.
On Windows it is %APPDATA%\\Claude\\claude_desktop_config.json.
Add the server from a terminal:
claude mcp add --transport stdio human-standards -- npx --yes @humanstandards/mcp-server
Run claude mcp list to check the connection.
After configuration, ask the client to list its MCP tools. Human Standards should provide five read-only tools.
Use the source workflow when contributing to the server or testing unreleased documentation:
git clone https://github.com/aklodhi98/humanstandards.git
cd humanstandards/human-standards-mcp
npm ci
npm run build
npm run index-docs
Then point the client at the built entry point:
{
"mcpServers": {
"human-standards": {
"command": "node",
"args": ["/absolute/path/to/humanstandards/human-standards-mcp/dist/index.js"]
}
}
}
npm run index-docs creates data/standards-index.json from the Human Standards
Markdown and MDX source. Run it whenever the documentation changes, then commit
the updated index so the next package contains the new snapshot.
# Start the server
npm start
# In another terminal, test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js
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 guidance 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
| ID | Name | When to Use |
|---|---|---|
| H1 | Visibility of system status | Loading states, feedback, progress |
| H2 | Match between system and real world | Terminology, icons, mental models |
| H3 | User control and freedom | Undo, cancel, escape routes |
| H4 | Consistency and standards | Patterns, conventions, terminology |
| H5 | Error prevention | Validation, confirmations, constraints |
| H6 | Recognition rather than recall | Visible options, context, history |
| H7 | Flexibility and efficiency | Shortcuts, customization, power users |
| H8 | Aesthetic and minimalist design | Focus, hierarchy, remove noise |
| H9 | Help users recover from errors | Clear messages, solutions, recovery |
| H10 | Help and documentation | Contextual help, searchable docs |
human-standards-mcp/
├── src/
│ ├── index.ts # Main MCP server + heuristics data
│ ├── spatial-rhythm.ts # Spatial-rhythm contract validation and selection
│ ├── types/ # TypeScript types
│ ├── tools/
│ │ ├── get-guidance.ts # Search and excerpt implementation
│ │ └── get-standard.ts # Document and section retrieval
│ └── indexer/
│ └── index-docs.ts # Documentation indexer
├── data/
│ ├── spatial-rhythm.json # Machine-readable relationship-first spacing contract
│ └── standards-index.json # Generated search index
├── dist/ # Compiled JavaScript
└── package.json
When documentation changes:
npm run index-docs
npm run build
The indexer:
.md and .mdx file in src/content/docs/data/standards-index.jsonNo category allow-list is required. Add a frontmatter-bearing Markdown or MDX
file anywhere under src/content/docs/, then rebuild and commit the generated
index. The test suite asserts complete coverage and representative retrievals.
See LICENSE.md for details.
Issues and PRs welcome! See the main Human Standards repository.
Built with Model Context Protocol and Human Standards.
FAQs
Read-only Human Standards reference retrieval for AI-assisted interface work
We found that @humanstandards/mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.