Skip to main content
Glama

is-it-ai-mcp

MCP-сервер, который читает C2PA Content Credential, встроенное в изображение, и сообщает, что файл заявляет о своём происхождении, а также проверяет, подтверждается ли это заявление байтами, которые находятся перед вами.

📖 Документация: mcp.johannsenlum.com/is-it-ai · руководство по установке · справочник инструментов

🔍 Попробуйте без установки: ai.johannsenlum.com/is-it-ai выполняет те же проверки в вашем браузере, на вашей машине, без загрузки файлов.

PyPI Python 3.11+ License: MIT

Что он делает

Он открывает изображение, ищет встроенный манифест C2PA (Content Credential), и если он существует, сообщает две отдельные вещи: что манифест заявляет о том, как было создано изображение, и соответствует ли криптографическая подпись этого манифеста текущим байтам файла. Он не смотрит на пиксели и не угадывает. Если манифеста нет, или манифест существует, но подпись нарушена, он прямо говорит об этом, а не выдумывает ответ.

См. docs/pass-fail.md о том, почему «подпись проверена» и «заявление истинно» — это два разных вопроса, и почему этот сервер отвечает только на первый.

Related MCP server: image-forensics-mcp

Установка

Запуск сервера

is-it-ai-mcp опубликован на PyPI. Запустите его с помощью:

uvx is-it-ai-mcp

Установка из исходников (для контрибьюторов / невыпущенная ветка main). Не является частью обычного пути установки выше, нужна только если вы хотите последний невыпущенный код вместо опубликованного релиза PyPI:

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

Или запустите из локального клона:

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

Не требуется ни аккаунт, ни API-ключ, ни переменная окружения. Сервер читает только локальные файлы, на которые вы указываете.

Claude Code и 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

Скопируйте этот JSON через Настройки → Разработчик → Изменить конфигурацию:

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

Инструменты

check_image_provenance

Дайте ему путь к одному файлу изображения на диске. Он возвращает:

  • verdict: одно из трёх состояний ниже (AI_DECLARED, NO_AI_DECLARED, UNKNOWN).

  • reason: конкретное основание для этого вердикта, например no-credential, credential-invalid, ai-source-type, capture-source-type или credential-silent.

  • what_this_does_not_mean: пояснение на простом языке, прикреплённое к каждому вердикту, чтобы результат нельзя было незаметно превратить в более сильное утверждение, чем позволяют доказательства.

  • signature: сырое validation_state, логическое verified и любые failure_codes, которые выдала проверка подписи.

  • declared: что заявляет манифест, если он существует. signer, claim_generator и signed_at — это свободный текст, взятый прямо из файла, поэтому каждый из них защищён в соответствии с разделом «Безопасность» ниже, прежде чем попасть к вам. source_types (URI IPTC digital-source-type, взятые из закрытого словаря) и watermark_declared (логическое значение) не могут содержать текст, созданный злоумышленником, поэтому оба возвращаются как есть и никогда не заключаются в ограждение.

Файл, который не удаётся прочитать (неверный путь, неподдерживаемый формат), возвращается как отдельный результат ошибки, а не как поддельный UNKNOWN. Нужен реальный путь на диске, а не сами байты изображения. См. Примечание о путях к файлам.

scan_directory

Дайте ему папку. Он обходит дерево, прогоняет каждое найденное изображение через ту же проверку и возвращает агрегированные счётчики по вердиктам и по подписантам, а также ограниченную выборку файлов с учётными данными, а не строку на каждый файл. Это инструмент, который воспроизводит собственный обход 401 изображения этого проекта (см. ниже) для любой указанной вами директории.

Три вердикта

Вердикт

Значение

Доступен только когда

AI_DECLARED

Манифест файла утверждает ИИ или алгоритмическую генерацию

Манифест присутствует, его подпись проверяется, и он содержит IPTC digital-source-type, помечающий участие ИИ

NO_AI_DECLARED

Манифест файла утверждает реальную съёмку

Манифест присутствует, его подпись проверяется, и он содержит IPTC digital-source-type, помечающий съёмку (камера, плёнка, печать, незначительные правки)

UNKNOWN

Ничего полезного не установлено

Всё остальное, включая отсутствие манифеста, нарушенную подпись или манифест, который никогда не записывал тип источника

