loading…
Search for a command to run...
loading…
Queries Aurum design system components, tokens, icons, Figma node IDs, and changelog via LLM clients.
Queries Aurum design system components, tokens, icons, Figma node IDs, and changelog via LLM clients.
Talk to the Aurum Design System from your LLM client. Components · tokens · icons · Figma node IDs · changelog — all queryable from Claude Code, Cursor, Copilot CLI, Gemini, and Claude Desktop.
aurum-mcp is a Model Context Protocol
server that surfaces the Aurum design system catalogue to LLMs. It reads a
bundled JSON manifest (auto-synced from
changejarapp.github.io/aurum-android)
and exposes 9 tools the LLM can call to answer questions like:
Pick your client below, paste the snippet into the matching config file, restart the client.
.mcp.json in your project root, or ~/.claude.json){
"mcpServers": {
"aurum": {
"command": "npx",
"args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
}
}
}
~/.cursor/mcp.json){
"mcpServers": {
"aurum": {
"command": "npx",
"args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
}
}
}
~/.copilot/mcp.json){
"mcpServers": {
"aurum": {
"command": "npx",
"args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
}
}
}
~/.gemini/settings.json under mcpServers){
"mcpServers": {
"aurum": {
"command": "npx",
"args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
}
}
}
~/Library/Application Support/Claude/claude_desktop_config.json)Same shape — drop the snippet above into mcpServers. Restart the app.
That's it. No npm registry, no ~/.npmrc, no PAT, no environment
variables. Public Git, public npx.
The default snippet uses #latest-stable — a CI-managed Git tag that
always points at the newest stable release. Behaves like npm's
@latest dist-tag: you get auto-updates on each fresh npx cache miss
(~10 min to a few hours, depending on your client's cache).
For reproducibility — automated scripts, audited setups — pin to an explicit tag:
"args": ["-y", "github:atri-jar/aurum-mcp#v0.1.0"]
Every version of aurum-mcp ships the manifest from the matching Aurum
library version (@aurum-mcp:0.1.6 ⇄ aurum:0.1.6). Call
get_aurum_version from your LLM client to see exactly what you're
talking to.
| Tool | Purpose |
|---|---|
list_components |
Enumerate all Aurum components, grouped by family |
get_component |
Full component spec — KDoc, signature, params, Figma deeplink |
list_tokens |
Token tables: color (semantic + visual), spacing, radius, borderWidth, iconSize, elevation, typography |
search_icons |
Find icons by name fragment or category |
get_icon |
Single icon: drawables, Compose path, line+fill Figma deeplinks |
get_changelog |
Per-version changelog as markdown — defaults to [Unreleased] |
lookup_figma_node |
Reverse-lookup: Figma node ID / URL → matching Aurum components & icons |
search |
Free-text search across all content with next-tool suggestions |
get_aurum_version |
Manifest provenance: version, SHA, generation timestamp |
See docs/tools.md for full input schemas and example responses.
npx-from-Git, not npm?We considered three distribution channels (public npm, GitHub Packages,
npx-from-Git) and chose the third because for a team-internal tool
optimising for simplicity, full ownership, and zero new infrastructure:
NPM_TOKEN rotation,
no 2FA recovery, no 72-hour publish-permanence anxiety. The repo IS
the artefact, end-to-end.#feat/branch-name — done. With npm
you'd publish a pre-release tag that lives in the registry forever.Trade-offs we accept: less polished version-pinning UX (Git tags vs. semver ranges) and no public-npm discoverability. The full reasoning lives in docs/architecture.md.
git clone https://github.com/atri-jar/aurum-mcp.git
cd aurum-mcp
pnpm install
pnpm dev # run the server via tsx + stdio
pnpm inspect # spawn the official MCP Inspector UI
pnpm build # tsc → dist/
pnpm smoke # end-to-end tools/list + tools/call test
The server reads data/manifest.json (committed). To pull the latest
manifest from the live Aurum gallery and update the bundled copy:
make manifest-fetch
CI does this automatically (see .github/workflows/sync-manifest.yml).
The Aurum design system lives in
Changejarapp/aurum-android
(private) and ships a public gallery at
changejarapp.github.io/aurum-android.
Its tooling/gallery/generate.py script aggregates components, tokens,
icons, Code Connect mappings, and the changelog from a single set of
parsers. We added a --emit-manifest flag that produces a structured
JSON projection of the same data — the contract is
tooling/manifest/schema.json in aurum-android. This MCP server is
the JSON's read-side: it loads the manifest at boot, indexes it, and
serves the 9 tools above. One source of truth, two render targets
(HTML for humans, JSON for agents). When aurum-ios ships, its
manifest plugs in as a sibling source — the MCP code is platform-
agnostic.
Full pipeline diagram: docs/architecture.md.
Issues and PRs welcome. See docs/contributing.md for the workflow (manifest sync, drift-check, release process). Code style: TypeScript strict, Prettier defaults; no business logic in markdown formatters.
MIT — see LICENSE.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"aurum-mcp": {
"command": "npx",
"args": []
}
}
}