Skip to main content
Glama
Carnegie Mellon Web Kilt MCP Server

Carnegie Mellon Web Kilt MCP Server

Official
by cmu-web
README.md
# Carnegie Mellon Web Kilt MCP Server

An [MCP](https://modelcontextprotocol.io/) server for the
[Carnegie Mellon Web Kilt](https://webkilt.andrew.cmu.edu/), so an AI coding
agent can set up the kit and build pages with it the way the docs describe.

It reads each kit release's own data (`docs/kit.json` and the stylesheets)
from jsDelivr, so it knows every release from 0.3.0 on and never falls
behind the docs. It only reads public docs: no sign-in, nothing stored.

## Add It to Your Agent

The hosted server is at `https://webkilt.andrew.cmu.edu/mcp` (Streamable
HTTP).

Claude Code:

```bash
claude mcp add --transport http cmu-web-kilt https://webkilt.andrew.cmu.edu/mcp
```

VS Code (`.vscode/mcp.json`):

```json
{
  "servers": {
    "cmu-web-kilt": { "type": "http", "url": "https://webkilt.andrew.cmu.edu/mcp" }
  }
}
```

Cursor and most other agents take the same address in their MCP settings.

To run it on your own computer instead, over stdio:

```bash
npx -y cmu-web-kilt-mcp
```

## Tools

| Tool                | What It Does                                                                                                                                                |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `search_components` | Lists components that match a search, or all of them, with labels and docs links                                                                            |
| `get_component`     | One component's description, requirements, classes and example markup                                                                                       |
| `get_install`       | The code to add the kit for a setup: Cascade, another CMS, a web app, Django, Node or a prototype                                                           |
| `get_conventions`   | Class names, AP style and Title Case, headings, buttons and links, messages, colors, images and accessibility                                               |
| `check_html`        | Checks a page or fragment: unknown `cmu-` classes or `data-cmu-` hooks and, for a whole page, missing files, the `cmu-app` body class and the loading order |

Each tool takes an optional `version`, such as `0.4.0`; it defaults to the
latest release. The server also has a `set-up-kit` prompt.

## Develop

```bash
npm install
npm run dev          # Streamable HTTP on http://localhost:3000/mcp
npm run check        # lint, format, types, tests, build
node dist/cli.js     # stdio, after npm run build
node dist/cli.js --http 3333
```

The tests answer from a copy of kit 0.4.0's files in `test/fixtures/`, so
they don't use the network.

See [DEPLOYMENT.md](DEPLOYMENT.md) for hosting.

## License

BSD 3-Clause; see [LICENSE](LICENSE).

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct action on a distinct object: search_components lists matches, get_component retrieves one component's details, get_install returns setup code, get_conventions returns rules, and check_html validates markup. There is no meaningful overlap between listing, fetching, and validating.

Naming Consistency5/5

All five tools use a consistent snake_case verb_noun pattern (search_, get_, check_). The verbs accurately reflect the action, and there is no mixing of conventions.

Tool Count4/5

Five tools is on the low end but covers the discover/read/install/validate lifecycle without redundancy. Slightly more surface (e.g., a separate token or template lookup) could exist, but nothing feels extraneous.

Completeness4/5

The surface covers finding components, reading their docs, installing the kit, retrieving conventions, and validating HTML—the core workflows for building a page with this kit. Minor gaps remain, such as retrieving full page templates or searching within the conventions, but agents can work around these.