Skip to main content
Glama
ahmadeko2017

Apple Style MCP Server

by ahmadeko2017

๐ŸŽ Apple Style MCP Server (@ahmad/apple-style-mcp)

Enterprise-Grade Model Context Protocol (MCP) Server untuk Audit Arsitektur, Design Tokens, dan Scaffolding Komponen Produksi Berbasis Apple Human Interface Guidelines (HIG) Lintas macOS, iPadOS, dan iOS

CI Quality Gate Version MCP Protocol TypeScript Coverage License: MIT


๐ŸŒŸ Mengapa Proyek Ini Dibuat?

Membangun aplikasi lintas perangkat Apple (macOS Desktop, iPadOS Tablet, dan iOS Mobile) menggunakan teknologi modern (Tauri v2, React + TypeScript, maupun SwiftUI) sering kali mengalami inkonsistensi ergonomi dan visual:

  • Ikon sidebar yang bergeser (layout shift) saat diciutkan di macOS.

  • Bayangan (box-shadow) menu yang terpotong bingkai jendela frameless 12px atau memicu garis hitam 1px pada Windows DWM.

  • Penggunaan material Liquid Glass (iOS 26 / iPadOS 26 / macOS Tahoe) yang keliru diterapkan pada layer konten.

  • Ukuran target sentuh di bawah 44x44pt atau ketiadaan viewport-fit=cover & env(safe-area-inset-*) di sekitar Dynamic Island dan Home Indicator.

@ahmad/apple-style-mcp hadir sebagai Single Source of Truth bagi AI Coding Agents (Claude Desktop, Cursor, Windsurf, Antigravity) untuk secara otomatis mengaudit proyek, mengekstrak design tokens multi-format, membandingkan pola UI lintas perangkat, dan men-scaffold 21 komponen siap produksi.


Related MCP server: hig-mcp

๐Ÿ›๏ธ Arsitektur Sistem

flowchart LR
    subgraph Client["AI Coding Assistants"]
        A1["Claude Desktop"]
        A2["Cursor / Windsurf"]
        A3["Antigravity IDE"]
    end

    subgraph Transport["MCP Server Layer"]
        SDK["@modelcontextprotocol/sdk<br/>JSON-RPC 2.0 Stdio"]
        LOG["Structured JSON Logger<br/>(PII & Path Redaction)"]
        SHUT["Graceful Shutdown<br/>(SIGTERM / In-Flight Drain)"]
    end

    subgraph Core["Apple HIG Domain Engine"]
        PROF["Platform Profiles<br/>macOS ยท iPadOS ยท iOS"]
        TOK["Token Engine<br/>Liquid Glass & Classic"]
        KB["HIG Knowledge Base<br/>13 Topics & 6 Pattern Matrices"]
        AUD["Multi-Platform Audit Engine<br/>+ Auto Platform Detector"]
        COMP["Component Registry<br/>21 Production Templates"]
    end

    subgraph Output["Multi-Format Renderers"]
        R1["CSS Variables + Safe Area"]
        R2["JSON Schema Tokens"]
        R3["TypeScript as const"]
        R4["SwiftUI Color & Font"]
    end

    Client <-->|stdio| SDK
    SDK --> LOG
    SDK --> SHUT
    SDK --> PROF
    PROF --> TOK
    PROF --> KB
    PROF --> AUD
    PROF --> COMP
    TOK --> R1
    TOK --> R2
    TOK --> R3
    TOK --> R4

๐Ÿ“Š Matriks Ergonomi & Geometri Multi-Platform Apple HIG

Dimensi Desain

๐Ÿ–ฅ๏ธ macOS (macos)

๐Ÿ“ฑ iPadOS (ipados)

๐Ÿ“ฑ iOS (ios)

Referensi OS

macOS 26 Tahoe / Sonoma

iPadOS 26

iOS 26

Paradigma Navigasi

Zero-Shift Collapsible Sidebar (63px/220px) + Titlebar 38px + Command Palette (โŒ˜K)

Adaptive Split View (2/3 Kolom, Sidebar 320px) โ‡„ Morphing Floating Tab Bar

Liquid Glass Floating Tab Bar (49px, auto-minimize saat scroll) + Large Title Nav Bar

Modalitas Input

Pointer presisi + Keyboard + Trackpad

Multi-Touch + Apple Pencil + Trackpad Pointer (Magnetic Hover) + Keyboard

Multi-Touch + Haptic Touch

Target Sentuh Minimum

28 ร— 28 pt

44 ร— 44 pt

44 ร— 44 pt

Ukuran Font Body / Large Title

13 pt / 26 pt

