MCP server exposing Apple's on-device Foundation Model as tools via stdio JSON-RPC 2.0 transport. Provides text generation, structured extraction, vision, token counting, and file compression using the free on-device model.
Server has 6 tools with complete schemas and descriptions. Naming is action-oriented (respond, extract, vision, token_count, available, compress). Descriptions are adequate (100-200 chars, within baseline). However, parameter descriptions are sparse or missing in several tools (vision lacks image_path format guidance; compress lacks target_tokens range). Output schemas are not documented. Error handling is basic (returns ok/text tuples with error messages, but no recovery guidance or categorization). No tool annotations (readOnlyHint, destructiveHint). Missing idempotency guarantees and per-item failure reporting for batch-like operations.
Check on-device (and PCC) model availability.
Compress a large file into a shorter digest using the on-device model (chunk + map-summarize). Lossy: use for overview/summary, not when exact content matters.
Extract structured fields from text as JSON, using the on-device model's guided generation. Provide 'fields' as a list of {name, type} where type is string|int|number|boolean.
Generate a response from Apple's free on-device model. Best for short tasks (classify, summarize, quick Q&A, short rewrite) that fit a 4096-token window. Use 'permissive' for rewrite/transform tasks.
Count how many tokens a string is for the on-device model (window is 4096). Use to decide whether input fits before calling respond.
Ask the on-device model about a (small) image: OCR, alt text, simple Q&A. For dense screenshots/terminals prefer the ollama qwen2.5vl model instead.
Output schemas not documented. LLMs cannot plan downstream calls or extract structured data without knowing what fields to expect from each tool.
Parameter descriptions lack format/range guidance. 'image_path' (vision) does not specify absolute vs relative, supported formats, or size limits. 'target_tokens' (compress) lacks min/max bounds.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are marked READ_ONLY in metadata but schema lacks formal annotations for LLM safety reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Error messages are generic. 'extract: could not build schema' does not guide recovery. No categorization of errors as retryable vs user-fixable.
compress tool lacks idempotency guarantee and does not document whether repeated calls with same path/target_tokens produce identical digests.