AdaTile-MCP
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 |
|
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 |
|
El modo en línea sigue excediendo el límite | Solo se envía la miniatura global |
|
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
.venvdel proyecto es 3.13)Variable de entorno
DEEPSEEK_API_KEY(solicitar en la plataforma DeepSeek)Activar venv en Windows/Git Bash:
source .venv/Scripts/activateInstalació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:
Instalar Python 3.11+ (en Windows, marcar "Add to PATH" durante la instalación).
Obtener el código:
git clone https://github.com/Mutton-hub/adatile-mcp.git(o copiar este directorio, sin necesidad de incluir.venv).Instalar el entorno: ejecutar
setup.bat(Windows) o./setup.sh(macOS/Linux) en la raíz del proyecto — crea automáticamente.venve instala todas las dependencias derequirements.txt.Configurar la clave: establecer la variable de entorno
DEEPSEEK_API_KEY, o copiar.env.examplecomo.envy rellenarla (elegir una de las dos opciones;.envya está excluido por.gitignore).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 aadatile_statuspara 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.batlocaliza 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 |
| stdio |
Claude Code |
| stdio |
Claude Desktop (Win) |
| stdio |
Cursor |
| stdio |
Cline (VS Code) |
| stdio |
Continue | sección mcpServers de | stdio |
Windsurf |
| stdio |
Harness propio/remoto |
| streamable-http ( |
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)
Configurar la clave: establecer la variable de entorno
DEEPSEEK_API_KEY, o copiar.env.examplecomo<repo>/.envy rellenarla (.envya está excluido por.gitignorey no entrará en el control de versiones;adatile_statuspermite confirmar si la clave está lista).Registrar el servidor MCP (tabla anterior) y reiniciar la sesión del cliente.
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.Luego llamar a
analyze_high_res_image, pasandoimage_path(ruta absoluta local) ytask_hint.Usar preferentemente el
merged_answerdevuelto; los bbox enobjects/tile_detailssirven para localización precisa.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/mcpTras 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 |
| Ruta absoluta de la imagen local (JPEG/PNG/GIF/WebP, se detecta por contenido) |
|
|
|
|
Resto de parámetros |
|
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.pySystem 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ónImagen 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)
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