17 pt / 34 pt (Dynamic Type)

17 pt / 34 pt (Dynamic Type, Input >= 16px)

Window Chrome & Safe Area

Frameless Window (12px radius) + Traffic Lights (#ff5f56, #ffbd2e, #27c93f)

Stage Manager Resizable Window + Safe Area Insets

Edge-to-Edge (viewport-fit=cover) + Dynamic Island & Home Indicator Safe Area

Aturan Material Liquid Glass

Sidebar, Titlebar, Command Palette, Toast

Split View Sidebar, Floating Tab Bar, Popover

Floating Tab Bar, Navigation Bar, Bottom Sheet


๐Ÿš€ Quick Start

Prasyarat

  • Node.js >= 22.12.0 (direkomendasikan Node.js 24 LTS)

  • npm >= 10.0.0

Instalasi & Build

# 1. Clone repositori
git clone https://github.com/ahmadeko2017/apple-style-mcp.git
cd apple-style-mcp

# 2. Instal seluruh dependensi
npm install

# 3. Build ke direktori dist/
npm run build

Integrasi dengan AI Client (mcp_config.json / claude_desktop_config.json)

{
  "mcpServers": {
    "apple-style-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/apple-style-mcp/dist/index.js"]
    }
  }
}

๐Ÿ› ๏ธ Dokumentasi Tools MCP (6 Primary Tools + 3 Legacy Aliases)

1. audit_apple_project (Alias v1: audit_desktop_project)

Mengaudit direktori proyek secara statis dan non-destruktif terhadap standar Apple HIG lintas macos, ipados, dan ios (mendukung deteksi platform otomatis).

Parameter Input:

Nama

Tipe

Wajib

Deskripsi

project_path

string

Tidak

Path direktori proyek yang diaudit (default: direktori aktif)

platforms

Array<"macos" | "ipados" | "ios">

Tidak

Target platform yang diaudit (jika kosong, otomatis dideteksi dari proyek)

Contoh Output:

{
  "projectPath": "/workspace/my-apple-app",
  "targetPlatforms": ["macos", "ipados", "ios"],
  "complianceScore": "100%",
  "platformScores": {
    "macos": "100%",
    "ipados": "100%",
    "ios": "100%"
  },
  "totalChecks": 14,
  "passedChecks": 14,
  "failedChecks": 0
}

2. scaffold_apple_component (Alias v1: scaffold_macos_component)

Menghasilkan kode komponen React + TypeScript produksi siap pakai (21 komponen tersedia):

Kategori

Nama Komponen (component)

Deskripsi

macOS Desktop

mac_traffic_lights

Tombol kontrol jendela merah/kuning/hijau dengan simbol mikro SVG saat hover

adaptive_titlebar

Titlebar 38px dengan IPC drag region Tauri, pencarian โŒ˜K, dan tombol tema 26px

zero_shift_sidebar

Collapsible sidebar (63px/220px) dengan koordinat X ikon terkunci di 21px

command_palette

Modal Spotlight โŒ˜K Liquid Glass dengan navigasi penuh ArrowUp/ArrowDown/Enter/Esc

toast_banner

Banner notifikasi kanan atas bergaya macOS dengan aturan Zero-Shadow

inspector_panel

Panel detail slide-out kanan dengan scroll terisolasi

context_menu_guard

Utilitas penonaktifan klik kanan browser bawaan pada elemen non-input

shortcut_formatter

Pemformat token Mod+K menjadi โŒ˜K (macOS/iPadOS/iOS) atau Ctrl + K (Windows/Linux)

iPadOS Tablet

ipad_split_view

Tata letak Split View 2/3 kolom (320px sidebar) dengan dukungan toggle

adaptive_sidebar_tabbar

Navigasi yang otomatis bertransformasi dari Sidebar (>=768px) menjadi Floating Tab Bar (<768px)

ipad_popover

Popover kontekstual Liquid Glass bebas bayangan luar

pointer_hover_effect

Tombol dengan efek magnetik kursor trackpad iPadOS (translate3d)

iOS Mobile

ios_tab_bar

Floating Capsule Tab Bar iOS 26 yang menyusut otomatis saat scroll ke bawah

ios_navigation_bar

Navigation Bar dengan Large Title (34px) yang menyusut ke tengah (17px) saat scroll

ios_bottom_sheet

Modal Bottom Sheet dengan detents medium (52dvh) & large (92dvh) + grabber handle

ios_inset_grouped_list

Daftar bergaya Inset Grouped iOS dengan radius 16px dan tinggi baris minimum 44px

ios_segmented_control

Segmented control berlapis dengan indikator tab aktif

Universal / Shared

