mcpField
W
W3c Mcp Server

W3c Mcp Server

Local
github.com/shuji-bonjiDeveloper Tools4Updated 1w ago

About W3c Mcp Server

W3c Mcp Server gives AI assistants searchable access to official W3C, WHATWG, and IETF web standards data. It covers specification details as well as WebIDL, CSS properties, HTML elements, and PWA-related specifications.

Key features

  1. 01Search and filter web specifications
  2. 02Retrieve specification details
  3. 03Look up WebIDL interfaces
  4. 04Explore CSS properties and HTML elements
  5. 05Find PWA-related specifications

Use cases

  1. 01Find the specification for a web API
  2. 02Check JavaScript interface definitions
  3. 03Look up CSS Grid properties
  4. 04Explore standards related to PWAs

MCP support

It is an MCP server exposing tools for searching and retrieving web standards data, WebIDL definitions, CSS properties, HTML elements, and PWA specifications.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"w3c": {
"command": "npx",
"args": [
"-y",
"@shuji-bonji/w3c-mcp"
]
}
}
}
Run commandnpx -y @shuji-bonji/w3c-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@shuji-bonji/w3c-mcp

Tools

11

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
organizationenumNoFilter by standards organizationW3C | WHATWG | IETF | all
keywordstringNoFilter by keyword in title or shortname
categorystringNoFilter by category (e.g., "browser")
limitnumberNoMaximum number of results (default: 50)

Details

From the project README

W3C MCP Server

npm version License: MIT Node.js MCP Built with Claude Code

日本語版 README

MCP Server for accessing W3C/WHATWG/IETF web specifications. Provides AI assistants with access to official web standards data including specifications, WebIDL definitions, CSS properties, and HTML elements.

Installation

npm install -g @shuji-bonji/w3c-mcp

Or use directly with npx:

npx @shuji-bonji/w3c-mcp

Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

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

{
  "mcpServers": {
    "w3c": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/w3c-mcp"]
    }
  }
}
Claude Code

Add the server using the claude mcp CLI:

claude mcp add w3c -- npx -y @shuji-bonji/w3c-mcp

Or edit ~/.claude.json / project-level .mcp.json manually with the same mcpServers block shown above.

Cursor

Add to your Cursor MCP settings (.cursor/mcp.json in your project or global settings):

{
  "mcpServers": {
    "w3c": {
      "command": "npx",
      "args": ["-y", "@shuji-bonji/w3c-mcp"]
    }
  }
}

Available Tools

Specification Discovery
list_w3c_specs

List W3C/WHATWG/IETF web specifications with optional filtering.

Parameters:

  • organization (optional): Filter by organization - "W3C", "WHATWG", "IETF", or "all"
  • keyword (optional): Filter by keyword in title or shortname
  • category (optional): Filter by category
  • limit (optional): Maximum number of results (default: 50)
get_w3c_spec

Get detailed information about a specific web specification.

Parameters:

  • shortname (required): Specification shortname (e.g., "service-workers", "appmanifest", "fetch")
search_w3c_specs

Search web specifications by query string.

Parameters:

  • query (required): Search query (e.g., "service worker", "manifest", "storage")
  • limit (optional): Maximum number of results (default: 20)
WebIDL
get_webidl

Get WebIDL interface definitions for a specification. WebIDL defines the JavaScript APIs.

Parameters:

  • shortname (required): Specification shortname (e.g., "service-workers", "fetch", "dom")
list_webidl_specs

List all specifications that have WebIDL definitions available.

CSS
get_css_properties

Get CSS property definitions from a specific spec or all specs.

Parameters:

  • spec (optional): Specification shortname (e.g., "css-grid-1", "css-flexbox-1")
  • property (optional): Search for a specific CSS property by name
list_css_specs

List all CSS specifications that have property definitions available.

HTML Elements
get_html_elements

Get HTML element definitions from a specific spec or all specs.

Parameters:

  • spec (optional): Specification shortname (e.g., "html", "svg")
  • element (optional): Search for a specific element by name (e.g., "video", "canvas")
list_element_specs

List all specifications that have HTML element definitions available.

PWA
get_pwa_specs

Get all Progressive Web App (PWA) related specifications.

Parameters:

  • coreOnly (optional): If true, return only the core PWA specs (Service Worker, Manifest, Push, Notifications)
  • includeRelated (optional): If true, also include related specs whose title mentions storage, caching, offline, etc. (Storage, Storage Buckets, Storage Access API, ...). Ignored when coreOnly is true.

By default only the specs listed in PWA_SHORTNAMES (src/constants/index.ts) are returned, matched by exact shortname.

Usage Examples

Find Service Worker APIs
Use the get_webidl tool with shortname "service-workers" to see the ServiceWorker interface definitions.
Explore PWA Technologies
Use get_pwa_specs to see all PWA-related specifications, then use get_w3c_spec for details on each one.
Look up CSS Grid Properties
Use get_css_properties with spec "css-grid-1" to see all CSS Grid layout properties.
Search for Storage APIs
Use search_w3c_specs with query "storage" to find all storage-related specifications.

Data Sources

This MCP server uses the following W3C/webref data packages:

PackageDescription
web-specsMetadata for all web specifications
@webref/idlWebIDL interface definitions
@webref/cssCSS properties and values
@webref/elementsHTML element definitions

These packages are maintained by the W3C and provide machine-readable data extracted from official specifications.

GitHub Repositories:

Debug Mode

Enable debug logging with environment variables:

# Enable debug logging
W3C_MCP_DEBUG=true npx @shuji-bonji/w3c-mcp

# Enable performance logging only
W3C_MCP_PERF=true npx @shuji-bonji/w3c-mcp

Debug output includes:

  • Tool call arguments
  • Execution timing
  • Data loading performance

Architecture

src/
├── index.ts           # MCP server entry point
├── constants/
│   └── index.ts       # Centralized configuration constants
├── data/
│   └── loader.ts      # Data loading with caching
├── tools/             # Tool implementations
│   ├── list-specs.ts
│   ├── get-spec.ts
│   ├── search-specs.ts
│   ├── get-webidl.ts
│   ├── get-css.ts
│   ├── get-elements.ts
│   └── get-pwa-specs.ts
├── schemas/
│   └── index.ts       # Zod validation schemas
├── errors/
│   └── index.ts       # Custom error classes
├── utils/
│   ├── logger.ts      # Debug logging utilities
│   ├── mapper.ts      # Spec data mapping utilities
│   ├── search.ts      # Generic search utilities
│   └── suggestions.ts # Suggestion generation utilities
└── types/
    └── index.ts       # TypeScript type definitions

tests/
├── setup.ts           # Test setup
├── data/              # Data loader tests
├── tools/             # Tool tests
└── integration/       # MCP server integration tests
Performance
  • Startup: ~70ms parallel preloading of all data
  • Spec Lookup: O(1) using Map-based index
  • Search: Optimized with early termination on exact matches

Development

# Clone the repository
git clone https://github.com/shuji-bonji/w3c-mcp.git
cd w3c-mcp

# Install dependencies
npm install

# Build
npm run build

# Run in development mode
npm run dev

# Run with debug logging
W3C_MCP_DEBUG=true npm start

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Lint code
npm run lint

# Format code
npm run format

# Lint + format (auto-fix)
npm run check

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.