Sırdaş para Claude Desktop: tus documentos, sin subirlos
Claude Desktop no lee archivos de tu disco por sí solo. Con el servidor de Sırdaş puede abrir una carpeta que tú eliges y trabajar con lo que hay dentro, sin arrastrar cada archivo al chat y sin que el archivo salga de tu equipo.
Versión publicada 0.4.3 · grabado el 2026-10-09
Instalar
claude_desktop_config.json
Ajustes → Desarrollador → Editar configuración. En macOS es ~/Library/Application Support/Claude/claude_desktop_config.json; en Windows, %APPDATA%\Claude\claude_desktop_config.json. Reinicia Claude Desktop después.
{
"mcpServers": {
"sirdas": {
"command": "npx",
"args": [
"-y",
"@sirdaspdf/mcp@0.4.3"
]
}
}
}Pruébalo en dos minutos
Tres PDF inventados, con «SINTÉTICO» impreso, los mismos de la galería de ejemplos. Descárgalos en una carpeta nueva: (galería)
mkdir -p ~/sirdas-demo && cd ~/sirdas-demo
curl -O https://www.sirdaspdf.com/examples/factura.pdf \
-O https://www.sirdaspdf.com/examples/contrato.pdf \
-O https://www.sirdaspdf.com/examples/historia-clinica.pdfAbre Claude Desktop en esa carpeta y pídele, con tus palabras:
1«¿De cuánto es factura.pdf, quién la emite y en qué página lo dice?»
Llama a
read_documentsolo lecturaUna sola llamada: tipo de documento, cada campo con su página y la línea exacta de donde sale, y los datos personales ya cambiados por marcadores antes de llegar al modelo.
Respuesta real de @sirdaspdf/mcp@0.4.3, recortada
{ "arguments": { "path": "factura.pdf" }, "result": { "document_type": "factura", "steps": [ "Extracted text from 1 page(s).", "Found 1 table(s).", "Identified as factura (match 1).", "Extracted 7 field(s) with page citations.", "Replaced 7 personal data item(s) with placeholders." ], "fields": [ { "name": "nit_emisor", "value": "000000001-1", "page": 1, "evidence": "Emisor: Empresa Ficticia S.A.S. [NIT_1]" }, { "name": "fecha_emision", "value": "15/09/2026", "page": 1, "evidence": "Fecha de emisión: [FECHA_1] Vence: [FECHA_2]" }, { "name": "total", "value": "1.445.500", "page": 1, "evidence": "Subtotal: 1.445.500 IVA: 0 Total a pagar: 1.445.500" } ], "redacted": { "EMAIL": 1, "NIT": 1, "DOCUMENTO": 1, "TELEFONO": 1, "FECHA": 2, "NOMBRE": 1 }, "tokens": 123, "next_steps": [ "pdf_tables", "protect_pdf" ] } }2«¿Cuál es el canon y la duración del contrato de arrendamiento? Busca en toda la carpeta.»
Llama a
build_contextsolo lecturabuild_context lee la carpeta entera y entrega solo los bloques que responden, cada uno con su archivo, página y la línea de evidencia, y dice cuántos tokens entregó frente a los de toda la carpeta. Con cinco PDF de una página la diferencia es pequeña: la cifra se mide en cada llamada, sobre tus propios archivos.
Respuesta real de @sirdaspdf/mcp@0.4.3, recortada
{ "arguments": { "query": "¿Cuál es el canon y la duración del contrato de arrendamiento?", "max_results": 2 }, "result": { "items": [ { "source": "contrato.pdf", "pages": [ 1, 1 ], "section": [ "Contrato de arrendamiento de vivienda urbana" ], "relevance": 1, "evidence": "Canon mensual: $ 1.500.000, pagadero los cinco primeros días de cada mes." }, { "source": "contrato.pdf", "pages": [ 1, 1 ], "section": [], "relevance": 0.163, "evidence": "SINTÉTICO · documento inventado para la galería de Sirdas PDF" } ], "stats": { "source_tokens": 456, "context_tokens": 243, "tokens_saved": 213 }, "documents": 5 } }3«Pásame la tabla de conceptos de la factura en CSV.»
Llama a
pdf_tablessolo lecturaLas tablas salen por columnas, no como texto corrido. Los importes se quedan como estaban en el documento.
Respuesta real de @sirdaspdf/mcp@0.4.3, recortada
{ "arguments": { "path": "factura.pdf" }, "result": { "total": 1, "tables": [ { "page": 1, "columns": 3, "csv": "↓ 1" } ] } }↓ 1
Concepto,Cant,Valor Consulta general,1,80.000 Examen de laboratorio,3,245.500 Ecografía abdominal,1,1.120.000
4«Convierte historia-clinica.pdf a Markdown sin datos personales para pegarlo en otro chat.»
Llama a
pdf_to_markdownsolo lecturaNombre, cédula, fecha y número de historia salen como [NOMBRE_1], [DOCUMENTO_1]…; el diagnóstico y el plan se quedan, que es lo que el modelo necesita. Es por reglas: revisa antes de compartir.
Respuesta real de @sirdaspdf/mcp@0.4.3, recortada
{ "arguments": { "path": "historia-clinica.pdf" }, "result": { "markdown": "↓ 1", "tokens_estimate": 108, "redacted": { "HISTORIA_CLINICA": 1, "DOCUMENTO": 1, "FECHA": 1, "NOMBRE": 2 } } }↓ 1
SINTÉTICO · documento inventado para la galería de Sirdas PDF ## Historia clínica · Consulta externa Paciente: [NOMBRE_1] C.C. [DOCUMENTO_1] Historia clínica N.º [HISTORIA_CLINICA_1] Fecha: [FECHA_1] Motivo de consulta: dolor abdominal de tres días de evolución. Diagnóstico: gastritis aguda (K29.1). Plan: omeprazol 20 mg cada 24 horas por 14 días. Control en un mes. Médico tratante: Dra. [NOMBRE_2], registro 000000.
5«Une factura.pdf y contrato.pdf en expediente.pdf.»
Llama a
merge_pdfsescribe un archivoEsta escribe un archivo, así que el servidor la declara como herramienta que escribe (readOnlyHint: false) y tu cliente puede pedirte permiso antes. Nunca pisa un archivo que ya exista salvo con overwrite.
Respuesta real de @sirdaspdf/mcp@0.4.3, recortada
{ "arguments": { "paths": [ "factura.pdf", "contrato.pdf" ], "output": "expediente.pdf" }, "result": { "output": "expediente.pdf", "inputs": 2, "bytes": 2473 } }
Limítalo a una carpeta
Solo una carpeta
Recomendado aquí: sin SIRDAS_ROOT, la raíz es la carpeta desde la que el cliente arranca el servidor, y en una app de escritorio no la eliges tú. Ruta absoluta; en Windows, con barras dobles (C:\\Users\\…).
{
"mcpServers": {
"sirdas": {
"command": "npx",
"args": [
"-y",
"@sirdaspdf/mcp@0.4.3"
],
"env": {
"SIRDAS_ROOT": "/Users/tu-usuario/sirdas-demo"
}
}
}
}Dos variables cambian lo que el agente puede tocar:
SIRDAS_READ_ONLY=1— quita las herramientas que escriben archivos.SIRDAS_TOOLSETS=core— deja solo las de leer y entender documentos.
Lo que ocupa en tu contexto
La descripción de las herramientas viaja en cada conversación. Medido sobre 0.4.3 (caracteres / 4):
| Modo | Herramientas | Tokens aprox. |
|---|---|---|
| Todas | 30 | ~14.000 |
SIRDAS_TOOLSETS=core | 15 | ~6.800 |
SIRDAS_READ_ONLY=1 | 19 | ~8.600 |
Comprueba que está conectado
Tras reiniciar, el icono de herramientas del chat debe listar las de sirdas. Si no aparece, Ajustes → Desarrollador enseña el error del servidor.
Si no aparece: node -v tiene que ser 20 o más, y el cliente tiene que reiniciarse tras cambiar la configuración. El primer arranque descarga el paquete con npx; los siguientes, no.
Qué probamos y qué no
La configuración es la del protocolo estándar por stdio, el mismo con el que probamos el servidor en CI. No hemos grabado una sesión dentro de Claude Desktop: qué herramienta elige depende del modelo; lo que devuelve, no.
Nuevo en 0.4.3
Llegó con esta versión, así que funciona con la instalación de arriba:
SIRDAS_TIMEOUT_SECONDS: una llamada que pasa de 10 minutos vuelve con error, y desde ese momento ya no puede escribir ningún archivo.build_context: la cita de cada bloque sale del bloque ya anonimizado, con la cabecera de su tabla: un importe no aparece como [DOCUMENTO_1].anonymize_text: en una tabla, la cabecera hace de etiqueta, y un nombre con tilde inicial se tapa en todo el texto (desde 0.4.2).