Skip to main content
Glama

apple-fm-mcp

CI License: MIT Python 3.10+

MCP server for Apple on-device Foundation Models. Use Apple Intelligence from any MCP client — Claude Code, Cursor, Windsurf — running locally on your Mac for free.

Built on python-apple-fm-sdk and the Model Context Protocol.

Requirements

  • macOS 26+ (Tahoe) with Apple Intelligence enabled

  • Apple Silicon Mac (M1+)

  • Python 3.10+

  • apple-fm-sdk — Apple's Python SDK for on-device Foundation Models

Related MCP server: apple-fm-mcp

Installation

git clone https://github.com/yihan2099/apple-fm-mcp.git
cd apple-fm-mcp
uv sync

You also need the Apple Foundation Models SDK:

pip install git+https://github.com/apple/python-apple-fm-sdk.git

Note: apple-fm-mcp is not yet published to PyPI. uv tool install and pip install from PyPI will be available in a future release.

Usage

Claude Code

claude mcp add apple-fm -- apple-fm-mcp

Cursor / Windsurf

Add to your MCP config (~/.cursor/mcp.json or equivalent):

{
  "mcpServers": {
    "apple-fm": {
      "command": "apple-fm-mcp"
    }
  }
}

MCP Inspector

npx @modelcontextprotocol/inspector apple-fm-mcp

Tools

Tool

Description

check_model_availability

Check if the on-device model is available

generate

One-shot text generation with optional instructions

generate_structured

JSON output matching a provided schema

chat

Multi-turn conversation with named sessions

tag_content

Content tagging using Apple's CONTENT_TAGGING use case

list_sessions

List active conversation sessions

clear_session

Delete a named session

clear_all_sessions

Delete all sessions

Examples

Generate text:

"Use apple-fm to explain what a closure is in Swift"

Structured output:

"Use apple-fm generate_structured to extract {name, email, company} from this text: ..."

Multi-turn chat:

"Start an apple-fm chat session called 'code-review' and ask it to review this function" "In the 'code-review' session, ask it to suggest improvements"

Resources

URI

Description

apple-fm://status

Model availability + device info

apple-fm://sessions

Active sessions metadata

apple-fm://transcript/{name}

Conversation transcript for a session

Prompt Templates

Prompt

Parameters

Description

summarize

text, style (concise/detailed/bullet-points)

Summarize text

extract_structured

text, fields (comma-separated)

Extract named fields as JSON

classify

text, categories (comma-separated)

Single-label classification

Limitations

  • macOS only — Apple Foundation Models require Apple Silicon and macOS 26+

  • No streaming — MCP tools return complete responses

  • In-memory sessions — conversation state is lost when the server restarts

  • On-device model limits — the model is optimized for short tasks (summarization, extraction, classification), not long-form generation

  • No image/audio — text-only; multimodal support may come in future SDK versions

SDK Documentation

This project wraps apple-fm-sdk. Key references:

Development

git clone https://github.com/yihan2099/apple-fm-mcp.git
cd apple-fm-mcp
uv sync --dev
uv run pytest

Tests mock apple_fm_sdk so they run on any platform.

Linting

uv run ruff check src/ tests/
uv run ruff format src/ tests/

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yihan2099/apple-fm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server