IIIF Images Server
Um servidor para trabalhar com manifestos e imagens do IIIF (International Image Interoperability Framework).
Documentação
MCP para IIIF Images
Um servidor Model Context Protocol (MCP) para trabalhar com manifests e imagens do IIIF (International Image Interoperability Framework). Veja este vídeo para uma demonstração.
Recursos
Este servidor MCP contém as seguintes ferramentas:
fetch_iiif_manifest: Busca um manifest IIIF a partir de uma URL. (Observe que os clientes podem ter dificuldade em processar grandes quantidades de JSON.)fetch_iiif_image: Recupera uma imagem IIIF a partir de uma URI base, buscando o info.json e retornando os dados da imagem (padrão: máximo 1500px de dimensão, máximo 800.000 pixels no total)fetch_iiif_image_region: Recupera uma região específica de uma imagem IIIF usando coordenadas percentuais, com a região redimensionada para caber dentro das mesmas restrições
Ressalvas
- O código redimensiona as imagens para dimensões aceitáveis pelo Claude. Não funcionará com uma implementação da Image API de Nível 0.
- O Claude pode não processar alguns Manifests IIIF devido ao tamanho do arquivo.
Configuração do Claude Desktop
Instalar a partir do arquivo de Extensão do Claude Desktop (DXT)
- Instale e faça login no Claude Desktop
- Baixe o arquivo
.dxtda última versão - Clique duas vezes no arquivo
.dxt - Instale a extensão quando o Claude solicitar
Instalar a partir do Código Fonte
- Clone este repositório
- Instale as dependências:
npm install - Torne o servidor executável:
chmod +x server/server.js
Para usar este servidor MCP com o Claude Desktop, adicione a seguinte configuração ao seu arquivo de configuração do Claude Desktop. Ajuste o caminho do arquivo conforme necessário. Talvez você também precise fornecer o caminho completo para o seu comando node.
macOS
Edite o ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-iiif-images": {
"command": "node",
"args": ["/PATH/TO/mcp-iiif-images/server/server.js"]
}
}
}
Windows
Edite o %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"mcp-iiif-images": {
"command": "node",
"args": ["C:\\path\\to\\mcp-iiif-images\\server\\server.js"]
}
}
}
Linux
Edite o ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-iiif-images": {
"command": "node",
"args": ["/path/to/mcp-iiif-images/server/server.js"]
}
}
}
Uso Geral do MCP
O servidor suporta dois modos de transporte:
Modo Padrão (stdio)
Execute o servidor usando o transporte stdio (padrão):
npm start
# or
node server/server.js
Modo HTTP Streaming
Execute o servidor usando transporte HTTP streaming:
node server/server.js --http
# or with custom port
node server/server.js --http --port 8080
Opções de Linha de Comando
--http: Usa transporte HTTP streaming em vez de stdio--port PORT: Número da porta para o servidor HTTP (padrão: 3000)--help: Mostra mensagem de ajuda
Ao usar o modo HTTP, o servidor iniciará um servidor HTTP com os seguintes endpoints:
GET /sse: Estabelece conexão Server-Sent EventsPOST /messages?sessionId=<id>: Envia mensagens MCP
Modo HTTP Streaming
Para o modo HTTP streaming, você precisará iniciar o servidor manualmente com a flag --http e depois configurar o Claude Desktop para se conectar via HTTP:
node server/server.js --http --port 3000
Em seguida, configure o Claude Desktop para usar o transporte HTTP (consulte a documentação do Claude Desktop para configuração do transporte HTTP).
Nota: Atualize o caminho no array args para corresponder ao local real onde você instalou este servidor.
Após atualizar a configuração, reinicie o Claude Desktop para que as alterações entrem em vigor.
Testes
Para executar os testes:
# 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
O projeto usa Vitest como framework de testes, que oferece:
- Execução rápida com suporte a módulos ES
- API compatível com Jest com melhores mensagens de erro
- Relatório de cobertura integrado
- Modo de observação (watch) para desenvolvimento
Ferramentas Disponíveis
fetch_iiif_manifest
Busca e valida um manifest IIIF a partir de uma URL.
Parâmetros:
url(obrigatório): A URL do manifest IIIF a ser buscado
Exemplo de uso:
Please fetch the IIIF manifest from https://example.com/manifest.json
fetch_iiif_image
Recupera uma imagem IIIF a partir de uma URI base, buscando o info.json e retornando os dados da imagem.
Parâmetros:
baseUri(obrigatório): URI base do recurso da IIIF Image API (sem /info.json)
Exemplo de uso:
Fetch the IIIF image at https://example.com/iiif/image123
fetch_iiif_image_region
Recupera uma região específica de uma imagem IIIF usando coordenadas percentuais, com a região redimensionada para caber dentro das mesmas restrições. Use esta ferramenta para buscar regiões de interesse em maior detalhe para uma descrição e análise de imagem mais precisas.
Parâmetros:
baseUri(obrigatório): URI base do recurso da IIIF Image API (sem /info.json)region(obrigatório): Região no formato pct: (por exemplo, 'pct:20,20,50,50' para x,y,largura,altura como percentuais)
Exemplo de uso:
Fetch a region from the IIIF image at https://example.com/iiif/image123 with region pct:10,10,50,50
Observe que você pode usar estas ferramentas em conjunto durante uma conversa, por exemplo:
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.