Apple Fm Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Apple Fm Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
apple-fm-sdk — Apple's Python SDK for on-device Foundation Modelsgit clone https://github.com/yihan2099/apple-fm-mcp.git
cd apple-fm-mcp
uv syncYou also need the Apple Foundation Models SDK:
pip install git+https://github.com/apple/python-apple-fm-sdk.gitNote:apple-fm-mcpis not yet published to PyPI.uv tool installandpip installfrom PyPI will be available in a future release.
claude mcp add apple-fm -- apple-fm-mcpAdd to your MCP config (~/.cursor/mcp.json or equivalent):
{
"mcpServers": {
"apple-fm": {
"command": "apple-fm-mcp"
}
}
}npx @modelcontextprotocol/inspector apple-fm-mcp| 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 |
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"
| 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 | 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 |
This project wraps apple-fm-sdk. Key references:
git clone https://github.com/yihan2099/apple-fm-mcp.git
cd apple-fm-mcp
uv sync --dev
uv run pytestTests mock apple_fm_sdk so they run on any platform.
uv run ruff check src/ tests/
uv run ruff format src/ tests/See CONTRIBUTING.md for guidelines.
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.