adaptive_app_shell

Shell aplikasi universal yang merender navigasi sesuai proporsi macOS, iPadOS, atau iOS

platform_detector

Detektor macos / ipados (termasuk deteksi Macintosh + maxTouchPoints > 1) / ios & Size Class

safe_area_provider

Pembungkus root dengan tinggi 100dvh dan variabel env(safe-area-inset-*)

liquid_glass_surface

Kontainer permukaan Liquid Glass khusus layer navigasi dengan specular highlight border


3. get_design_tokens

Mengekstrak design tokens resmi dalam 4 format output:

  • format: "css" | "json" | "typescript" | "swift" (ekstensi SwiftUI Color, Font, & Layout)

  • platform: "macos" | "ipados" | "ios"

  • design_era: "liquid_glass" (default) | "classic"

  • palette_mode: "apple_system" (default) | "brand_custom"

  • accent_primary: Kode warna hex kustom (misal "#0284c7")


4. scaffold_apple_app_template (Alias v1: scaffold_base_app_template)

Menghasilkan konfigurasi awal proyek (src-tauri/tauri.conf.json, src/styles/tokens.css, serta index.html dengan viewport-fit=cover apabila menyertakan target ios/ipados). Dilengkapi pengaman dry_run: true dan overwrite: false.


5. get_apple_hig_rule

Lookup penjelasan teknis dan formula matematika untuk 13 topik Apple HIG: zero_shift_geometry, zero_shadow_popovers, window_frame_canvas, titlebar_controls, spotlight_command_palette, toast_banner, liquid_glass_materials, touch_and_hit_targets, safe_area_and_viewport, ipad_split_view_and_morphing, ipad_pointer_and_stage_manager, ios_floating_tab_bar, ios_large_title_and_sheets.


6. compare_platform_pattern

Menghasilkan matriks JSON perbandingan implementasi pola UI antara macOS, iPadOS, dan iOS untuk topik: navigation, modality, context_actions, notifications, window_and_safe_area, dan typography_and_ergonomics.


๐Ÿ“š Daftar MCP Resources

URI Resource

MIME Type

Deskripsi

apple://hig/overview

application/json

Profil ergonomi lengkap macOS, iPadOS, dan iOS

apple://hig/liquid-glass

text/markdown

Panduan hierarki material Liquid Glass (OS 26 / macOS Tahoe)

apple://hig/ipados

text/markdown

Kumpulan pedoman Split View, Morphing Tab Bar, dan Trackpad iPadOS

apple://hig/ios

text/markdown

Kumpulan pedoman Floating Tab Bar, Large Title, dan Safe Area iOS

desktop://guidelines/macos-hig

text/markdown

Pedoman arsitektur desktop macOS (kompatibilitas v1)

desktop://geometry/zero-shift

text/plain

Formula matematika koordinat 21px Zero-Shift Sidebar


๐Ÿ“‚ Struktur Direktori Proyek

apple-style-mcp/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.ts                        # CLI entry point (stdio server)
โ”‚   โ”œโ”€โ”€ server.ts                       # MCP SDK Server & JSON-RPC 2.0 dispatcher
โ”‚   โ”œโ”€โ”€ registry.ts                     # ToolRegistry & ResourceRegistry
โ”‚   โ”œโ”€โ”€ types.ts                        # Kontrak tipe protokol MCP
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ errors.ts                   # Hirarki custom domain error classes
โ”‚   โ”‚   โ”œโ”€โ”€ fs/safe-fs.ts               # Pemindai direktori aman & path guard
โ”‚   โ”‚   โ””โ”€โ”€ platform/                   # Spesifikasi profil macOS, iPadOS, & iOS
โ”‚   โ”œโ”€โ”€ server/
โ”‚   โ”‚   โ”œโ”€โ”€ logger.ts                   # Structured JSON logger + PII & path redaction
โ”‚   โ”‚   โ””โ”€โ”€ shutdown.ts                 # Graceful shutdown (SIGTERM / request draining)
โ”‚   โ”œโ”€โ”€ tokens/
โ”‚   โ”‚   โ”œโ”€โ”€ token-definitions.ts        # Single source of truth design tokens
โ”‚   โ”‚   โ””โ”€โ”€ renderers.ts                # Renderer CSS, JSON, TypeScript, & SwiftUI
โ”‚   โ”œโ”€โ”€ knowledge/
โ”‚   โ”‚   โ”œโ”€โ”€ hig-topics.ts               # Basis pengetahuan 13 topik Apple HIG
โ”‚   โ”‚   โ””โ”€โ”€ pattern-comparisons.ts      # Matriks komparasi 6 pola UI lintas platform
โ”‚   โ”œโ”€โ”€ audit/
โ”‚   โ”‚   โ”œโ”€โ”€ detector.ts                 # Detektor otomatis platform proyek target
โ”‚   โ”‚   โ””โ”€โ”€ audit-engine.ts             # Mesin evaluasi kepatuhan multi-platform
โ”‚   โ”œโ”€โ”€ components/                     # 21 template komponen produksi (macOS/iPadOS/iOS/Shared)
โ”‚   โ”œโ”€โ”€ tools/                          # Implementasi McpTool handlers
โ”‚   โ”œโ”€โ”€ resources/                      # Implementasi McpResource providers
โ”‚   โ””โ”€โ”€ __tests__/
โ”‚       โ””โ”€โ”€ server.test.ts              # Suite pengujian unit & integrasi (Pola AAA)
โ”œโ”€โ”€ .github/
โ”‚   โ”œโ”€โ”€ workflows/ci.yml                # GitHub Actions CI Quality Gate
โ”‚   โ”œโ”€โ”€ ISSUE_TEMPLATE/                 # Template Bug Report & Feature Request
โ”‚   โ””โ”€โ”€ PULL_REQUEST_TEMPLATE.md        # Template checklist Pull Request
โ”œโ”€โ”€ CHANGELOG.md                        # Catatan rilis SemVer
โ”œโ”€โ”€ CONTRIBUTING.md                     # Panduan kontribusi & standar Clean Code
โ”œโ”€โ”€ SECURITY.md                         # Kebijakan keamanan & fitur proteksi bawaan
โ””โ”€โ”€ LICENSE                             # Lisensi MIT

