Skip to main content
Glama

is-it-ai-mcp

이미지에 내장된 C2PA Content Credential을 읽고, 파일이 자신의 출처에 대해 무엇을 선언하는지, 그리고 그 선언이 현재 바이트와 대조하여 여전히 검증되는지 보고하는 MCP 서버입니다.

📖 문서: 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(IPTC 디지털 소스 유형 URI, 폐쇄형 어휘에서 가져옴)와 watermark_declared(불리언)는 공격자가 작성한 텍스트를 담을 수 없으므로, 둘 다 원문 그대로 반환되며 펜싱되지 않습니다.

읽을 수 없는 파일(잘못된 경로, 지원되지 않는 형식)은 가짜 UNKNOWN 대신 별도의 오류 결과로 반환됩니다. 이미지 바이트 자체가 아닌 디스크의 실제 경로가 필요합니다. 파일 경로에 관한 참고를 참조하세요.

scan_directory

폴더를 전달합니다. 트리를 탐색하며 찾은 모든 이미지에 동일한 검사를 실행하고, 파일별 결과 대신 판정별·서명자별 집계 수치와 자격 증명을 담은 파일의 상한이 있는 샘플을 반환합니다. 이 도구는 이 프로젝트 자체의 401개 이미지 스캔(아래 참조)을 사용자가 지정한 모든 디렉터리에서 재현하는 도구입니다.

세 가지 판정

판정

의미

도달 가능한 경우

AI_DECLARED

파일의 매니페스트가 AI 또는 알고리즘 생성을 주장함

매니페스트가 존재하고, 서명이 검증되며, AI 개입을 표시하는 IPTC 디지털 소스 유형을 담고 있음

NO_AI_DECLARED

파일의 매니페스트가 실제 세계 촬영을 주장함

매니페스트가 존재하고, 서명이 검증되며, 촬영(카메라, 필름, 인쇄물, 사소한 편집)을 표시하는 IPTC 디지털 소스 유형을 담고 있음

UNKNOWN

유용한 것이 확립되지 않음

그 외 모든 경우. 매니페스트 없음, 깨진 서명, 소스 유형을 기록하지 않은 매니페스트 포함

UNKNOWN이 기본값이며 압도적으로 가장 흔한 답변입니다. 실제 이미지 401개를 스캔한 결과, Content Credential을 담고 있는 것은 14개뿐이었고, 그 모두가 OpenAI에서 온 것이었습니다: 약 96.5%는 자격 증명이 전혀 없었습니다. 확인하는 거의 모든 것에서 UNKNOWN을 기대하세요. 이것은 이 서버의 버그가 아니라, 현재 이미지 출처 추적의 현실입니다.

이것이 알 수 없는 것

  • 픽셀에서 AI를 감지하지 않습니다. 여기에는 이미지 분석이 전혀 없으며, 사진을 보는 모델도 없습니다. 모든 판정은 암호화 서명된 텍스트 기록 또는 그 기록의 부재에서 나옵니다.

  • 자격 증명이 없다는 것은 어떤 증거도 되지 않습니다. 표시가 없는 AI 이미지와 표시가 없는 사진은 이 도구로 구분할 수 없습니다. 스크린샷, 다시 저장, 또는 거의 모든 편집기를 통한 이미지 전달은 AI로 만든 것이든 아니든 자격 증명을 제거합니다. UNKNOWN은 "사용 가능한 기록이 남아 있지 않음"을 의미하며, 결코 "AI가 관여하지 않았음"을 의미하지 않습니다.

  • 유효한 서명이 서명자의 주장을 사실로 만들지 않습니다. 서명은 매니페스트가 서명 이후 변경되지 않았음을 증명하고 누가 서명했는지 확인합니다. 서명자가 진실을 말했는지에 대해서는 아무것도 증명하지 않습니다. 누구나 자신의 인증서를 생성하고, 자신의 파일에 서명하고, 원하는 어떤 출처든 주장할 수 있습니다: 완벽하게 검증되면서도 여전히 거짓일 수 있습니다. 검증은 봉인에 관한 것이지, 편지 내용에 관한 것이 아닙니다. docs/pass-fail.md를 참조하세요.

존재 이유

모델에 이미지를 첨부하면, 모델이 이미지를 보기 전에 이미지는 픽셀로 디코딩되고 다시 인코딩됩니다. C2PA 매니페스트를 포함한 컨테이너 메타데이터는 모델에 도달하지 않습니다: 모델은 RGB 배열만 볼 뿐 그 이상은 없습니다. 도구 없이는 매니페스트를 전혀 읽을 수 없으며, 시각적 아티팩트에서 이미지가 AI 생성인지 추측하는 경향이 있습니다. 공개된 벤치마크에 따르면 그 추측의 정확도는 약 18~31%로, 우연과 거의 다르지 않습니다. 이 서버는 모델이 JPEG 압축 아티팩트를 패턴 매칭하는 대신 디스크의 실제 서명된 기록을 읽을 수 있도록 존재합니다.

보안

이 서버가 반환하는 모든 사람이 읽을 수 있는 문자열은 검사 중인 파일 내부에서 비롯되었습니다: 서명자 이름, claim-generator 문자열, 그리고 모든 자유 텍스트 이유 또는 레이블. 그 텍스트는 사용자가 아니라 파일을 만든 사람이 작성한 것이며, 사용자 자신의 지시와 동일한 컨텍스트 창에 들어갑니다. "signer"라는 레이블이 붙은 필드는 검증된 권위의 인상을 주지만, 서명은 자산의 바이트를 보호할 뿐 매니페스트 내부의 어떤 문자열의 정직성은 보호하지 않습니다. 누구나 자신의 인증서로 자신의 파일에 서명하고 원하는 내용을 쓸 수 있습니다.

이러한 문자열이 반환되기 전에 제어 문자를 제거하고, 길이를 제한하고, 지시가 아닌 신뢰할 수 없는 데이터임을 명시적으로 표시하는 펜싱된 경계로 감싸며, 파일 작성자가 미리 추측할 수 없는 임의의 nonce를 포함합니다. 구조적 값, 판정 자체, 검증 상태, IPTC 소스 유형 URI는 이 서버가 제어하는 폐쇄형 어휘에서 가져오며, 공격자가 작성한 텍스트를 담을 수 없으므로 펜싱되지 않습니다.

구현과 전체 위협 모델은 모듈 docstring에서 확인하세요: src/is_it_ai_mcp/safety.py

파일 경로에 관한 참고

이 도구는 이미지 바이트가 아닌 파일 경로를 받습니다. Claude Code에서 대화에 붙여넣은 이미지는 먼저 디스크에 기록되므로 경로에 접근할 수 있어 정상 작동합니다. 다른 클라이언트에서는 붙여넣거나 첨부한 이미지가 서버가 접근할 수 있는 파일 시스템 경로 없이 인라인 데이터로만 존재할 수 있으며, 이 경우 이 도구가 열 수 있는 것이 없습니다. 검사 결과 파일을 찾을 수 없다고 나오면 이미지를 먼저 디스크에 저장하고 도구에 해당 경로를 지정하세요.

개발

uv sync --extra dev
uv run pytest -v

--extra dev가 중요합니다: 이것이 없으면 pytest-asyncio(pyproject.tomlasyncio_mode = "auto"에 필요)가 설치되지 않고, 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