Skip to main content
Glama

aurum-mcp

LLM 클라이언트에서 Aurum 디자인 시스템과 대화하세요. 컴포넌트 · 토큰 · 아이콘 · Figma 노드 ID · 변경 로그 — 이 모든 것을 Claude Code, Cursor, Copilot CLI, Gemini 및 Claude Desktop에서 쿼리할 수 있습니다.

aurum-mcp는 Aurum 디자인 시스템 카탈로그를 LLM에 제공하는 Model Context Protocol 서버입니다. 이 서버는 번들된 JSON 매니페스트(changejarapp.github.io/aurum-android에서 자동 동기화됨)를 읽고, LLM이 다음과 같은 질문에 답할 수 있도록 9가지 도구를 노출합니다:

  • "AurumChip 사용 방법을 알려줘."

  • "부정적 피드백 텍스트에 사용하는 색상 토큰은 무엇인가요?"

  • "AurumTopAppBar의 Figma 노드는 무엇인가요?"

  • "뒤로 가기 화살표 아이콘을 알려줘."

  • "최근 릴리스에서 변경된 사항은 무엇인가요?"


설치 (한 번 붙여넣기로 모든 클라이언트 적용)

아래에서 클라이언트를 선택하고, 해당 설정 파일에 스니펫을 붙여넣은 뒤 클라이언트를 재시작하세요.

Claude Code (프로젝트 루트의 .mcp.json 또는 ~/.claude.json)

{
  "mcpServers": {
    "aurum": {
      "command": "npx",
      "args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "aurum": {
      "command": "npx",
      "args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
    }
  }
}

Copilot CLI (~/.copilot/mcp.json)

{
  "mcpServers": {
    "aurum": {
      "command": "npx",
      "args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
    }
  }
}

Gemini CLI (~/.gemini/settings.json의 mcpServers 항목)

{
  "mcpServers": {
    "aurum": {
      "command": "npx",
      "args": ["-y", "github:atri-jar/aurum-mcp#latest-stable"]
    }
  }
}

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)

동일한 형식입니다. 위 스니펫을 mcpServers에 추가하세요. 앱을 재시작합니다.

끝입니다. npm 레지스트리, ~/.npmrc, PAT, 환경 변수가 필요 없습니다. 공개 Git, 공개 npx만 있으면 됩니다.


Related MCP server: GDS MCP

버전 관리

기본 스니펫은 항상 최신 안정 릴리스를 가리키는 CI 관리 Git 태그인 #latest-stable을 사용합니다. npm의 @latest dist-tag와 유사하게 작동하며, npx 캐시가 누락될 때마다(클라이언트 캐시에 따라 약 10분에서 몇 시간 소요) 자동 업데이트를 받습니다.

재현 가능성(자동화된 스크립트, 감사된 설정 등)을 위해서는 명시적 태그를 고정하세요:

"args": ["-y", "github:atri-jar/aurum-mcp#v0.1.0"]

aurum-mcp의 모든 버전은 일치하는 Aurum 라이브러리 버전의 매니페스트를 제공합니다 (@aurum-mcp:0.1.6 ⇄ aurum:0.1.6). LLM 클라이언트에서 get_aurum_version을 호출하여 현재 사용 중인 버전을 정확히 확인하세요.


도구

도구

목적

list_components

제품군별로 그룹화된 모든 Aurum 컴포넌트 나열

get_component

전체 컴포넌트 사양 — KDoc, 시그니처, 매개변수, Figma 딥링크

list_tokens

토큰 테이블: 색상(의미론적 + 시각적), 간격, 반경, 테두리 너비, 아이콘 크기, 고도, 타이포그래피

search_icons

이름 조각이나 카테고리로 아이콘 찾기

get_icon

단일 아이콘: 드로어블, Compose 경로, 선+채우기 Figma 딥링크

get_changelog

마크다운 형식의 버전별 변경 로그 — 기본값은 [Unreleased]

lookup_figma_node

역방향 조회: Figma 노드 ID / URL → 일치하는 Aurum 컴포넌트 및 아이콘

search

다음 도구 제안과 함께 모든 콘텐츠에 대한 자유 텍스트 검색

get_aurum_version

매니페스트 출처: 버전, SHA, 생성 타임스탬프

전체 입력 스키마와 응답 예시는 docs/tools.md를 참조하세요.