๐Ÿงช Testing & Quality Gates

Proyek ini dilengkapi pipeline verifikasi kualitas terpadu (npm run verify) yang mencakup pemeriksaan tipe statis, linting tanpa any, pemformatan kode, pengujian unit/integrasi dengan ambang batas coverage ketat, dan kompilasi produksi:

# Menjalankan seluruh gate verifikasi sekaligus
npm run verify

# Atau menjalankan masing-masing perintah:
npm run typecheck      # tsc --noEmit (strict mode)
npm run lint           # ESLint flat config (0 warnings, 0 explicit any)
npm run format:check   # Prettier code style verification
npm run test:coverage  # Vitest + v8 coverage (>92% line coverage)
npm run build          # Build ESM + TypeScript declarations ke dist/

๐Ÿค Kontribusi & Keamanan

  • Silakan baca CONTRIBUTING.md untuk standar penulisan kode (Clean Code, SOLID, batas 30 baris/fungsi, dan pola pengujian AAA).

  • Untuk kebijakan keamanan dan pelaporan kerentanan, lihat SECURITY.md.


๐Ÿ“œ Lisensi

Didistribusikan di bawah MIT License. Lihat file LICENSE untuk informasi selengkapnya.

Dikembangkan oleh Ahmad Eko Kurniawan.

Available Tools

9 tools
audit_apple_projectB

Mengaudit kepatuhan arsitektur, konfigurasi Tauri v2, safe-area mobile, ergonomi sentuh 44pt, dan styling Liquid Glass Apple HIG pada proyek macOS, iPadOS, dan iOS.

NameRequiredDescriptionDefault
platformsNoDaftar platform Apple yang diaudit: ['macos', 'ipados', 'ios'] (opsional, auto-detect jika kosong)
project_pathNoPath direktori proyek yang akan diaudit (default: direktori kerja aktif)

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose the audit checklist (architecture, Tauri v2, safe-area, 44pt, Liquid Glass), which is real behavioral scope. But it never says whether the tool is read-only or writes reports/fixes files, what the findings look like, or how long a full audit takes โ€” gaps that matter for a no-annotation tool.

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

Conciseness4/5

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

A single front-loaded sentence led by the verb, with every clause adding a distinct audit dimension rather than filler. Dense but not padded; only the lack of any second sentence on outcome/usage keeps it from a 5.

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

Completeness3/5

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

With zero annotations, no output schema, and 2 optional parameters, the description should say what an agent gets back (findings list, severities, pass/fail) and whether anything is mutated. It covers what is audited but leaves the result contract entirely unspecified.

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%, so both 'platforms' and 'project_path' are already documented including the auto-detect default. The description echoes the platform names (macOS, iPadOS, iOS) but adds no new semantics such as path format, symlink handling, or what auto-detect keys off. Baseline 3 is appropriate.

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

Purpose4/5

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

Names a specific verb ('Mengaudit' = audit) plus the resource (Apple project) and enumerates exactly what is checked: architecture, Tauri v2 config, mobile safe-area, 44pt touch ergonomics, and Liquid Glass HIG styling. This scope makes it distinguishable from scaffolding siblings, though it never contrasts itself with the similarly named audit_desktop_project.

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?

Usage is only implied by the enumerated audit scope โ€” an agent can infer this is a compliance-check tool for Apple-platform projects. There is no explicit statement of when to run it (pre-release? after scaffolding?), no prerequisites, and no pointer to audit_desktop_project for non-Apple targets.

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

audit_desktop_projectC

[Alias Kompatibilitas] Mengaudit kepatuhan arsitektur, konfigurasi Tauri v2, dan styling desktop macOS native pada direktori proyek.

NameRequiredDescriptionDefault
platformsNoDaftar platform Apple yang diaudit: ['macos', 'ipados', 'ios'] (opsional, auto-detect jika kosong)
project_pathNoPath direktori proyek yang akan diaudit (default: direktori kerja aktif)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden and does not meet it: it never says whether the audit is read-only, whether it writes reports, what permissions it needs, or what the caller receives back. The '[Alias Kompatibilitas]' label implies a legacy/compatibility relationship but leaves its behavioral implications unexplained.

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

Conciseness4/5

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

One front-loaded sentence with no filler, and the bracketed compatibility marker leads. It is efficient, though a little terse for a tool with no other documentation backing it.

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

Completeness3/5

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

For a zero-annotation, no-output-schema audit tool, the description covers what is inspected but not how results are delivered, whether findings are blocking, or how it relates to its sibling audit tool. Adequate but with clear gaps an agent would need to probe for.

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%, with both optional parameters fully documented (platform enum list, project path default). The description adds no additional parameter meaning, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb (mengaudit) and resource (project directory) and names the concrete checks: architecture compliance, Tauri v2 configuration, and native macOS styling. It does not, however, distinguish this from the sibling audit_apple_project, despite the 'Alias Kompatibilitas' prefix hinting at an overlap.

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

Usage Guidelines2/5

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

There is no indication of when to use this tool versus audit_apple_project or when it should be avoided. The only guidance present (platform auto-detect, default working directory) is already carried by the schema, not by the description.

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

compare_platform_patternB

Membandingkan bagaimana suatu pola antarmuka Apple HIG (navigation, modality, context_actions, notifications, window_and_safe_area, typography_and_ergonomics) diimplementasikan di macOS, iPadOS, dan iOS.

NameRequiredDescriptionDefault
patternYesPola desain UI yang ingin dibandingkan lintas platform Apple

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden; it discloses scope (three platforms, six pattern families) which is useful, but says nothing about the return shape, depth, or whether all three platforms are always covered.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, but the parenthetical list of enum values duplicates the schema and consumes most of the text.

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

Completeness3/5

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

With no output schema, the description should describe what a comparison result looks like (per-platform sections? differences?), and it does not. Adequate for calling the tool, incomplete for interpreting its output.

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% and the enum is fully documented in the schema, so the description's enumeration of the same six values adds no meaning beyond structured data. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Membandingkan) and resource (Apple HIG UI patterns) plus the exact comparison axis (macOS, iPadOS, iOS). It is distinguishable from get_apple_hig_rule and the audit/scaffold siblings, though no sibling is named explicitly.

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 comparison-across-platforms intent implies when to use it, but there is no explicit guidance versus get_apple_hig_rule (single-rule lookup) or the audit tools, and no stated preconditions.

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

get_apple_hig_ruleA

Melihat penjelasan teknis, formula matematika, dan pencegahan bug untuk aturan desain Apple HIG lintas macOS, iPadOS, dan iOS (termasuk Liquid Glass, Zero-Shift Geometry, Safe Area Insets, Split View, dan Floating Tab Bar).

NameRequiredDescriptionDefault
topicYesTopik aturan Apple HIG yang ingin dipelajari
platformNoFilter platform opsional: macos, ipados, atau ios

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'Melihat' (viewing) implies a non-destructive lookup, and the description usefully discloses what the content contains (technical explanation, mathematical formulas, bug prevention), but it never states the return format, depth, or whether results are cached/static.

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

Conciseness4/5

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

A single front-loaded sentence with the core action first and the topic list in a parenthetical. The enumeration is long but earns its place by mapping to the topic enum; there is no filler.

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?

With only two fully documented parameters and no output schema, the description covers enough: it names the content type returned and the platform scope. It would be stronger if it described output shape or the effect of omitting the platform filter, but nothing critical for correct invocation is missing.

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% with both parameters enum-constrained and documented, so baseline is 3. The description adds only marginal value by listing the topic areas and hinting at cross-platform coverage ('lintas macOS, iPadOS, dan iOS'), but does not clarify the interaction between topic and the optional platform filter.

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

