AdaTile-MCP
AdaTile-MCP v1.0
Адаптивный препроцессорный слой нарезки изображений высокого разрешения (MCP) для целевой модели DeepSeek deepseek-v4-flash-vision-exp.
По шестинедельному плану «Руководства по построению проекта AdaTile-MCP (v1.2)» выполнены все фазы 0–5. Прогресс и фактические данные — в STATE.md, актуальный список обнаруженных проблем — в KNOWN_ISSUES.md.
Шестиуровневый конвейер (pipeline_v1)
L1 быстрый канал (magic bytes / ленивое декодирование / понижение разрешения при превышении лимита / прямая отправка маленьких изображений) → L2 салиентность (спектральный остаток, CPU по умолчанию, опционально U²-Netp, деградация по тайм-ауту Watchdog) → L3 адаптивная нарезка (связные компоненты / предварительное распределение бюджета / выбор непрерывных блоков / вариант document fine) → L4 сборка и загрузка (конвейерное кодирование тайлов на уровне tile с последующей загрузкой, трёхуровневый кэш, шесть жёстких проверок соответствия, цепочка деградации) → L5 потоковый вызов (принудительный вывод json_object, TTFT в двух измерениях, повторные попытки и глобальный запасной вариант) → L6 объединение на основе правил (IOU>0.3 и одна метка → общий bbox).
Related MCP server: image-tiler-mcp-server
Описание поведения при деградации
Триггер | Поведение | Метка |
Неподдерживаемый формат / повреждённый файл | Структурированная ошибка, без деградации |
|
Тайм-аут салиентности (>350 мс) | Используется равномерная динамическая сетка | виден в trace |
Сбой загрузки через Files API (после повторов) | Σbase64 ≤24 МиБ — всё отправляется инлайн |
|
Инлайн по-прежнему превышает лимит | Отправляется только глобальный thumbnail |
|
Текст модели без JSON | Одно принудительное повторение с запросом JSON | автоматически, без настройки |
file_id недействителен | Обновить кэш и пересобрать один раз | автоматически |
Базовые показатели качества и задержки (фактические измерения, подробнее в experiments/*.json)
Первичная обработка: p95 = 1116 мс (включая реальную загрузку) / при попадании в кэш = 134 мс; TTFT 847 мс / 613 мс; 10 параллельных запросов — 100 % успех.
Сравнение и абляция четырёх вариантов Phase 5:
experiments/phase5_results.json
Требования к окружению
Python 3.11+ (внутри проекта
.venv— 3.13)Переменная окружения
DEEPSEEK_API_KEY(получить на платформе DeepSeek)Активация venv в Windows/Git Bash:
source .venv/Scripts/activateНа новой машине настройка одной командой:
setup.bat(Windows) /setup.sh(macOS/Linux) — см. следующий раздел
Подключение с нуля (новая машина / любой агент)
.venv и ключ не распространяются вместе с репозиторием; на новой машине достаточно 5 шагов:
Установить Python 3.11+ (при установке в Windows отметьте "Add to PATH").
Получить код:
git clone https://github.com/Mutton-hub/adatile-mcp.git(или скопируйте этот каталог без.venv).Установить окружение: в корне проекта выполнить
setup.bat(Windows) или./setup.sh(macOS/Linux) — автоматически создаётся.venvи устанавливаются все зависимости изrequirements.txt.Настроить ключ: задать переменную окружения
DEEPSEEK_API_KEY, либо скопировать.env.exampleв.envи заполнить (выберите один из двух вариантов;.envуже исключён через.gitignore).Зарегистрировать MCP: настройте конфигурацию агента — как в таблице ниже — указав на абсолютный путь к
run.bat(Windows) /run.sh(Unix) в вашем локальном репозитории; после перезапуска сессии сначала вызовитеadatile_statusдля самопроверки.
Если на одной машине подключаются несколько агентов, достаточно повторить шаг 5 (каждый клиент настраивается отдельно); окружение и ключ общие.
Регистрация MCP — подходит для любого локального агента/harness
Сервер — стандартный MCP (по умолчанию stdio; http/sse опционально); могут подключаться следующие клиенты.
Порядок определения ключа: переменная окружения DEEPSEEK_API_KEY → файл .env в корне проекта (скопируйте .env.example в .env и заполните — удобно для клиентов, где сложно задавать переменные окружения).
Общая форма для всех клиентов с поддержкой stdio MCP. Замените <repo> на фактический абсолютный путь после клонирования/получения репозитория (при пути с китайскими символами или пробелами обязательно используйте абсолютный путь):
{
"mcpServers": {
"adatile-mcp": {
"command": "<repo>\\run.bat",
"args": []
}
}
}Лаунчер
run.batавтоматически находит venv (на macOS/Linux используйте<repo>/run.sh). Можно также напрямую указать<repo>/.venv/Scripts/python.exe+server.py.
Клиент | Файл конфигурации | Транспорт |
ZCode | корень проекта | stdio |
Claude Code | корень проекта | stdio |
Claude Desktop (Win) |
| stdio |
Cursor |
| stdio |
Cline (VS Code) |
| stdio |
Continue | секция | stdio |
Windsurf |
| stdio |
свой/удалённый harness |
| streamable-http ( |
Пример конфигурации уровня проекта для ZCode (<repo>/.zcode/config.json, после клонирования распространяется в составе репозитория):
{
"mcp": {
"servers": {
"adatile-mcp": {
"command": "C:\\path\\to\\cloned-repo\\run.bat",
"args": []
}
}
}
}Использование после подключения (любой агент/harness)
Настройте ключ: задайте переменную окружения
DEEPSEEK_API_KEYили скопируйте.env.exampleв<repo>/.envи заполните его (.envисключён через.gitignore, поэтому не попадёт в версию контроля;adatile_statusпозволит проверить, что ключ готов).Зарегистрируйте MCP-сервер (таблица выше) и перезапустите сессию клиента.
Сначала вызовите
adatile_status(ноль API-вызовов, ноль затрат), чтобы подтвердить настройку ключа и локальные возможности L1–L6.Затем вызовите
analyze_high_res_image, передавimage_path(локальный абсолютный путь) иtask_hint.Превалирую используйте
merged_answer; bbox вobjects/tile_detailsможно использовать для точного позиционирования.Для уточняющих вопросов по тому же изображению просто повторно вызовите тот же
image_path— внутренний трёхуровневый кэш сработает автоматически, управлять file_id вручную не нужно.
Пример HTTP-режима (контейнер/remote harness):
./run.sh --transport http --host 0.0.0.0 --port 8765
# MCP endpoint: http://<host>:8765/mcpПосле подключения сначала вызовите adatile_status (ноль API-вызовов), чтобы проверить настройку ключа и локальные возможности, затем вызывайте analyze_high_res_image.
Инструмент: analyze_high_res_image
Параметр | Описание |
| локальный абсолютный путь к изображению (JPEG/PNG/GIF/WebP; формат определяется по содержимому) |
|
|
|
|
Остальные параметры |
|
Возвращает: merged_answer, objects (разбор по возможности), tile_details (включая bbox и file_id), latency_ms, token_usage, upload_stats, route (direct_pass / tile_pipeline).
Часто используемые команды
# 生成测试集 A(50 张 4K 合成图 + ground_truth.json)
.venv/Scripts/python.exe experiments/cases/gen_set_a.py --n 10 --seed 42
# Phase 0 校准实验(先跑一票否决用例!)
.venv/Scripts/python.exe experiments/run_phase0.py --cases TC-0.1.8 TC-0.3.1 TC-0.4.2
.venv/Scripts/python.exe experiments/run_phase0.py --list # 查看全部用例
.venv/Scripts/python.exe experiments/run_phase0.py --full # 含重型用例
.venv/Scripts/python.exe experiments/run_phase0.py --rounds 10 # TTFT 轮数控制费用
# 本地自检(无 API 调用)
.venv/Scripts/python.exe -m pytest tests/test_local.py -q
# stdio 端到端冒烟测试(真实子进程 + 官方 MCP SDK,零 API 调用)
.venv/Scripts/python.exe tests/stdio_smoke.pySystem Prompt на стороне агента (шаблон B, разденом 3.3 руководства)
当用户上传高分辨率图像(总像素 > 64 万)时:
1. 调用 analyze_high_res_image 工具,传入 image_path 和 task_hint(上传与切片由工具自动经 Files API 完成);
2. task_hint:文字识别→"ocr";全景描述→"describe";具体元素→"detect";
3. 优先使用 merged_answer;tile_details 中的 bbox 可精确定位;
4. 同一张图的追问请复用工具(内部缓存自动命中);
5. 禁止直接将原图 base64 传给 VLM——必须走本工具,否则细节丢失。Поведение при деградации (Phase 0)
L1 — повреждение / неподдерживаемый формат → структурированная ошибка
{stage:"L1", reason:...}, путь деградации отсутствуетМаленькое изображение (≤640 000 пикселей) → DirectPass single direct transfer
Files API недоступен → у основного варианта пока нет автоматической деградации (в Phase 3 реализуется цепочка деградации с полным инлайном)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables vision LLMs to read PDFs by automatically detecting text corruption and switching between text extraction and image rendering modes, while preserving reading order and filtering unnecessary images to prevent token overflow.3MIT
- AlicenseAqualityDmaintenanceMCP server that gives LLMs full-resolution vision by tiling images and capturing web pages before details are lost.1412MIT
- AlicenseNot gradedqualityCmaintenanceBridges text-only models like DeepSeek to 6 free multimodal vision APIs via MCP, enabling image understanding and analysis through automatic fallback and caching.563MIT
- AlicenseAqualityCmaintenanceAugments DeepSeek-V4 with image understanding and deep research capabilities via MCP, enabling vision and web research tools.51MIT
Related MCP Connectors
AI visual generation agent: multi-pipeline rendering, prompt crafting, and image composition.
AI image processing: upscale, resize, crop, compress, convert file format, and generate SEO metadata
Video scene understanding for AI agents via the Primate Vision API.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Mutton-hub/adatile-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server