왜 npm이 아닌 npx-from-Git인가요?

세 가지 배포 채널(공개 npm, GitHub Packages, npx-from-Git)을 고려했으며, 단순성, 완전한 소유권, 새로운 인프라 제로를 최적화하기 위해 세 번째 방식을 선택했습니다:

  • 관리할 새로운 계정 제로. npm 조직, NPM_TOKEN 교체, 2FA 복구, 72시간 게시 영구 유지에 대한 불안이 없습니다. 저장소 자체가 처음부터 끝까지 아티팩트입니다.

  • 브랜치 기반 테스트 무료 제공. 기능 브랜치를 테스트하고 싶으신가요? 스니펫을 #feat/branch-name으로 변경하기만 하면 됩니다. npm을 사용하면 레지스트리에 영원히 남는 프리릴리스 태그를 게시해야 합니다.

  • 이미 사용 중인 인증 방식. 이 저장소는 공개되어 있으며, 팀원들은 GitHub 접근 권한을 가지고 있으므로 새로 설정할 것이 없습니다.

  • 미미한 설치 지연. 첫 실행 시 클론 + 빌드에 약 510초가 소요되며, npm의 25초와 비교됩니다. 캐시된 실행은 동일합니다.

우리가 감수하는 트레이드오프: 다소 투박한 버전 고정 UX(Git 태그 vs semver 범위)와 공개 npm 검색 기능 부재. 전체적인 이유는 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

서버는 (커밋된) data/manifest.json을 읽습니다. 라이브 Aurum 갤러리에서 최신 매니페스트를 가져와 번들된 복사본을 업데이트하려면 다음을 수행하세요:

make manifest-fetch

CI가 이를 자동으로 수행합니다(.github/workflows/sync-manifest.yml 참조).


아키텍처 요약

Aurum 디자인 시스템은 Changejarapp/aurum-android(비공개)에 존재하며 changejarapp.github.io/aurum-android에서 공개 갤러리를 제공합니다. tooling/gallery/generate.py 스크립트는 단일 파서 세트에서 컴포넌트, 토큰, 아이콘, Code Connect 매핑 및 변경 로그를 집계합니다. 우리는 동일한 데이터의 구조화된 JSON 프로젝션을 생성하는 --emit-manifest 플래그를 추가했습니다. 계약은 aurum-android의 tooling/manifest/schema.json입니다. 이 MCP 서버는 해당 JSON의 읽기 전용 인터페이스로, 부팅 시 매니페스트를 로드하고 인덱싱하여 위의 9가지 도구를 제공합니다. 단일 진실 공급원(Single Source of Truth)과 두 개의 렌더링 대상(사람을 위한 HTML, 에이전트를 위한 JSON)을 가집니다. aurum-ios가 출시되면 해당 매니페스트가 형제 소스로 연결되며, MCP 코드는 플랫폼에 구애받지 않습니다.

전체 파이프라인 다이어그램: docs/architecture.md.


기여

이슈와 PR을 환영합니다. 워크플로우(매니페스트 동기화, 드리프트 체크, 릴리스 프로세스)는 docs/contributing.md를 참조하세요. 코드 스타일: TypeScript strict, Prettier 기본값; 마크다운 포맷터에는 비즈니스 로직을 포함하지 않습니다.

라이선스

MIT — LICENSE를 참조하세요.

Available Tools

9 tools
get_aurum_versionA

Return the Aurum library version, manifest SHA, generation timestamp, and platform coverage. Use this to verify which Aurum snapshot you are reasoning about before answering version-specific questions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must cover behavioral traits. It discloses the returned information (version, SHA, timestamp, platform coverage) without mentioning any side effects, which is adequate for a read-only metadata tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that are front-loaded with the primary purpose and a usage hint. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides sufficient details about what it returns and its intended use case. It is fully adequate for an AI agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema coverage is 100%. The description adds no parameter info, which is acceptable since there are none to document. Baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the Aurum library version, manifest SHA, generation timestamp, and platform coverage. It distinguishes itself from sibling tools like get_changelog and get_icon by focusing on version metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: before answering version-specific questions. While it does not list alternatives, the context of sibling tools makes the usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_changelogA

