IIIF Images Server
Un servidor para trabajar con manifiestos e imágenes de IIIF (International Image Interoperability Framework).
Documentación
MCP para IIIF Images
Un servidor de Model Context Protocol (MCP) para trabajar con manifiestos e imágenes IIIF (International Image Interoperability Framework). Consulta este video para una demostración.
Características
Este servidor MCP contiene las siguientes herramientas:
fetch_iiif_manifest: Obtener un manifiesto IIIF desde una URL. (Ten en cuenta que los clientes pueden tener dificultades para procesar grandes cantidades de JSON).fetch_iiif_image: Recuperar una imagen IIIF desde una URI base, obteniendo info.json y devolviendo los datos de la imagen (por defecto: dimensión máxima de 1500px, máximo 800,000 píxeles en total).fetch_iiif_image_region: Recuperar una región específica de una imagen IIIF usando coordenadas porcentuales, con la región escalada para ajustarse a las mismas restricciones.
Advertencias
- El código escala las imágenes a dimensiones aceptables para Claude. No funcionará con una implementación de Image API de Nivel 0.
- Es posible que Claude no procese algunos manifiestos IIIF debido al tamaño del archivo.
Configuración de Claude Desktop
Instalación desde el archivo de extensión de Claude Desktop (DXT)
- Instala e inicia sesión en Claude Desktop.
- Descarga el archivo
.dxtdesde la última versión. - Haz doble clic en el archivo
.dxt. - Instala la extensión cuando Claude lo solicite.
Instalación desde el código fuente
- Clona este repositorio.
- Instala las dependencias:
npm install - Haz que el servidor sea ejecutable:
chmod +x server/server.js
Para usar este servidor MCP con Claude Desktop, agrega la siguiente configuración a tu archivo de configuración de Claude Desktop. Ajusta la ruta del archivo según sea necesario. También puede que necesites proporcionar la ruta completa a tu comando node.
macOS
Edita ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-iiif-images": {
"command": "node",
"args": ["/PATH/TO/mcp-iiif-images/server/server.js"]
}
}
}
Windows
Edita %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"mcp-iiif-images": {
"command": "node",
"args": ["C:\\path\\to\\mcp-iiif-images\\server\\server.js"]
}
}
}
Linux
Edita ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-iiif-images": {
"command": "node",
"args": ["/path/to/mcp-iiif-images/server/server.js"]
}
}
}
Uso general de MCP
El servidor admite dos modos de transporte:
Modo estándar (stdio)
Ejecuta el servidor usando el transporte stdio (por defecto):
npm start
# or
node server/server.js
Modo de transmisión HTTP
Ejecuta el servidor usando el transporte de transmisión HTTP:
node server/server.js --http
# or with custom port
node server/server.js --http --port 8080
Opciones de línea de comandos
--http: Usar transporte de transmisión HTTP en lugar de stdio--port PORT: Número de puerto para el servidor HTTP (por defecto: 3000)--help: Mostrar mensaje de ayuda
Cuando se usa el modo HTTP, el servidor iniciará un servidor HTTP con los siguientes endpoints:
GET /sse: Establecer conexión Server-Sent EventsPOST /messages?sessionId=<id>: Enviar mensajes MCP
Modo de transmisión HTTP
Para el modo de transmisión HTTP, deberás iniciar el servidor manualmente con la bandera --http y luego configurar Claude Desktop para conectarse vía HTTP:
node server/server.js --http --port 3000
Luego configura Claude Desktop para usar el transporte HTTP (consulta la documentación de Claude Desktop para la configuración del transporte HTTP).
Nota: Actualiza la ruta en el arreglo args para que coincida con la ubicación real donde instalaste este servidor.
Después de actualizar la configuración, reinicia Claude Desktop para que los cambios surtan efecto.
Pruebas
Para ejecutar las pruebas:
# Run tests once
npm test
# Run tests in watch mode (automatically re-runs on file changes)
npm run test:watch
# Run tests with coverage
npm test -- --coverage
El proyecto usa Vitest como marco de pruebas, que proporciona:
- Ejecución rápida con soporte para módulos ES
- API compatible con Jest con mejores mensajes de error
- Informes de cobertura integrados
- Modo de observación para desarrollo
Herramientas disponibles
fetch_iiif_manifest
Obtiene y valida un manifiesto IIIF desde una URL.
Parámetros:
url(obligatorio): La URL del manifiesto IIIF a obtener
Ejemplo de uso:
Please fetch the IIIF manifest from https://example.com/manifest.json
fetch_iiif_image
Recupera una imagen IIIF desde una URI base, obteniendo info.json y devolviendo los datos de la imagen.
Parámetros:
baseUri(obligatorio): URI base del recurso de la API de imágenes IIIF (sin /info.json)
Ejemplo de uso:
Fetch the IIIF image at https://example.com/iiif/image123
fetch_iiif_image_region
Recupera una región específica de una imagen IIIF usando coordenadas porcentuales, con la región escalada para ajustarse a las mismas restricciones. Usa esto para obtener regiones de interés con mayor detalle para una descripción y análisis de imagen más precisos.
Parámetros:
baseUri(obligatorio): URI base del recurso de la API de imágenes IIIF (sin /info.json)region(obligatorio): Región en formato pct: (por ejemplo, 'pct:20,20,50,50' para x,y,ancho,alto como porcentajes)
Ejemplo de uso:
Fetch a region from the IIIF image at https://example.com/iiif/image123 with region pct:10,10,50,50
Ten en cuenta que puedes usar estas herramientas juntas durante una conversación, por ejemplo:
Fetch the IIIF image at https://example.com/iiif/image123 and describe it.
...
Zoom in on the text at the bottom of the page and transcribe it.