UNKNOWN — это значение по умолчанию и самый частый ответ. При сканировании 401 реального изображения только 14 вообще содержали Content Credential, и все они были от OpenAI: около 96,5% не имели никаких учётных данных. Ожидайте UNKNOWN почти для всего, что вы проверяете. Это не ошибка сервера, это текущее состояние происхождения изображений в реальном мире.

Что это не может вам сказать

  • Он не определяет ИИ по пикселям. Здесь вообще нет анализа изображений, нет модели, смотрящей на картинку. Каждый вердикт исходит из криптографически подписанной текстовой записи или из её отсутствия.

  • Отсутствие учётных данных не является доказательством чего-либо. Немаркированное ИИ-изображение и немаркированная фотография неразличимы для этого инструмента. Снимок экрана, повторное сохранение или пропускание изображения через почти любой редактор удаляет учётные данные, независимо от того, создано ли оно ИИ. UNKNOWN означает «не сохранилось никакой пригодной записи», а не «ИИ не участвовал».

  • Действительная подпись не делает утверждения подписанта истинными. Подпись доказывает, что манифест не был изменён с момента подписания, и подтверждает, кто его подписал. Она ничего не доказывает о том, сказал ли подписант правду. Любой может сгенерировать собственный сертификат, подписать свой файл и заявить любое происхождение, какое пожелает: подпись будет проверена идеально, но утверждение останется ложным. Проверка касается печати, а не письма. См. docs/pass-fail.md.

Зачем он существует

Когда вы прикрепляете изображение к модели, оно декодируется в пиксели и перекодируется до того, как модель его увидит. Метаданные контейнера, включая любой манифест C2PA, никогда не достигают модели: модель видит массив RGB, и ничего больше. Без инструмента она вообще не может прочитать манифест и вместо этого склонна угадывать, создано ли изображение ИИ, по визуальным артефактам. Опубликованные бенчмарки оценивают такое угадывание примерно в 18–31% точности, что немногим лучше случайности. Этот сервер существует, чтобы модель читала фактическую подписанную запись на диске, а не сопоставляла шаблоны артефактов JPEG-сжатия.

Безопасность

Каждая человекочитаемая строка, возвращаемая этим сервером, происходит изнутри проверяемого файла: имя подписанта, строка claim-generator и любой свободный текст причины или метки. Этот текст был написан тем, кто создал файл, а не вами, и он попадает в то же окно контекста, что и ваши собственные инструкции. Поле с меткой «signer» несёт оттенок проверенного авторитета, но подпись покрывает байты актива, а не честность любой строки внутри манифеста. Любой может подписать свой файл собственным сертификатом и написать в нём всё, что угодно.

Прежде чем любая такая строка будет возвращена, она очищается от управляющих символов, ограничивается по длине и оборачивается в ограждённую границу, которая явно помечает её как недоверенные данные, а не инструкции, со случайным nonce, который автор файла не мог предугадать. Структурные значения, сам вердикт, состояние проверки и URI IPTC source-type взяты из закрытых словарей, которыми управляет этот сервер, и никогда не ограждаются, поскольку они не могут содержать текст, созданный злоумышленником.

См. src/is_it_ai_mcp/safety.py для реализации и полной модели угроз в docstring модуля.

Примечание о путях к файлам

Этот инструмент принимает путь к файлу, а не байты изображения. В Claude Code изображение, которое вы вставляете в разговор, сначала записывается на диск, поэтому его путь доступен, и всё работает. В других клиентах вставленное или прикреплённое изображение может существовать только как встроенные данные без пути в файловой системе, доступного серверу; в этом случае инструменту нечего открывать. Если проверка возвращает ошибку «файл не найден», сначала сохраните изображение на диск и укажите инструменту этот путь.

Разработка

uv sync --extra dev
uv run pytest -v

--extra dev важен: без него pytest-asyncio (необходимый для asyncio_mode = "auto" в pyproject.toml) не устанавливается, и pytest выводит предупреждение "Unknown config option: asyncio_mode" при каждом запуске.

Тесты запускаются на фикстурах в fixtures/: реальное подписанное изображение, а также изменённые и лишённые подписи варианты с вручную проверенными ожидаемыми результатами. См. fixtures/GROUND-TRUTH.md о том, как каждый вариант был создан и что он должен доказать.

Лицензия

MIT © 2026 Johannsen Lum.

Используйте, изменяйте, распространяйте, стройте на нём коммерческие продукты: единственное условие — сохранить уведомление об авторских правах и текст лицензии. Он предоставляется без каких-либо гарантий.

Вклад принимается на условиях той же лицензии.

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