Return one or more Aurum changelog entries as markdown. Default returns the [Unreleased] section. Pass a specific version (e.g. 0.1.5) for that release, or all for the full history.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoVersion to fetch (`Unreleased`, a semver string, or `all`). Defaults to `Unreleased`.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses output format (markdown) and parameter behavior. With no annotations, it carries the full transparency burden, which it meets without omitting key traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover purpose, default, and options. Every word earns its place; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple tool with one optional parameter. Lacks error handling or sample output, but adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but description adds meaning by explaining default, accepted values (Unreleased, semver, 'all'), and output format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns Aurum changelog entries as markdown. Distinguishes itself from sibling tools (get_component, list_tokens, etc.) by specifying a unique resource and purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear instructions on when to use (default Unreleased, specific version, or 'all') but lacks explicit guidance on when not to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_componentA

Fetch the full details of a single Aurum component by name: KDoc, Compose signature, every parameter (with types, defaults, and per-param docs), preview function names, Figma deeplink, Code Connect path, and gallery URL. Use after list_components or search to get the canonical snippet for a component.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesComposable name, e.g. `AurumChip`. Case-sensitive.
platformNoReserved for future cross-platform manifests.all

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description conveys a read-like operation ('Fetch') and details the return data. It does not contradict any annotations and adds meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no waste. Front-loaded with the core purpose, then usage guidance. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description thoroughly explains the return data (KDoc, signature, parameters, preview, Figma link, etc.), making it complete for a fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. The description adds context: name is case-sensitive and platform is reserved for future use, enhancing the schema's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches full details of a single Aurum component by name, enumerating specific data points (KDoc, signature, parameters, etc.). This distinguishes it from siblings like 'list_components' which list components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use after 'list_components' or 'search' to get the canonical snippet, providing clear context for when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_iconA

Fetch full details for a single Aurum icon by name: drawable resource paths, Compose path (AurumIcons.<Category>.<Name>), paired line/fill Figma node IDs, and deeplinks. Pass weight to focus on one variant.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesIcon name, e.g. `ChevronRight`. Case-insensitive.
weightNoWhich weight to highlight (`line`, `fill`, or `both`).both

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It details the return types (paths, IDs, deeplinks) and the effect of the weight parameter. It does not mention side effects, authentication needs, or read-only status, but the operation is clearly a data fetch with no destructiveness implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. The first sentence states purpose and return types concisely; the second adds a usage hint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately lists what is returned. For a simple tool with two parameters, it covers the core functionality. It could mention missing-icon behavior or pagination but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for both parameters (100% coverage). The description adds only minor nuance ('Pass weight to focus on one variant'), which largely restates the enum's purpose. Thus, the description adds limited value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch full details') and identifies the resource ('single Aurum icon by name'). It lists the specific information returned (drawable resource paths, Compose path, Figma node IDs, deeplinks), clearly distinguishing it from sibling tools like search_icons which search for icons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (fetch details by name) and offers guidance on the weight parameter to focus on a variant. However, it does not explicitly state when to use this tool versus alternatives like search_icons, nor does it provide conditions for use or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_componentsA

List every Aurum component in the current manifest, with one-line descriptions and family grouping. Optionally filter to a specific platform (android, ios, or all). Use this as a starting point for navigation; follow up with get_component for full details.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoRestrict results to a single platform. Omit or pass 'all' for everything.all

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry the burden. It states 'List', implying a read-only operation with no side effects. It also describes the output format ('one-line descriptions and family grouping'), but does not explicitly mention idempotency or permissions. For a listing tool, this is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant information. The first sentence states purpose and scope; the second gives usage guidance. Every sentence is valuable and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with 1 optional parameter and no output schema. The description mentions the output format ('one-line descriptions and family grouping') and positions it as a starting point. It does not cover pagination or performance, but for a listing tool of known components, this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the platform parameter. The description reiterates the filtering option but does not add new semantic detail beyond what the schema provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'every Aurum component', and the scope 'in the current manifest'. It also specifies the output format: 'one-line descriptions and family grouping'. This distinguishes it from siblings like get_component (full details) and search (different use case).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this as a starting point for navigation; follow up with get_component for full details.' This provides clear context on when to use this tool and suggests an alternative sibling for more detail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tokensA

