Приклади / Desktop MCP

Ваш пристрій, ваші дані, ваш агент

Персональний AI-асистент, що працює на 100% на пристрої. Без хмари. Без Python. Ваші дані не залишають машину.

device_agent.toml

Проблема

Siri надсилає ваш голос Apple. Google Assistant надсилає ваші запити Google. Alexa надсилає все Amazon. Кожен "розумний" асистент вимагає стрибка в хмару. Ваш календар, контакти, повідомлення та дані про місцезнаходження залишають пристрій.

Що якби ви могли мати потужного асистента, який ніколи не надсилає жодного байта за межі вашої машини?

Конфіг

device_agent.toml описує повноцінного on-device асистента з локальним LLM inference і доступом до всіх ваших даних Apple через iMCP - і все це у 82 рядках TOML.

Локальний LLM inference

[agent]
provider = "llama_cpp"
model = "unsloth/Qwen3-VL-8B-Instruct-GGUF:UD-Q6_K_XL"
assume_mutating = false
tools = [
  "create_task", "todowrite", "todoread",
  "question", "mdq",
  # Усі інструменти даних Apple приходять з iMCP
  "iMCP.*",
]
Wildcard-патерн для інструментів

"iMCP.*" - це wildcard, який збігається з кожним інструментом, що його експортує iMCP MCP server. Коли в iMCP з'являються нові сервіси (Reminders, Notes, Shortcuts), агент автоматично отримує до них доступ без змін у конфігу.

Параметри GPU-моделі

[agent.parameters]
n_ctx = 160000        # Контекстне вікно 160K
max_tokens = 8192        # Макс. довжина відповіді
top_p = 0.95
top_k = 20
temperature = 0.9        # Креативно, але приземлено
flash_attention = "enabled" # Швидший inference
Автовизначення GPU

QueryMT автоматично визначає ваш GPU (Metal на Apple Silicon, CUDA на NVIDIA, Vulkan в інших випадках) і завантажує правильний OCI-варіант образу. Без налаштування драйверів. Без встановлення CUDA toolkit.

Тришарове ущільнення для довгих розмов

# Шар 1: обрізання виводу інструментів
[agent.execution.tool_output]
max_lines = 2000
max_bytes = 51200

# Шар 2: pruning після кожного ходу
[agent.execution.pruning]
protect_tokens = 40000

# Шар 3: AI summary при переповненні контексту
[agent.execution.compaction]
auto = true

Запити до календаря й пошук по контактах повертають структуровані дані. Але довгі розмови з великою кількістю викликів інструментів все одно можуть заповнити вікно у 160K. Тришарова система ущільнення обробляє це автоматично: обрізає великі виводи інструментів, відкидає старі повідомлення та підсумовує, коли це потрібно.

MCP server: iMCP

# iMCP - локальний доступ до даних Apple
[[mcp]]
name = "iMCP"
transport = "stdio"
command = "/Applications/iMCP.app/Contents/MacOS/imcp-server"

Це каже QueryMT локально запускати iMCP MCP server. Агент спілкується з ним через stdio - без жодного мережевого з'єднання. iMCP напряму мостить до нативних API Apple.

Архітектура

Усе залишається на пристрої. Дані не залишають вашу машину на жодному етапі пайплайну:

Ваше запитання "Чи маю я час на обід із Sarah?"
Агент (llama.cpp) Працює локально на вашому GPU. Вирішує, які інструменти викликати.
iMCP (stdio) Мостить до API Calendar, Contacts, Messages, Maps, Weather.
API Apple Нативний доступ на пристрої. Без мережевого стрибка.
Нуль мережевого доступу

LLM працює локально через llama.cpp. Виклики інструментів ідуть до iMCP через stdio. iMCP викликає локальні API Apple. Ваші дані в жодний момент не проходять через мережеве з'єднання. Агент працює офлайн.

Приклад взаємодії

Ви
"Чи маю я час на обід із Sarah сьогодні?"
Агент → Calendar
Читає події на сьогодні. Знаходить вільне вікно з 12:00 до 13:00.
Агент → Contacts
Шукає Sarah. Знаходить її номер телефону та бажану локацію.
Агент → Messages
Переглядає недавні повідомлення із Sarah. Знаходить тред з минулого тижня про новий італійський заклад.
Агент → Maps
Оцінює час у дорозі до бажаного району ресторану Sarah. 15 хвилин пішки.
Відповідь агента
"У тебе є вікно на 1 годину о 12:00. Минулого тижня Sarah згадувала, що хоче спробувати італійський заклад на 5th - це 15 хвилин пішки від твоєї післяобідньої зустрічі. Хочеш, я додам подію в календар?"

Ключові можливості

  • 100% on-device — локальний LLM inference, локальний доступ до даних, без хмари
  • Інтеграція з iMCP — Calendar, Contacts, Messages, Maps, Weather через нативні API
  • Wildcard-патерни інструментів"iMCP.*" автоматично підхоплює нові сервіси
  • Автовизначення GPU — Metal/CUDA/Vulkan, без ручного конфігу
  • Працює офлайнstdio транспорт, мережа не потрібна
  • Тришарове ущільнення — витримує довгі розмови з великою кількістю інструментів

Спробуйте самі

# 1. Встановіть iMCP
brew install --cask mattt/tap/iMCP
# Або завантажте з https://iMCP.app/download

# 2. Відкрийте iMCP.app і ввімкніть сервіси (Calendar, Contacts тощо)

# 3. Запустіть агента
cargo run --example qmtcode --features dashboard --   confs/device_agent.toml --dashboard

# 4. Ставте запитання в dashboard:
#   "What does my schedule look like today?"
#   "Do I have any messages from Sarah this week?"
#   "What's the weather like for my commute home?"