Skip to main content
Glama
yordcode
by yordcode

Apple HIG MCP

Bring Apple's Human Interface Guidelines into your AI coding workflow.

A local Model Context Protocol server for Apple's Human Interface Guidelines. Cursor, Claude, and Codex can search the full guideline catalog, fetch an article as Markdown, and read community implementation notes inspired by Apple HIG for native apps and the web.

Installation

Easy plugin install

Requires Node.js 20 or newer and Git on your PATH. The plugin includes the built MCP server, so no manual clone, npm install, build, or path editing is needed.

Claude Code — run these as separate commands inside Claude Code:

/plugin marketplace add yordcode/apple-hig-mcp
/plugin install hig@hig

Codex — run these in your terminal:

codex plugin marketplace add yordcode/apple-hig-mcp
codex plugin add hig@hig

Reload plugins or restart your assistant, then ask: “Use hig to design an accessible settings screen for the web. Fetch Apple's relevant guidelines first and cite them.” The plugin name and marketplace name are both hig, so its install ID is hig@hig.

Choose either plugin installation or manual MCP setup in the guide to avoid registering the same server twice. Marketplace installation applies to Claude Code and Codex; Cursor and Claude Desktop can use manual MCP configuration.

Manual setup and development

Start with the step-by-step setup and usage guide for client configuration, examples, verification, and troubleshooting.

Requires Node.js 20 or newer.

git clone https://github.com/yordcode/apple-hig-mcp.git
cd apple-hig-mcp
npm ci
npm run build
npm start

The catalog is included; npm run sync-catalog is only needed to refresh navigation metadata. The server supplies reference material and checklists; your assistant performs the design and coding. No API key is required by this server.

The process speaks stdio and logs only to stderr. Catalog files are resolved from this package, so the launch path is absolute and does not depend on the agent's working directory. Node.js 20 or newer must be on PATH.

Related MCP server: Grounded Code MCP

Commands

These workflows use Apple's Human Interface Guidelines and cite the official sources. All 11 names now use hig- instead of hig/. Provide the design task as an argument or in your client's task field; the command already selects the platform.

Command

What it does

/hig-help

Show the available commands and how to use them. No input required.

/hig-topic

Read and summarize one guideline without designing or auditing. Provide a topic, such as buttons, sheets, or modal, and an optional platform. Omit the platform to retain all platforms' notes.

/hig-web

Design a website or web app using Apple HIG as a reference, with semantic HTML, CSS implementation notes, and accessibility guidance. Provide a task, such as design a checkout form.

/hig-ios

Design an iPhone interface using the relevant navigation, layout, and touch-target guidance. Provide a task.

/hig-ipados

Design an iPad interface with layouts suited to wider screens, sidebars, and split views. Provide a task.

/hig-macos

Design a Mac interface using desktop window, sidebar, toolbar, and menu patterns. Provide a task.

/hig-watchos

Design an Apple Watch interface with short interactions and suitable controls and touch targets. Provide a task.

/hig-tvos

Design an Apple TV interface for remote navigation, focus, and viewing from across the room. Provide a task.

/hig-visionos

Design an Apple Vision Pro interface using spatial layout, system ornaments, and comfortable target spacing. Provide a task.

/hig-convert

Adapt an existing interface to follow Apple HIG while preserving its purpose and content. Provide a description of the current design and a platform. Returns the converted interface and explains what changed.

/hig-audit

Check an existing interface against Apple HIG without redesigning it. Provide a description and a platform. Reports what meets the guidance, what needs fixing, and concrete fixes with Apple source links.

The table shows short slash-command names. Your assistant controls the invocation prefix:

Installation

Example invocation

Claude Code plugin

/hig:hig-web design an accessible settings screen

Claude Code user-installed skills

/hig-web design an accessible settings screen

Codex plugin skills

$hig:hig-web design an accessible settings screen

Codex user-installed skills

$hig-web design an accessible settings screen

Cursor or another MCP prompt client

Select the hig-web prompt; the client may add its server namespace.

Attribution and license

This independent project is not affiliated with or endorsed by Apple Inc. Apple publishes the Human Interface Guidelines; fetched articles include their official source URLs. Apple article text is fetched on demand and is not bundled in this repository.

Repository code and community implementation notes are provided under the MIT License. That license does not grant rights to Apple's guideline content, fonts, logos, or SF Symbols artwork.

Available Tools

6 tools
get_design_referenceGet design referenceB

Return community implementation notes inspired by Apple's HIG. Apple created the underlying design guidance. Notes include platform-tagged rules and web HTML/CSS guidance, with official Apple source links.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCard id, such as buttons, color, sheets, or settings.
platformNoTarget platform. Use web for websites and web apps.

TDQS

B3.2/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 does disclose meaningful content traits — platform-tagged rules, web HTML/CSS guidance, and official Apple source links — which helps the agent anticipate the return. It says nothing about error behavior for unknown ids or rate limits, but read-only behavior is clear from the verb.

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?

Three short sentences, front-loaded with the action and content type. The middle sentence about Apple creating the guidance is borderline filler but is brief and establishes attribution, so it does not seriously hurt readability.

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 no output schema, the description does the work of describing what comes back: platform-tagged rules, web HTML/CSS guidance, and official source links. For a single-card lookup with a fully documented schema, this is nearly complete; only failure modes for invalid ids are unaddressed.

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 the id example values and the platform enum already documented in the schema. The description's mention of 'platform-tagged rules' and 'web HTML/CSS guidance' loosely corroborates the platform parameter but adds no syntax or format detail 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?

States a specific verb (Return) and resource (community implementation notes inspired by Apple's HIG), and clarifies the content type. However, it never distinguishes itself from siblings like get_topic or search_hig, which likely return overlapping design guidance, so an agent cannot tell which one to pick from the purpose alone.

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 when-to-use guidance, no exclusions, and no alternatives named. The description implies retrieval of a single reference card by id but never says when this is preferable to search_hig, get_topic, or list_topics.

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

get_topicGet HIG topicA

Fetch one Human Interface Guidelines article as Markdown, with the canonical Apple URL. Accepts a slug, path, or developer.apple.com URL. Use section to keep one heading, and platform to drop other platforms' notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesSlug, HIG path, or full developer.apple.com URL.
sectionNoHeading to keep, such as Best practices or Platform considerations.
platformNoTarget platform. Use web for websites and web apps.

TDQS

A3.7/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 disclosure burden and does deliver the output shape (Markdown plus canonical Apple URL) and the narrowing effect of section/platform. It says nothing about error behavior for an invalid slug, network/rate-limit characteristics, or how large an article may be, which are the gaps a caller would want.

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?

Three short sentences, front-loaded with the verb, resource, and return format, then the accepted input forms, then the two filters. No filler and nothing repeated from the schema verbatim.

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?

There is no output schema and no annotations, so the description must carry return semantics — it does (Markdown body plus canonical URL). Input flexibility and both optional filters are covered; only failure modes and remote-access constraints are absent, which is a minor gap for a read-only 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 description coverage is already 100%, so the baseline is 3. The description goes slightly beyond the schema by explaining the filter effect — 'section to keep one heading' and 'platform to drop other platforms' notes' — which clarifies that platform is a subtractive filter rather than just a target selector.

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 — 'Fetch one Human Interface Guidelines article as Markdown, with the canonical Apple URL' — and the word 'one' plus the output format distinguish it from list_topics and search_hig. It never names those siblings explicitly, so an agent must infer the routing rather than being told.

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?

'Accepts a slug, path, or developer.apple.com URL' and the note about section/platform tell the agent how to call it, but not when to choose it over search_hig (to discover a topic) or get_design_reference. Usage is implied by the input flexibility rather than stated with conditions or exclusions.

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

guide_interfaceGuide an interfaceA

Given a UI task and platform, return community implementation notes inspired by Apple's HIG, a short checklist, and two or three official Apple topics to fetch before writing the interface.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWhat to design, such as settings screen, checkout sheet, or onboarding.
platformNoTarget platform. Use web for websites and web apps.

TDQS

A3.5/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 behavioral burden, and it does disclose the shape of the return payload (notes + checklist + topics), which is genuinely useful since there is no output schema. It stops short of stating that it produces guidance rather than code/files, or any limits on repeated calls or platform defaults.

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 input precondition ('Given a UI task and platform') precedes the payoff. It is dense but every clause 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?

For a two-parameter, annotation-free tool with no output schema, the description adequately covers inputs and return contents. The only meaningful gap is behavior when the optional platform is omitted, which is left unstated.

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% and both parameters (task, platform) are documented in the schema itself, including the enum and the 'use web for websites' note. The description merely references 'a UI task and platform' without adding format or syntax detail, so 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 names a specific verb (return) and enumerates the exact artifacts produced: community implementation notes, a short checklist, and two or three Apple topics. That is far more informative than a restatement of the title, though it never contrasts itself with siblings like search_hig or get_design_reference.

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 phrase 'before writing the interface' implies the intended workflow position, giving implicit usage guidance. However, it never states when to prefer this over search_hig, list_topics, or get_design_reference, nor any exclusions, so an agent must infer the routing.

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

helpHIG helpB

Show how to use the HIG design commands and tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations and no output schema, the description carries the full behavioral burden, yet it only says it 'shows' help. It does not disclose the return format, whether the output is static or topic-dependent, or any read-only nature. For a no-annotation tool this is a notable 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 efficient, front-loaded sentence with no waste. It is terse but appropriate to a simple help command, though it leaves room for a short clause about scope.

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-parameter help tool with no output schema and no annotations, the description is minimally adequate but incomplete: it never mentions what the help content covers, whether HIG-specific guidance differs from sibling tools, or what the agent receives back.

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 takes zero parameters, so the baseline is 4; there are no parameter semantics to document or compensate for.

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+resource ('Show how to use the HIG design commands and tools'), making it clear this is the general help entry point. It distinguishes itself implicitly from the functional siblings (search_hig, get_topic, guide_interface) by being the help/orientation tool, though it never names those alternatives.

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 guidance on when to invoke help versus the five sibling tools, nor any prerequisite or trigger condition. An agent must infer that this is a general orientation command rather than something tied to a specific query.

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

list_topicsList HIG topicsA

List Apple Human Interface Guidelines topics. Filter by section, component group, or platform. Returns titles and official URLs, not article text.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoComponent group slug, such as menus-and-actions or presentation.
limitNo
sectionNoTop-level HIG section.
platformNoTarget platform. Use web for websites and web apps.

TDQS

A3.6/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 behavioral burden, and it does disclose a key trait: the output contains titles and official URLs, not article text. It says nothing about pagination, the effect of the limit parameter, or whether filters combine with AND semantics, so the read-only list behavior is only partially covered.

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?

Three short sentences, zero filler. Purpose comes first, filtering second, and the output-shape caveat last, which is exactly the right order.

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 no output schema, the description correctly compensates by describing the return contents (titles and URLs, not body text). What remains missing is limit/default behavior and whether multiple filters are combined, both of which an agent would want for a 4-parameter 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 75%, so the schema already documents group, section, and platform with examples and 2 enums. The description restates the same three filter dimensions without adding format, default, or combination semantics, and never mentions the limit parameter.

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 ("List Apple Human Interface Guidelines topics") and implicitly separates itself from get_topic by noting it returns titles and URLs rather than article text. However, it never names search_hig, the nearest sibling, so the list-vs-search distinction is only inferable.

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?

"Filter by section, component group, or platform" describes how to narrow results, which implies the browsing use case, but gives no explicit when-to-use or when-not-to-use guidance relative to search_hig. No prerequisites or exclusions are stated.

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

search_higSearch HIGA

Search the HIG catalog by title, section, and aliases such as modal, nav, or form. Returns matching topics and official URLs. Does not return full articles; call get_topic for those.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesWords to search for, such as sheet, sidebar, or dark mode.
sectionNoTop-level HIG section.
platformNoTarget platform. Use web for websites and web apps.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the disclosure burden on its own. It usefully states what comes back (matching topics and official URLs, not full content), but says nothing about auth needs, rate limits, ranking behavior, or pagination.

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?

Three short sentences, front-loaded with the core action and ending with the routing caveat. Every clause carries information and nothing is padded.

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 4-param search tool with no output schema, it covers the return shape at a high level and routes to get_topic, but never mentions the platform or limit parameters and gives no sense of result volume or ordering. Adequate but leaves gaps an agent must resolve by reading the schema.

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 75%, so the schema already documents query, section, and platform. The description echoes title/section/alias matching and adds alias examples, but adds no syntax or behavior beyond the structured fields, matching the baseline for well-covered schemas.

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?

States a specific verb (Search) and resource (the HIG catalog) plus what the query matches against (title, section, aliases). It also frames the boundary with get_topic, so an agent can tell it apart from a sibling even without opening schemas.

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?

Explicitly states the negative case (does not return full articles) and names the alternative (call get_topic for those), which is real routing guidance. It stops short of clarifying search vs list_topics or get_design_reference, so it is clear but incomplete.

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. 6 tool updatesv0.2.0
    • First observedget_design_reference
    • First observedget_topic
    • First observedguide_interface
    • First observedhelp
    • First observedlist_topics
    • First observedsearch_hig

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation4/5

list_topics, search_hig, and get_topic are clearly distinguished by browse/search/fetch semantics. The main overlap is between get_design_reference and guide_interface, which both return community implementation notes, though guide_interface adds a checklist and suggested topics.

Naming Consistency4/5

Most tools follow a verb_noun pattern (list_topics, get_topic, get_design_reference, guide_interface). Minor deviations: search_hig uses an abbreviation as its object and help is a bare verb, but overall the convention is readable and predictable.

Tool Count5/5

Six tools is well-scoped for a documentation/reference server. Each tool earns its place across discovery, retrieval, application guidance, and usage help with no redundancy bloat.

Completeness4/5

The surface covers the full discovery-to-application lifecycle: browse, search, fetch articles, get implementation notes, get a guided workflow, and help. Minor gaps like no explicit platform/section enumeration or bulk fetch exist but are workable via filters.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    MCP server for fast local code & content search powered by Hawkeye. Enables AI assistants to search indexed codebases & assets with natural language queries.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server that gives AI coding assistants retrieval access to your personal knowledge base of books, standards, and docs, grounding their answers in sources you trust.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local MCP server that gives AI agents access to developer tooling — GitHub (read-only), documentation search, and web research — via stdio transport.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for Apple HIG compliance auditing, providing tools to list skills, search/lookup HIG references, audit files/projects, and explain findings.
    143
    MIT