Skip to main content
Glama

is-it-ai-mcp

Un servidor MCP que lee la Credencial de Contenido C2PA incrustada en una imagen e informa de lo que el archivo declara sobre su propio origen, además de si esa declaración sigue verificándose contra los bytes que tienes delante.

📖 Documentación: mcp.johannsenlum.com/is-it-ai · guía de instalación · referencia de herramientas

🔍 Pruébalo sin instalar nada: ai.johannsenlum.com/is-it-ai ejecuta las mismas comprobaciones en tu navegador, en tu máquina, sin subir nada.

PyPI Python 3.11+ License: MIT

Qué hace

Abre una imagen, busca un manifiesto C2PA incrustado (una Credencial de Contenido) y, si existe, informa de dos cosas por separado: lo que el manifiesto afirma sobre cómo se creó la imagen, y si la firma criptográfica sobre ese manifiesto sigue coincidiendo con los bytes actuales del archivo. No mira los píxeles y no adivina. Si no hay manifiesto, o el manifiesto existe pero la firma está rota, lo dice claramente en lugar de inventar una respuesta.

Consulta docs/pass-fail.md para entender por qué "la firma se verificó" y "la afirmación es verdadera" son dos preguntas distintas, y por qué este servidor solo responde a la primera.

Related MCP server: image-forensics-mcp

Instalación

Ejecutar el servidor

is-it-ai-mcp está publicado en PyPI. Ejecútalo con:

uvx is-it-ai-mcp

Instalar desde el código fuente (contribuidores / main sin publicar). No forma parte de la ruta de instalación normal anterior; solo se necesita si quieres el código más reciente sin publicar en lugar de la versión publicada en PyPI:

uvx --from git+https://github.com/JohannsenLum/is-it-ai-mcp is-it-ai-mcp

O ejecútalo desde un clon local:

git clone https://github.com/JohannsenLum/is-it-ai-mcp
cd is-it-ai-mcp
uv sync

No se requiere cuenta, clave de API ni variable de entorno. El servidor solo lee archivos locales a los que tú lo apuntes.

Claude Code y Claude Desktop

{
  "mcpServers": {
    "is-it-ai": {
      "command": "uvx",
      "args": ["is-it-ai-mcp"]
    }
  }
}

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Copia este JSON mediante Configuración → Desarrollador → Editar configuración:

{
  "mcpServers": {
    "is-it-ai": {
      "command": "uvx",
      "args": ["is-it-ai-mcp"]
    }
  }
}

Herramientas

check_image_provenance

Dale la ruta a un archivo de imagen en el disco. Devuelve:

  • verdict: uno de los tres estados siguientes (AI_DECLARED, NO_AI_DECLARED, UNKNOWN).

  • reason: la base específica de ese veredicto, por ejemplo no-credential, credential-invalid, ai-source-type, capture-source-type o credential-silent.

  • what_this_does_not_mean: una advertencia en lenguaje sencillo adjunta a cada veredicto, para que el resultado no pueda convertirse silenciosamente en una afirmación más fuerte de lo que la evidencia respalda.

  • signature: el validation_state bruto, un booleano verified y cualquier failure_codes que haya producido la comprobación de firma.

  • declared: lo que el manifiesto afirma cuando existe. signer, claim_generator y signed_at son texto libre extraído directamente del archivo, por lo que cada uno se protege según la sección de Seguridad siguiente antes de llegar a ti. source_types (URIs IPTC de tipo de fuente digital, extraídas de un vocabulario cerrado) y watermark_declared (un booleano) no pueden contener texto escrito por un atacante, por lo que ambos se devuelven tal cual y nunca se delimitan.

Un archivo que no se puede leer (ruta incorrecta, formato no compatible) se devuelve como un resultado de error distinto en lugar de un UNKNOWN falso. Necesita una ruta real en el disco, no los bytes de la imagen. Consulta Nota sobre rutas de archivo.

scan_directory

Dale una carpeta. Recorre el árbol, ejecuta la misma comprobación en cada imagen que encuentre y devuelve recuentos agregados por veredicto y por firmante, además de una muestra limitada de los archivos que llevaban una credencial, en lugar de una línea por archivo. Esta es la herramienta que reproduce el propio barrido de 401 imágenes de este proyecto (ver más abajo) contra cualquier directorio al que la apuntes.

Los tres veredictos

Veredicto

Significa

Solo se alcanza cuando

AI_DECLARED

El manifiesto del archivo afirma generación por IA o algorítmica

Hay un manifiesto presente, su firma se verifica y lleva un tipo de fuente digital IPTC que marca participación de IA

NO_AI_DECLARED

El manifiesto del archivo afirma una captura del mundo real

Hay un manifiesto presente, su firma se verifica y lleva un tipo de fuente digital IPTC que marca una captura (cámara, película, impresión, ediciones menores)

UNKNOWN

No se estableció nada útil

Todo lo demás, incluido la ausencia de manifiesto, una firma rota o un manifiesto que nunca registró un tipo de fuente

UNKNOWN es el valor predeterminado y, con diferencia, la respuesta más común. En un barrido de 401 imágenes reales, solo 14 llevaban una Credencial de Contenido, y todas ellas eran de OpenAI: alrededor del 96,5% no tenía credencial alguna. Espera UNKNOWN en casi todo lo que compruebes. Eso no es un error de este servidor, es el estado actual de la procedencia de imágenes en el mundo real.