Purpose4/5

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

States a specific verb and resource: it retrieves technical explanations, formulas, and bug-prevention notes for Apple HIG design rules, with the covered topics enumerated (Liquid Glass, Zero-Shift Geometry, Safe Area Insets, etc.). This clearly separates it from the scaffold_* and audit_* siblings, though no sibling is named explicitly.

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 usage is implied rather than stated: an agent can infer it should call this when it needs HIG rule details before scaffolding or auditing, but there is no explicit when-to-use, when-not-to-use, or pointer to alternatives like compare_platform_pattern. Guidance is adequate but left to inference.

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

get_design_tokensB

Menyediakan design tokens resmi Apple HIG untuk macOS, iPadOS, dan iOS (Liquid Glass & Classic Vibrancy, Apple System Colors & Brand Custom, SF Pro typography, safe-area insets, dan chrome geometry) dalam format CSS, JSON, TypeScript, atau SwiftUI.

NameRequiredDescriptionDefault
formatNoFormat output yang diinginkan: css, json, typescript, atau swift (default: css)
platformNoTarget platform Apple: macos, ipados, atau ios (default: macos)
design_eraNoBahasa desain Apple: liquid_glass (OS 26 / Tahoe) atau classic (default: liquid_glass)
palette_modeNoPalet dasar warna: apple_system atau brand_custom (default: apple_system)
accent_primaryNoWarna aksen primer kustom dalam format hex (contoh: #0284c7)

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. 'Menyediakan' implies a read-only provisioning operation with no mutation side effects, and the format list tells the agent the output shape (CSS/JSON/TS/Swift). However, it never states there is no side effect, whether the data is static or generated per-call, or any cost/latency consideration โ€” meaningful gaps for a no-annotation tool.

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

Conciseness4/5

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

A single front-loaded sentence listing the resource and its scope, with no filler. The long parenthetical inventory is dense but every item conveys actual token coverage, so it largely 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?

With 5 all-optional parameters and no output schema, the description does what is needed: it names the output formats and enumerates the token categories an agent will receive. Only the absence of any return-structure hint (e.g. nesting, units, file vs payload) keeps it short of 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 coverage is 100% and the enum values are already documented with defaults (e.g. 'liquid_glass (OS 26 / Tahoe)'). The description's mention of the four formats and of 'Apple System Colors & Brand Custom' mirrors rather than extends those enums, so it does not meaningfully deepen parameter understanding beyond the schema.

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

Purpose4/5

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

The description names a specific verb (menyediakan/provides) and a concrete resource (official Apple HIG design tokens), then enumerates the token families covered (Liquid Glass & Classic Vibrancy, system colours, SF Pro typography, safe-area insets, chrome geometry). It never mentions the sibling tools (get_apple_hig_rule, scaffold_apple_component), so an agent cannot tell from the text alone how this differs from fetching a single HIG rule.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus alternatives, no prerequisites, and no exclusions. The only usable signal is the implicit 'get me tokens' framing, which leaves the agent to infer that this is the bulk-retrieval counterpart to get_apple_hig_rule or scaffold_* tools.

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

scaffold_apple_app_templateB

Menghasilkan struktur starter dan file konfigurasi (tauri.conf.json, tokens.css, index.html safe-area) untuk proyek macOS, iPadOS, dan iOS dengan dukungan dry_run dan proteksi overwrite.

NameRequiredDescriptionDefault
dry_runNoJika true, hanya mengembalikan preview tanpa menulis ke disk (default: false)
app_nameYesNama aplikasi baru (contoh: 'Awesome Apple App')
overwriteNoJika true, mengizinkan penimpaan file yang sudah ada (default: false)
platformsNoDaftar platform target: ['macos', 'ipados', 'ios'] (default: ['macos'])
design_eraNoEra desain: liquid_glass atau classic (default: liquid_glass)
identifierYesBundle identifier aplikasi (contoh: 'com.ahmad.app')
target_dirNoDirektori target penulisan file starter (opsional)
accent_colorNoWarna aksen utama dalam format hex (contoh: '#0284c7')
palette_modeNoMode palet warna: apple_system atau brand_custom (default: apple_system)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose two meaningful behaviors: a dry_run preview mode and overwrite protection for existing files, plus names the concrete artifacts produced. It does not say what happens on conflict when overwrite is false (error vs skip), whether parent directories are created, or what a dry_run response looks like.

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

Conciseness4/5

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

A single dense sentence that front-loads the output artifacts and appends the two safety behaviors. No filler; slightly compressed given the 9-parameter surface.

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

Completeness3/5

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

For a 9-parameter write tool with no annotations and no output schema, the description covers artifacts and the two safety flags but omits conflict semantics, whether the tool creates the target directory, and what non-dry-run success returns. Adequate but leaves real gaps for a mutating generator.

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%, with all 9 parameters including enums and defaults documented inline, so the baseline is 3. The description mentions dry_run and overwrite but adds no syntax, constraints, or interaction detail beyond what the schema already states.

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

Purpose4/5

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

States a specific verb+resource: generating starter structure and config files (tauri.conf.json, tokens.css, index.html) for macOS/iPadOS/iOS projects. However, it never distinguishes itself from the very similar sibling scaffold_base_app_template, leaving the agent to guess which scaffolding tool to pick.

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

Usage Guidelines2/5

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

No indication of when to use this versus scaffold_base_app_template, scaffold_macos_component, or scaffold_apple_component. The only usage-adjacent content is the mention of dry_run and overwrite protection, which is capability, not routing guidance.

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

scaffold_apple_componentB

Menghasilkan kode komponen React + TypeScript produksi bergaya Apple HIG untuk macOS, iPadOS, dan iOS (Traffic Lights, Zero-Shift Sidebar, Command Palette, iPad Split View, iOS Liquid Glass Tab Bar, Bottom Sheet, dll).

NameRequiredDescriptionDefault
platformNoKonteks platform opsional: macos, ipados, atau ios
componentYesJenis komponen Apple HIG yang ingin di-generate (macOS, iPadOS, iOS, atau Shared)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says code is 'produced' but not whether it is written to disk, returned as a string, or whether existing files are overwritten โ€” a critical distinction for a scaffold tool. Permissions, prerequisites, and side effects are entirely unaddressed.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the platform scope and the concrete component examples both earn their place. The long parenthetical list is slightly heavy but serves as useful orientation to the enum's contents.

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

Completeness3/5

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

The tool is simple (2 params, no nesting), but with no output schema and no annotations, the description should at least indicate the shape of the result โ€” generated code returned inline vs. files created. That gap leaves an agent unable to predict the outcome of a call.

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 enumerated and described, so the schema does the heavy lifting. The description's parenthetical list of component names loosely mirrors the component enum but adds no selection guidance or defaults beyond it; baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Menghasilkan kode komponen React + TypeScript' styled per Apple HIG, scoped to macOS/iPadOS/iOS, and names concrete component examples (Traffic Lights, Command Palette, Liquid Glass Tab Bar). It does not differentiate itself from the closely named sibling scaffold_macos_component, so an agent must infer the boundary.

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?

Usage is only implied: 'you want an Apple HIG component' selects this tool. No when-not guidance and no explicit routing against scaffold_macos_component, scaffold_apple_app_template, or get_design_tokens, all of which could plausibly be chosen for a similar request. The multi-platform scope hints at the distinction from the macOS-only sibling but never states it.

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

scaffold_base_app_templateC

[Alias Kompatibilitas] Menghasilkan struktur starter atau menuliskan file konfigurasi (tauri.conf.json, tokens.css, AppShell starter) untuk proyek desktop/mobile baru.

NameRequiredDescriptionDefault
dry_runNoJika true, hanya mengembalikan preview tanpa menulis ke disk (default: false)
app_nameYesNama aplikasi baru (contoh: 'Awesome Apple App')
overwriteNoJika true, mengizinkan penimpaan file yang sudah ada (default: false)
platformsNoDaftar platform target: ['macos', 'ipados', 'ios'] (default: ['macos'])
design_eraNoEra desain: liquid_glass atau classic (default: liquid_glass)
identifierYesBundle identifier aplikasi (contoh: 'com.ahmad.app')
target_dirNoDirektori target penulisan file starter (opsional)
accent_colorNoWarna aksen utama dalam format hex (contoh: '#0284c7')
palette_modeNoMode palet warna: apple_system atau brand_custom (default: apple_system)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does signal a mutation ("menuliskan file konfigurasi") and names the affected files, but says nothing about defaults that matter operationally โ€” that overwrite defaults to false and dry_run produces a preview โ€” nor about idempotency, permissions, or what happens to existing files. The word "Alias" also leaves the agent unsure whether this is a deprecated shim.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, and the artifact list is the most useful part of it. The bracketed "[Alias Kompatibilitas]" tag consumes attention without earning it, since its meaning is never resolved.

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?

For a nine-parameter, nine-field mutation tool with no annotations and no output schema, the description is too thin. It omits the alias/deprecation semantics relative to scaffold_apple_app_template and does not describe the resulting file layout or return value, leaving the agent to infer behavior from the schema alone.

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 all nine parameters are already self-documented; baseline is 3. The description adds mild context by naming the output files (tokens.css ties to accent_color/palette_mode/design_era, tauri.conf.json ties to identifier/app_name/platforms) but supplies no additional format or validation semantics beyond the schema.

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

Purpose4/5

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

The description names a concrete action (generating starter structure / writing config files) and enumerates the specific artifacts (tauri.conf.json, tokens.css, AppShell starter) plus the target project type (desktop/mobile). It is specific enough to distinguish from component-level scaffolds, but the "[Alias Kompatibilitas]" prefix is never explained, so an agent cannot tell whether this duplicates or supersedes the sibling scaffold_apple_app_template.

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

Usage Guidelines2/5

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

No guidance is given on when to choose this tool over scaffold_apple_app_template or scaffold_apple_component, despite an obvious alias relationship implied by the title tag. The only usage hint is the implied "new project" context, with no prerequisites, exclusions, or ordering relative to the audit_* tools.

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

scaffold_macos_componentC

[Alias Kompatibilitas] Menghasilkan kode komponen React + TypeScript produksi bergaya Apple HIG macOS, iPadOS, dan iOS.

NameRequiredDescriptionDefault
platformNoKonteks platform opsional: macos, ipados, atau ios
componentYesJenis komponen Apple HIG yang ingin di-generate (macOS, iPadOS, iOS, atau Shared)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full load. It says code is 'produksi' (production-grade) but never states where files are written, whether existing files are overwritten, whether a project must already exist, or whether the call is idempotent. For a scaffolding/write tool that is a significant gap.

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

Conciseness4/5

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

A single front-loaded sentence that leads with the alias marker and then the core action. No filler, though the alias tag is cryptic without explanation of what it aliases.

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

Completeness3/5

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

For a two-parameter tool with a fully documented enum schema and no output schema, the description covers what is generated (component code and platform). It is missing side-effect information (file paths, overwrite behavior) that matters for a scaffold generator with zero annotation coverage.

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% with both parameters enum-constrained and individually documented, so the schema does the semantic work. The description adds only the notion that platform is optional context, which the schema already conveys. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and artifact: 'Menghasilkan kode komponen React + TypeScript' styled per Apple HIG, with the three platform families named. The stack and design-system scope are clear. However, it does not differentiate itself from the sibling scaffold_apple_component, and the name's 'macos' scoping conflicts slightly with the description's macos/ipados/ios coverage.

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

Usage Guidelines2/5

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

The '[Alias Kompatibilitas]' prefix hints this is a compatibility alias, but the description never explicitly says 'use this instead of scaffold_apple_component' or explains when one should be chosen over the other. No prerequisites, no when-not guidance, no mention of the other scaffolding siblings.

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 updatesv2.0.0
    • First observedaudit_apple_project
    • First observedaudit_desktop_project
    • First observedcompare_platform_pattern
    • First observedget_apple_hig_rule
    • First observedget_design_tokens
    • First observedscaffold_apple_app_template
    • First observedscaffold_apple_component
    • First observedscaffold_base_app_template
    • First observedscaffold_macos_component

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation2/5

The tool set suffers from significant redundancy due to aliases (e.g., audit_apple_project vs audit_desktop_project, scaffold_apple_component vs scaffold_macos_component). An agent might face confusion when presented with functionally identical tools, degrading the usability of the set.

Naming Consistency4/5

The tools mostly adhere to the consistent verb_noun pattern, such as get_design_tokens and scaffold_apple_component. The presence of aliases and slight naming variations does not fundamentally break the pattern.

Tool Count5/5

With 9 tools, the set is well-scoped and appropriately detailed for its highly specialized purpose of Apple HIG implementation and auditing.

Completeness4/5

The surface is robust, covering component generation, full application scaffolding, design tokens, and architectural auditing. The set covers nearly all necessary lifecycle stages for HIG implementation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to extract design systems, analyze components, and maintain design-code consistency from Figma files, providing intelligent component analysis and accessibility compliance.
    23 npm
    27
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding assistants to generate bespoke design systems by synthesizing OKLCH color palettes, chamfer highlights and spring physics, teaching layout composition grammar, and returning micro-interaction primitives and component blueprints. Also audits JSX/TSX/HTML through a senior design director's lens to score and critique UI quality.
    2 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables coding agents to find real iOS app screens, user journeys, and website design systems, including colors, typography, components, and DESIGN.md files, so generated UIs resemble real products instead of AI defaults.
    7
    MIT