List Aurum design tokens by category: color (semantic + visual palette), spacing, radius, borderWidth, iconSize, elevation, typography. Omit category to get a summary of all categories with counts. Pass a category for the full table.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoToken category to expand. Omit for a summary across all categories.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description discloses key behaviors: the tool returns a summary with counts when category is omitted, and a full table when a category is provided. This adds behavioral context beyond the schema, though no mention of pagination, rate limits, or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, and no extraneous information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 optional enum parameter, no output schema, no annotations), the description covers the essential behavioral aspects. It explains both use cases and the structure of the response implicitly. Could be improved by briefly describing the output format, but the context signals indicate no output schema, so the burden is on the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with an enum and description. The description adds value by explaining the semantic difference between omitting the parameter (summary) and providing it (detailed table), which is not present in the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists Aurum design tokens by category, enumerating the categories and distinguishing between summary (omit category) and detailed listing (pass category). This verb+resource+scope is specific and distinct from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to omit category for a summary and when to pass a category for full table, providing clear action guidance. No mention of alternatives, but the tool is self-contained and the instructions are sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_figma_nodeB

Reverse-lookup: given a Figma node ID (5126:2507 or 5126-2507) or a full Figma URL, return the matching Aurum components, Code Connect mappings, or icons. Designed for the designer workflow: 'I'm looking at this Figma node, what code is it?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeIdOrUrlYesFigma node ID (`123:456`, `123-456`) or any Figma URL containing one.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description mentions input formats and output types (Aurum components, Code Connect mappings, icons) but lacks details on result cardinality, error handling, pagination, or side effects. Incomplete behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences, front-loaded with key term 'Reverse-lookup', includes example IDs. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description vaguely says 'return matching...' without specifying format (list vs. single) or handling of missing nodes. Lacks completeness for a simple lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter description. Tool description adds example formats but does not significantly enhance beyond schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: reverse-lookup from Figma node ID or URL to code artifacts. It specifies input formats and output types, distinguishing it from siblings like search or get_component.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for designer workflow ('I'm looking at this Figma node, what code is it?') but does not explicitly state when not to use it or mention alternative tools (e.g., search) for similar tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_iconsA

Search Aurum's icon catalog by name fragment or category. Returns matching icons with their drawable resource names, paired line/fill Figma node IDs, and deeplinks. Use this when a designer or engineer is looking for the right icon to use.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSubstring to match against icon name or category (case-insensitive).
categoryNoOptional category filter (Navigation, Action, Content, etc.).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden. It reveals that the tool returns matching icons with specific fields, which is helpful. However, it omits details like result limits, pagination, or ordering, which are relevant for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences that efficiently convey purpose, output, and usage context. No unnecessary words, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema, no nested objects) and the presence of sibling tools, the description adequately covers purpose and output. It lacks details on result format (e.g., list vs single, sorting) but is generally complete for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters fully described in the schema (query: case-insensitive substring; category: optional with examples). The description adds little beyond the schema, merely summarizing the search criteria. Given high coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches Aurum's icon catalog by name fragment or category, and specifies the output includes drawable resource names, Figma node IDs, and deeplinks. It differentiates from siblings like get_icon (singular) and search (generic) by providing a specific use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool when a designer or engineer is looking for the right icon, which provides clear context. However, it does not explicitly state when not to use it or mention alternative tools, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedget_aurum_version
    • First observedget_changelog
    • First observedget_component
    • First observedget_icon
    • First observedlist_components
    • First observedlist_tokens
    • First observedlookup_figma_node
    • First observedsearch
    • First observedsearch_icons

TDQS

A4.2/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource or action: version, changelog, component details, icon details, components listing, tokens listing, Figma lookup, general search, and icon search. No overlap in purposes.

Naming Consistency5/5

All tools use consistent snake_case with clear verb-noun patterns (get_, list_, search, lookup_). The naming logically distinguishes operations like retrieving single items (get_component) vs listing all (list_components).

Tool Count5/5

With 9 tools, the server is well-scoped for a design system reference library. Each tool covers a necessary aspect (components, icons, tokens, changelog, version, Figma integration, and search) without excess.

Completeness4/5

The tool set covers the core read operations for components, icons, tokens, changelog, and Figma lookup. A minor gap is the lack of a dedicated 'list all icons' tool (only search_icons is available, requiring a query), but the overall surface is thorough.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers