Skip to main content
Glama

AdaTile-MCP v1.0

Capa de preprocesamiento de adaptación y división de imágenes de alta resolución (MCP), modelo objetivo DeepSeek deepseek-v4-flash-vision-exp. Según el plan de seis semanas de la Guía de construcción del proyecto AdaTile-MCP (v1.2), se completaron todas las fases 0–5. El progreso y los datos medidos se encuentran en STATE.md; la lista actual de problemas detectados está en KNOWN_ISSUES.md.

Pipeline de seis capas (pipeline_v1)

L1 Canal rápido (magic bytes/decodificación perezosa/redimensionado por exceso de límite/paso directo de imágenes pequeñas) → L2 Saliencia (residuo espectral por CPU por defecto, U²-Netp opcional, degradación por timeout del Watchdog) → L3 División adaptativa (dominios conexos/preasignación de presupuesto/selección de bloques contiguos/ruta fina para documentos) → L4 Ensamblado y subida (codificación→subida en pipeline a nivel de tile, caché de tres niveles, seis verificaciones duras de cumplimiento, cadena de degradación) → L5 Invocación en streaming (salida forzada de json_object, TTFT con doble métrica, reintentos y garantía global mínima) → L6 Fusión reglada (IOU>0.3 misma etiqueta y fusión de bbox).

Related MCP server: image-tiler-mcp-server

Descripción del comportamiento de degradación

Disparador

Comportamiento

Marcador

Formato no soportado/archivo dañado

Error estructurado, sin degradación

error.stage=L1

Timeout de detección de saliencia (>350ms)

Rejilla dinámica uniforme como alternativa

visible en trace

Fallo de subida a Files API (tras reintentos)

Todo en línea con Σbase64 ≤24MiB

upload_stats.degraded=true

El modo en línea sigue excediendo el límite

Solo se envía la miniatura global

channel=degraded_global_only

Salida en prosa del modelo (sin JSON)

Reintento forzado de JSON una vez

Automático, sin configuración

file_id no válido

Refresco de caché y reensamblado una vez

Automático

Línea base de calidad y latencia (medida, ver experiments/*.json)

  • p95 del primer preprocesamiento 1116ms (incluye subida real) / 134ms con acierto de caché; TTFT 847ms/613ms; 10 concurrencias 100% de éxito

  • Comparación de cuatro esquemas y ablación de la Fase 5: experiments/phase5_results.json

Requisitos del entorno

  • Python 3.11+ (el .venv del proyecto es 3.13)

  • Variable de entorno DEEPSEEK_API_KEY (solicitar en la plataforma DeepSeek)

  • Activar venv en Windows/Git Bash: source .venv/Scripts/activate

  • Instalación del entorno en una máquina nueva con un solo comando: setup.bat (Windows) / setup.sh (macOS/Linux), ver sección siguiente

Integración desde cero (máquina nueva / cualquier agente)

El .venv y las claves no viajan con el repositorio; en una máquina nueva solo se necesitan 5 pasos:

  1. Instalar Python 3.11+ (en Windows, marcar "Add to PATH" durante la instalación).

  2. Obtener el código: git clone https://github.com/Mutton-hub/adatile-mcp.git (o copiar este directorio, sin necesidad de incluir .venv).

  3. Instalar el entorno: ejecutar setup.bat (Windows) o ./setup.sh (macOS/Linux) en la raíz del proyecto — crea automáticamente .venv e instala todas las dependencias de requirements.txt.

  4. Configurar la clave: establecer la variable de entorno DEEPSEEK_API_KEY, o copiar .env.example como .env y rellenarla (elegir una de las dos opciones; .env ya está excluido por .gitignore).

  5. Registrar MCP: según la tabla siguiente, apunta la configuración de tu agente a run.bat (Windows) / run.sh (Unix) en la ruta absoluta del repositorio local; tras reiniciar la sesión, llama primero a adatile_status para la autocomprobación.

Al conectar varios agentes en la misma máquina, solo hay que repetir el paso 5 (cada cliente se configura por separado); el entorno y la clave se comparten.

Registro MCP — adaptable a cualquier agente/harness local

El servidor es un MCP estándar (stdio por defecto / http / sse opcional); los siguientes clientes pueden conectarse. Orden de resolución de la clave: variable de entorno DEEPSEEK_API_KEY → archivo .env en la raíz del proyecto (basta con copiar .env.example como .env y rellenarlo; adecuado para clientes donde es difícil inyectar variables de entorno).

Forma general (todos los clientes compatibles con stdio MCP). Reemplaza <repo> por la ruta absoluta real tras clonar/extraer el repositorio (si la ruta contiene caracteres chinos o espacios, es obligatorio usar ruta absoluta):

{
  "mcpServers": {
    "adatile-mcp": {
      "command": "<repo>\\run.bat",
      "args": []
    }
  }
}

El lanzador run.bat localiza automáticamente el venv (en macOS/Linux usar <repo>/run.sh). También se puede apuntar directamente a <repo>/.venv/Scripts/python.exe + server.py.

Ubicación de configuración por cliente:

Cliente

Archivo de configuración

Transporte

ZCode

.zcode/config.json en la raíz del proyecto (mcp.servers) o a nivel de usuario ~/.zcode/cli/config.json

stdio

Claude Code

.mcp.json en la raíz del proyecto o a nivel de usuario ~/.claude.json (mcpServers)

stdio

Claude Desktop (Win)

%APPDATA%\Claude\claude_desktop_config.json

stdio

Cursor

.cursor/mcp.json (proyecto) o configuración global

stdio

Cline (VS Code)

cline_mcp_settings.json

stdio

Continue

sección mcpServers de config.yaml

stdio

Windsurf

mcp_config.json

stdio

Harness propio/remoto

run.bat --transport http --port 8765

streamable-http (http://127.0.0.1:8765/mcp) o --transport sse

Ejemplo de configuración a nivel de proyecto en ZCode (<repo>/.zcode/config.json, se comparte con el equipo tras clonar):

{
  "mcp": {
    "servers": {
      "adatile-mcp": {
        "command": "C:\\path\\to\\cloned-repo\\run.bat",
        "args": []
      }
    }
  }
}

Flujo de uso tras la integración (cualquier agente/harness)

  1. Configurar la clave: establecer la variable de entorno DEEPSEEK_API_KEY, o copiar .env.example como <repo>/.env y rellenarla (.env ya está excluido por .gitignore y no entrará en el control de versiones; adatile_status permite confirmar si la clave está lista).

  2. Registrar el servidor MCP (tabla anterior) y reiniciar la sesión del cliente.

  3. Llamar primero a adatile_status (cero llamadas a la API, cero coste) para confirmar la configuración de la clave y las capacidades locales de L1–L6.

  4. Luego llamar a analyze_high_res_image, pasando image_path (ruta absoluta local) y task_hint.

  5. Usar preferentemente el merged_answer devuelto; los bbox en objects/tile_details sirven para localización precisa.

  6. Para preguntas de seguimiento sobre la misma imagen, basta con volver a llamar con el mismo image_path — la caché interna de tres niveles se activa automáticamente, sin necesidad de gestionar file_id manualmente.

Ejemplo en modo HTTP (contenedor/harness remoto):

./run.sh --transport http --host 0.0.0.0 --port 8765
# MCP endpoint: http://<host>:8765/mcp

Tras la integración, llamar primero a adatile_status (cero llamadas a la API) para confirmar la configuración de la clave y las capacidades locales, y luego llamar a analyze_high_res_image.

Herramienta: analyze_high_res_image

Parámetro

Descripción

image_path

Ruta absoluta de la imagen local (JPEG/PNG/GIF/WebP, se detecta por contenido)

task_hint

ocr / describe / detect

strategy

auto (esquema principal: miniatura global en línea + 5 tiles vía Files API) / b0 subida directa / b1 2×2 / b2 3×3

Resto de parámetros

max_tiles / overlap_ratio / image_token_budget / upload_channelmax_tiles y upload_channel son parámetros reservados (el orquestador aún no está conectado; los valores efectivos actuales son sus valores por defecto); overlap_ratio e image_token_budget ya están activos

Devuelve: merged_answer, objects (parseo con mejor esfuerzo), tile_details (incluye bbox y file_id), latency_ms, token_usage, upload_stats, route (direct_pass / tile_pipeline).

Comandos habituales

# 生成测试集 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.py

System Prompt del lado del agente (plantilla B, guía 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——必须走本工具,否则细节丢失。

Comportamiento de degradación (Fase 0)

  • L1 archivo dañado/formato no soportado → error estructurado {stage:"L1", reason:...}, sin ruta de degradación

  • Imagen pequeña (≤640 000 píxeles) → DirectPass con subida única directa

  • Files API no disponible → el esquema principal no tiene degradación automática por ahora (la Fase 3 implementa la cadena de degradación totalmente en línea)

A
license - permissive license
Not graded
quality - not tested
C
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.

Related MCP Servers

View all related MCP servers

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.

View all MCP Connectors

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/Mutton-hub/adatile-mcp'

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