Lo que esto no puede decirte

  • No detecta IA a partir de los píxeles. Aquí no hay ningún análisis de imagen, ningún modelo que mire la foto. Cada veredicto proviene de un registro de texto firmado criptográficamente, o de la ausencia de uno.

  • La falta de una credencial no es evidencia de nada. Una imagen de IA sin marcar y una fotografía sin marcar son indistinguibles para esta herramienta. Hacer una captura de pantalla, volver a guardar o pasar una imagen por casi cualquier editor elimina la credencial, sea o no de IA. UNKNOWN significa "no sobrevivió ningún registro útil", nunca "no hubo IA".

  • Una firma válida no hace que las afirmaciones del firmante sean verdaderas. La firma demuestra que el manifiesto no ha sido alterado desde que se firmó y confirma quién lo firmó. No demuestra nada sobre si el firmante dijo la verdad. Cualquiera puede generar su propio certificado, firmar su propio archivo y afirmar el origen que quiera: se verificará perfectamente y seguirá siendo falso. La verificación trata sobre el sello, no sobre la carta. Consulta docs/pass-fail.md.

Por qué existe

Cuando adjuntas una imagen a un modelo, la imagen se decodifica a píxeles y se vuelve a codificar antes de que el modelo la vea. Los metadatos del contenedor, incluido cualquier manifiesto C2PA, nunca llegan al modelo: el modelo ve una matriz RGB, nada más. Sin una herramienta, no puede leer un manifiesto en absoluto, y tenderá a adivinar si una imagen es generada por IA a partir de artefactos visuales. Los puntos de referencia publicados sitúan esa suposición en aproximadamente un 18 a 31% de precisión, poco mejor que el azar. Este servidor existe para que el modelo lea el registro firmado real en el disco en lugar de hacer coincidencias de patrones con artefactos de compresión JPEG.

Seguridad

Cada cadena legible por humanos que devuelve este servidor se originó dentro del archivo que se inspecciona: nombre del firmante, cadena del generador de afirmaciones y cualquier razón o etiqueta de texto libre. Ese texto fue escrito por quien produjo el archivo, no por ti, y aterriza en la misma ventana de contexto que tus propias instrucciones. Un campo etiquetado como "firmante" transmite un aire de autoridad verificada, pero la firma cubre los bytes del activo, no la honestidad de ninguna cadena dentro del manifiesto. Cualquiera puede firmar su propio archivo con su propio certificado y escribir en él lo que quiera.

Antes de que se devuelva cualquier cadena de este tipo, se limpia de caracteres de control, se limita su longitud y se envuelve en un límite delimitado que la marca explícitamente como dato no confiable en lugar de instrucciones, con un nonce aleatorio que el autor del archivo no podría haber adivinado de antemano. Los valores estructurales, el veredicto en sí, el estado de validación y las URIs de tipo de fuente IPTC se extraen de vocabularios cerrados que este servidor controla y nunca se delimitan, ya que no pueden contener texto escrito por un atacante.

Consulta src/is_it_ai_mcp/safety.py para la implementación y el modelo de amenazas completo en su docstring de módulo.

Nota sobre rutas de archivo

Esta herramienta toma una ruta de archivo, no bytes de imagen. En Claude Code, una imagen que pegas en la conversación se escribe primero en el disco, por lo que su ruta es accesible y esto simplemente funciona. En otros clientes, una imagen pegada o adjunta puede existir solo como datos en línea sin una ruta en el sistema de archivos que el servidor pueda alcanzar, en cuyo caso no hay nada que esta herramienta pueda abrir. Si una comprobación devuelve que no se puede encontrar el archivo, guarda la imagen en el disco primero y apunta la herramienta a esa ruta.

Desarrollo

uv sync --extra dev
uv run pytest -v

--extra dev importa: sin él, pytest-asyncio (necesario para asyncio_mode = "auto" en pyproject.toml) no se instala, y pytest imprime una advertencia "Unknown config option: asyncio_mode" en cada ejecución.

Las pruebas se ejecutan contra los fixtures en fixtures/, una imagen firmada real más variantes manipuladas y despojadas con resultados esperados verificados manualmente. Consulta fixtures/GROUND-TRUTH.md para saber cómo se produjo cada una y qué se espera que demuestre cada una.

Licencia

MIT © 2026 Johannsen Lum.

Úsalo, cámbialo, redistribúyelo, construye algo comercial con él: la única condición es que conserves el aviso de copyright y el texto de la licencia. Viene sin garantía de ningún tipo.

Las contribuciones se aceptan bajo la misma licencia.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for reading C2PA content provenance manifests from media files, enabling natural language queries about AI-generated content, signatures, and provenance.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to analyze images for AI-generated content using noise maps, error level analysis, frequency analysis, spectral decay, color analysis, and metadata inspection.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A hosted remote MCP server for C2PA disclosure policy, enabling AI governance teams to check disclosure policies, validate C2PA status, issue AI media receipts, explain region rules, and export disclosure logs.
    MIT

View all related MCP servers

Related MCP Connectors

  • Remote MCP for C2PA intake verifier MCP, structured receipts, audit logs, and reviewer-ready evidenc

  • Remote MCP for C2PA disclosure policy MCP, structured receipts, audit logs, and reviewer-ready evide

  • Scans MCP servers for tool poisoning, prompt injection and supply chain risks.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JohannsenLum/is-it-ai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server