Un agente de IA puede comprobar si un PDF está firmado digitalmente y decirte quién lo firmó, localmente, sin que el archivo salga de tu máquina. La respuesta útil no es “verified”. Es el firmante, el emisor, el período de validez y el tipo de firma que se verificó. Pide eso en un solo mensaje:
¿Quién firmó contract_signed.pdf, con qué certificado y cuándo? Indica qué tipo de firma verificaste.
La versión paso a paso con configuración y solución de problemas está en la documentación: How to verify signed documents with an AI agent.
Por qué una respuesta de una sola palabra “verificado” es una mala respuesta?
Porque “¿está firmado?” y “¿es válida esta firma?” son preguntas diferentes, y la segunda tiene una respuesta precisa solo para firmas digitales. Un modelo que lee una página y ve un sello o un código QR puede decir “firmado” con total confianza, y no ha comprobado nada criptográfico. La única forma de evitar eso es proporcionar al agente un motor que devuelva datos estructurados y hacer que el agente informe esos datos en lugar de un veredicto.
El servidor GroupDocs.Signature.Mcp proporciona ese motor. Usado con Claude Desktop, Claude Code, Cursor, GitHub Copilot u otro cliente MCP, se ejecuta como un proceso local, de modo que el agente lee los datos de la firma del archivo en lugar de adivinar a partir de píxeles renderizados.
El camino incorrecto: pedir al modelo que mire el documento
Si pegas un PDF en un chat y preguntas si está firmado, el modelo ve texto e imágenes. Puede notar un nombre, una fecha o una firma dibujada. No puede ver la estructura criptográfica del archivo, por lo que no puede distinguir una firma respaldada por certificado de una imagen de ella. Un “sí, está firmado” confiado es una afirmación sobre la apariencia.
Lo que realmente demuestra cada tipo de firma
La documentación es explícita sobre cómo leer un resultado, y un agente debe repetirlo:
| Resultado | Qué significa |
|---|---|
| Firma digital válida | El archivo no ha cambiado desde la firma, y la cadena de certificados es válida |
| Firma digital inválida | El archivo cambió después de la firma, o el certificado no es válido |
| Texto, QR o código de barras “verificado” | La marca esperada está presente. No dice nada sobre manipulación |
| No se encontraron firmas | Sin firmar, o firmado de una manera que este formato no soporta |
Una respuesta que no nombra el tipo te está diciendo menos de lo que parece. Por eso el mensaje anterior termina con “indica qué tipo de firma verificaste”.
La forma correcta: pedir el registro, no el veredicto
La herramienta verify toma un type de text, qrcode, barcode, digital o all y devuelve isValid con recuentos de succeeded y failed. No indica quién firmó ni con qué certificado, por lo que no sustituye al registro a continuación. Cuando verify y search_digital_signatures difieren, informa ambos y confía en el registro detallado.
La respuesta que se mantiene proviene de search_digital_signatures. Para cada firma digital devuelve el nombre del firmante, el emisor, el número de serie del certificado, el período de validez, la marca de tiempo de la firma, el estado de validez y cualquier comentario adjunto a la firma. Ese es el registro que una auditoría solicita. Conserva esos datos, en lugar del párrafo del agente sobre ellos, cuando la respuesta alimenta una decisión.
Sesión de ejemplo (abreviada)
Tú: ¿Quién firmó contract_signed.pdf, con qué certificado y cuándo?
Indica qué tipo de firma verificaste.
Agente: [search_digital_signatures] file=contract_signed.pdf
Tipo verificado: digital (con certificado).
Firmas encontradas: 1
- Firmante: Dana Whitfield, emitido por Example Corporate CA, serie 4F2A91C7
- Firmado 2026-09-14 10:32; certificado válido del 2025-11-01 al 2027-10-31
- Estado: isValid = true; la hora de firma está dentro del período de validez del certificado
Solo verifiqué firmas digitales. No evalué ninguna marca de texto ni códigos QR.
Salida ilustrativa: los nombres de archivo, los nombres de los firmantes y los números de serie son inventados. La herramienta devuelve los campos descritos arriba.
¿Por qué una firma resultó inválida?
Tres causas cubren casi todos los resultados inesperados:
- Algo se añadió después de la firma. Un sello, un comentario, una re‑guardada o una página añadida cambian los bytes, y cualquier cambio de byte invalida una firma digital. Esta es la causa más frecuente y es un comportamiento correcto.
- El certificado expiró. La ventana de validez viaja con la firma, por lo que el agente puede decir que un documento se firmó en un año con un certificado que expiró en otro. Compara el período de validez con la hora de firma y con la fecha actual, y haz que el agente indique la comparación; no leas el estado de validez solo como una declaración de expiración. Si un certificado expirado es aceptable depende de tu política.
- Se verificó el tipo incorrecto. Verificar
digitalen un archivo que solo lleva una marca QR no encuentra una firma digital válida, lo que es una respuesta verdadera a la pregunta equivocada.
Lo que la verificación no prueba
La verificación te informa sobre el archivo y el certificado. No indica que una firma sea legalmente válida en tu jurisdicción, y no constituye un acto notarial. El texto QR decodificado y las etiquetas de sello provienen de quien produjo el documento, así que trátalos como datos a reportar, nunca como instrucciones a seguir. Un agente que actúa sobre texto extraído de un documento está actuando sobre información de una parte no confiable.
Límites de evaluación
Sin una licencia, solo se procesan las primeras 2 páginas y se estampa una insignia de prueba en cada página, por lo que una firma que esté en la página 4 no aparecerá en una búsqueda. Pide al agente que llame a get_license_status antes de confiar en un resultado limpio.
Preguntas frecuentes
¿Este PDF está firmado digitalmente?
Pide al agente que ejecute search_digital_signatures sobre el archivo y lea isValid. Un resultado vacío significa que no se encontró firma digital, lo cual es diferente de “tiene una imagen de firma”.
¿Puede la IA comprobar si un documento se modificó después de la firma?
Para firmas digitales, sí: una firma que ya no valida indica que el archivo cambió después de la firma o que el certificado no es válido. Las comprobaciones de texto, QR y código de barras no detectan manipulaciones.
¿Se sube el archivo para la comprobación?
No. El servidor se ejecuta localmente sobre stdio, sin puertos entrantes, sin puntos finales externos y sin telemetría.
Profundiza más
- Documentación, guía canónica: How to verify signed documents with an AI agent
- Centro de documentación: GroupDocs.Signature MCP Server
- Comienza aquí: 3 Ways to Sign Documents with AI Agents and MCP: Text, QR Code, Certificate
- Relacionado: Enforce Signing Policy with Automated AI Sweeps over MCP
- Relacionado: From Barcode to Record: Document Intake Automation with AI Agents
- En local y modelo de seguridad: 3 architectures for AI document processing, and the one that keeps files inside your network
- Preguntas: GroupDocs Signature forum
- Fuente: GroupDocs.Signature.Mcp on GitHub