Skip to main content
Glama
cerase-ai

cerase-media MCP

Official
by cerase-ai

cerase-media MCP

Comprensión multimodal de primera parte (M-MEDIA-1 = la fusión de los antiguos cerase-ocr + cerase-transcriber): cinco herramientas asíncronas sobre el alias de modelo multimodal a través de cerase-litellm, facturadas por agente. Las dos últimas (analyze_ui, compare_screenshots) son el par de capturas de pantalla UX/UI añadido por M-CERASE-MEDIA-UX — el mismo endpoint multimodal, prompts especializados, sin dependencia adicional.

Herramienta

Pregunta que responde

Devuelve

ocr

¿qué está ESCRITO en esta imagen?

{text, model}

describe_image

¿qué MUESTRA esta imagen?

{description, model}

transcribe

¿qué dice este audio?

{text, model}

analyze_ui

¿qué hay en esta captura de interfaz? — auditoría estructurada de diseño, tipografía, colores, elementos interactivos, texto, errores visuales, accesibilidad, coherencia

{analysis, model}

compare_screenshots

¿qué ha cambiado entre dos capturas? — diff visual antes/después (diseño / texto / estilo / nuevo / eliminado / regresiones)

{diff, model}

La entrada de imagen se acepta de tres formas (elige una): path (un archivo bajo CERASE_TOOL_WORKSPACE_ROOT), image_url o image_base64. compare_screenshots acepta las variantes de dos imágenes (path1/image1_url/ image1_base64 y path2/…).

Asíncrono por diseño: las herramientas esperan ~100% a la LLM, por lo que las peticiones concurrentes se ejecutan en carriles de E/S paralelos dentro del contenedor runner único (sin cola por modalidad). ffmpeg (normalización de audio) se ejecuta como un subproceso asíncrono.

Audio largo: el troceador

transcribe corta cualquier cosa más larga que un fragmento (chunker.py), transcribe las piezas de forma concurrente y vuelve a ensamblar el texto. Cada pieza después de la primera repite los últimos segundos de la anterior para que ninguna palabra se pierda en un corte, y las palabras repetidas se localizan y se eliminan al unir las piezas. Un llamador que sepa dónde cambian los interlocutores puede proporcionar una línea temporal de hablantes: los cortes se desplazan a los cambios de turno, donde no hay nada que repetir.

Cada pieza — incluida una grabación lo bastante corta como para no necesitar corte — recibe un segundo de silencio delante. El audio que empieza con una palabra vuelve con esa primera frase ausente.

Parámetro

Valor por defecto

Qué decide

CERASE_TRANSCRIBE_CHUNK_SECONDS

120

cuánto dura una pieza y cuándo llega el primer texto

CERASE_TRANSCRIBE_CHUNK_OVERLAP_SECONDS

6

cuánto audio repite cada corte ciego

CERASE_TRANSCRIBE_CONCURRENCY

4

piezas de una grabación en vuelo a la vez

CERASE_TRANSCRIBE_LEAD_SILENCE_SECONDS

1

silencio delante de cada pieza

Related MCP server: mcp-multimedia-server

El mismo código como endpoint HTTP

transcription_api.py sirve POST /v1/audio/transcriptions — la interfaz que los drivers ya hablan — sobre el mismo troceador. El servicio de compose cerase-transcription ejecuta esta imagen en ese entrypoint:

python -m uvicorn --app-dir /app --factory transcription_api:create_app --host 0.0.0.0 --port 8080

Acepta los campos de OpenAI (file, model, language, response_format, stream) más dos propios: agent_id (o la cabecera X-Cerase-Agent-Id), al que se factura cada llamada de modelo y que es obligatorio, y speaker_timeline, un array JSON de {start, end, speaker}. Los llamadores presentan CERASE_INTERNAL_SECRET como bearer; un secreto sin definir rechaza todas las peticiones. Con stream=true, cada pieza sale como evento transcript.text.delta en cuanto llega, y la ejecución termina con transcript.text.done.

Env: LITELLM_BASE_URL, LITELLM_MASTER_KEY (clave de servicio con ámbito), CERASE_MULTIMODAL_ALIAS (por defecto multimodal), CERASE_TOOL_WORKSPACE_ROOT (raíz de protección contra path traversal), CERASE_INTERNAL_SECRET (el bearer del endpoint HTTP).

Related MCP Connectors

Related MCP Servers