Skip to main content
Glama

Exif-mcp

LLM(또는 사람)이 오프라인 상태에서도 이미지 메타데이터를 온디맨드로 읽을 수 있도록 하는 MCP 서버입니다. 뛰어난 Exifr 라이브러리를 기반으로 하며, 매우 빠르며 외부 도구에 의존하지 않습니다.

사용 사례:

  • 이미지 메타데이터를 분석하고 시각화합니다.

  • 이미지 라이브러리를 분석해 보세요. 가장 많이 사용하는 카메라는 무엇인가요? 렌즈 종류는 무엇인가요? 요일별로 사진을 가장 많이 찍는 요일은 언제인가요? 가장 좋아하는 장소는 무엇인가요?

  • 이미지 조작 코드 디버깅.

이 도구는 역방향 지리위치 서비스 PlaceSpotter 에서 개발 및 테스트를 위해 광범위하게 사용됩니다.

개요

exif-mcp 이미지에서 다양한 메타데이터 세그먼트를 추출하는 도구를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. TypeScript로 구축되었으며, 뛰어난 Exifr 라이브러리를 활용하여 JPEG, PNG, TIFF, HEIC와 같은 일반적인 형식의 이미지에서 메타데이터를 파싱합니다. 이를 통해 외부 도구를 실행하지 않고도 이미지 메타데이터를 파싱할 수 있어 매우 효율적이고 보안성이 뛰어납니다.

특징

  • 로컬 작업 : 원격 네트워크가 필요 없이 완전히 오프라인으로 작동합니다.

  • 다중 세그먼트 : EXIF, GPS, XMP, ICC, IPTC, JFIF 및 IHDR 메타데이터 추출

  • 다양한 입력 포맷 지원 : JPEG, TIFF, HEIC/AVIF, PNG 지원

  • 유연한 이미지 소스 : 파일 시스템, URL, base64 데이터 또는 버퍼에서 읽기

  • 특수 도구 : 방향, 회전 정보, GPS 좌표 및 썸네일 가져오기

Related MCP server: mcp-video

설치

지엑스피1

용법

클로드 데스크탑

Claude 구성 파일(claude_desktop_config.json)에 다음을 넣으세요.

"mcpServers": {
    "exif-mcp": {
      "command": "node",
      "args": [
        "/path/to/exif-mcp/dist/server.js"
      ]
    }
  },

Claude를 다시 시작하세요. 이제 Claude에게 이미지를 검사하거나 특정 카메라로 촬영한 파일을 찾아달라고 요청할 수 있습니다. 이 기능은 Claude가 파일을 찾고 디렉터리를 나열할 수 있도록 파일 시스템 MCP 도구와 함께 사용하면 가장 효과적입니다.

서버 시작

# Start the server
npm start

# For development with auto-reload
npm run dev

서버는 MCP SDK의 StdioServerTransport 사용하므로 STDIO 전송을 지원하는 모든 MCP 클라이언트와 호환됩니다.

mcp-proxy를 사용하면 원격 액세스를 활성화할 수 있습니다.

사용 가능한 도구

서버에서 제공하는 도구는 다음과 같습니다.

도구 이름

설명

read-metadata

모든 또는 지정된 메타데이터 세그먼트를 읽습니다.

read-exif

EXIF 데이터를 특별히 읽습니다

read-xmp

XMP 데이터를 읽습니다

read-icc

ICC 색상 프로파일 데이터를 읽습니다.

read-iptc

IPTC 메타데이터를 읽습니다

read-jfif

JFIF 세그먼트 데이터를 읽습니다.

read-ihdr

IHDR 세그먼트 데이터를 읽습니다.

orientation

이미지 방향(1-8)을 가져옵니다.

rotation-info

회전 및 뒤집기 정보를 가져옵니다.

gps-coordinates

GPS 좌표를 추출합니다

thumbnail

내장된 썸네일을 추출합니다

MCP Inspector를 사용한 디버깅

  1. 검사기를 시작합니다: npx @modelcontextprotocol/inspector node dist/server.js

  2. STDIO 전송을 사용하여 MCP Inspector로 연결합니다.

  3. 예를 들어 매개변수를 사용하여 read-metadata 와 같은 도구를 호출합니다.

    {
      "image": {
        "kind": "path",
        "path": "/path/to/image.jpg"
      }
    }
  4. MCP 검사기 명령줄을 다음과 같이 사용할 수도 있습니다. npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/call --tool-name read-exif --tool-arg image='{"kind": "path", "path": "/path/to/image.jpeg"}' --tool-arg pick="[]"

이미지 소스 유형

서버는 이미지 데이터를 제공하는 여러 가지 방법을 지원합니다.

// From local file system
{
  "kind": "path",
  "path": "/path/to/image.jpg"
}

// From URL (http, https, or file://)
{
  "kind": "url",
  "url": "https://example.com/image.jpg"
}

// From base64 data (raw or data URI)
{
  "kind": "base64",
  "data": "data:image/jpeg;base64,/9j/4AAQSkZ..."
}

// From base64 buffer
{
  "kind": "buffer",
  "buffer": "/9j/4AAQSkZ..."
}

개발

테스트 실행

# Run tests
npm test

# Run tests with watch mode
npm run test:watch

프로젝트 구조

exif-mcp/
├── src/
│   ├── server.ts         # Main entry point
│   ├── tools/
│   │   ├── index.ts      # Tool registration
│   │   ├── loaders.ts    # Image loading utilities
│   │   └── segments.ts   # exifr options builders
│   └── types/
│       └── image.ts      # Type definitions
├── tests/                # Test files
└── README.md

오류 처리

서버는 일반적인 문제에 대한 표준화된 오류 처리를 제공합니다.

  • 지원되지 않는 형식 또는 누락된 메타데이터

  • 네트워크 페치 실패

  • 대형 탑재물

  • 내부 Exifr 오류

특허

BSD 2절

감사의 말

  • Exifr - 매우 빠르고 강력한 EXIF 파싱 라이브러리

Available Tools

11 tools
gps-coordinatesB

Extract GPS coordinates (latitude/longitude) from image metadata

NameRequiredDescriptionDefault
imageYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It only states the action and target, but does not explain output format, behavior when no GPS data exists, or any side effects. For a read-only extraction tool, this is a minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler. It front-loads the purpose and avoids redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a nested object schema, no annotations, and no output schema. The description provides minimal context about input requirements or return value. Given the complexity of the image parameter and the lack of annotation support, the description is not complete enough for an agent to invoke reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides an 'image' object with properties (url, data, kind, path, buffer) but zero description coverage. The tool description adds only that the image is a source of metadata, without explaining the accepted input formats or how to specify the image. This is insufficient compensation for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool extracts GPS coordinates (latitude/longitude) from image metadata. The verb 'Extract' and the specific resource (GPS coordinates) clearly distinguishes it from sibling tools like read-exif or read-metadata which target broader metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool compared to read-exif or read-metadata. The description does not mention alternatives, exclusions, or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orientationB

Get image orientation value (1-8)

NameRequiredDescriptionDefault
imageYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the full burden of behavioral disclosure. It reveals only the return value range (1-8) but fails to mention how missing orientation values are handled, whether errors occur for invalid images, or any side effects (despite it being a read operation).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant words. It delivers the core function and the expected output range with maximum efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives the essential purpose but lacks detail on edge cases (e.g., no orientation present) and does not address the parameter meaning. For a simple getter, it is minimally sufficient, but it does not fully cover the tool's behavior beyond the bare minimum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about the 'image' parameter beyond the schema's structure. With 0% schema description coverage, the description should compensate, but it does not explain how to specify the image source or clarify the nested object properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving the image orientation value with a specific numeric range (1-8). It distinguishes itself from sibling metadata tools by focusing on the orientation value specifically, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like read-exif or read-metadata is provided. The usage is implied: use it when you need only the orientation value, but the description does not state exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-exifB

Read EXIF data from an image with optional tag filtering

NameRequiredDescriptionDefault
imageYes
pickNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does communicate that the operation is read-only (no side effects) and that tag filtering is optional. However, it omits details about return format, error handling, or any constraints on image input (e.g., supported file types). For a simple read tool, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that starts with the concrete verb 'Read' and includes the essential qualifier about tag filtering. It is concise without unnecessary words, making it easy to parse and remember. All content is relevant to the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a non-trivial parameter structure (nested image object with multiple input types) and no output schema, yet the description does not explain how to specify the image or what the return value looks like. It also does not position the tool against its siblings beyond the EXIF scope. For the complexity level, this description is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter documentation. It mentions 'optional tag filtering', which clearly maps to the 'pick' parameter, but it provides no explanation of the 'image' parameter, which is a complex nested object with multiple input kinds (path, url, base64, buffer). The description leaves the agent to infer the image parameter's structure entirely from the schema, which lacks descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Read EXIF data') and a specific resource ('from an image'), with the additional qualifier 'optional tag filtering' that distinguishes it from sibling tools like read-metadata, read-xmp, and read-icc. This makes the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as read-metadata for broader metadata or edit-exif for modifying data. It does not mention any exclusions, prerequisites, or alternative tool names. The only contextual hint is 'optional tag filtering', but it does not explain when such filtering is beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-iccC

Read ICC metadata from an image

NameRequiredDescriptionDefault
imageYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must disclose behavioral traits. It only states 'Read ICC metadata' without explaining return format, error behavior, or whether the image is left unchanged. The reading action implies non-destructive behavior, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no redundancy, making it easy to parse and front-loaded with the key action. However, it is under-sized, lacking any supporting context, which prevents a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a nested input schema and no output schema, but the description does not explain what ICC metadata is, what the output will be, or any edge cases. It provides only the bare minimum to convey the core function, which is insufficient for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no parameter information. The one required parameter 'image' is an object with a 'kind' enum, but the description does not explain how to choose the kind or how url/data/path/buffer relate, leaving the agent without essential usage details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb 'Read' and a specific resource 'ICC metadata' from an image. The 'ICC' qualifier clearly distinguishes it from sibling tools like read-exif and read-xmp, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or explicit comparisons to sibling metadata readers, leaving the agent to infer applicability solely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-ihdrB

Read IHDR metadata from an image

NameRequiredDescriptionDefault
imageYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral details. It only states the read operation, with no mention of return format, error handling, or limitations (e.g., PNG-only requirement). This is a significant gap for an agent selecting the tool without external context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core action and target with no unnecessary words. It is appropriately concise for a simple read operation, though it sacrifices informational depth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a single nested parameter, the description is too terse. It doesn't specify what IHDR metadata includes (width, height, bit depth, etc.) or what the tool returns, leaving the agent without sufficient context to anticipate the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It does not explain how the 'image' parameter should be structured (e.g., path, URL, base64, buffer) or what the enum 'kind' values mean. The description adds no value beyond the schema's property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read IHDR metadata from an image' uses a specific verb ('Read') and resource ('IHDR metadata'), clearly distinguishing it from sibling metadata readers like read-exif or read-xmp. The IHDR term is a well-known PNG header chunk, so the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives, nor does it mention conditions or exclusions. However, the use of 'IHDR' in the name implies usage when IHDR-specific metadata is needed, providing an implicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-iptcB

Read IPTC metadata from an image

NameRequiredDescriptionDefault
imageYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full responsibility for behavioral disclosure. It only says 'read,' implying a read-only operation, but provides no details about how different input kinds (URL, buffer, path) are handled, potential network requirements, or failure behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no redundant information. It is appropriately front-loaded and concise, containing only the core message.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool lacks an output schema and lives among many similar metadata readers. The description does not specify return format, behavior when no IPTC data exists, or how the image input is consumed. This under-specification leaves critical gaps for an agent selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%—the description adds no meaning to the 'image' parameter. While the schema itself is structurally clear with named sub-fields (url, data, path, buffer) and a kind enum, the description does not help an agent understand the intended input semantics. For low coverage, compensation is required but absent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb and resource: 'Read IPTC metadata from an image.' This distinguishes it from sibling tools like read-exif and read-xmp, which target other metadata formats. No ambiguity exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as read-metadata or read-exif. With a large set of sibling metadata readers, explicit usage context is essential but entirely missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-jfifC

Read JFIF metadata from an image

NameRequiredDescriptionDefault
imageYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits, but it only says 'read'. It doesn't mention return format, error handling, or what happens if JFIF metadata is absent. The read verb implies non-destructive, but that's not fully disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler. It is front-loaded and efficient, though it sacrifices depth for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description should explain what is returned and how inputs are used. It omits this, making the tool feel incomplete for an agent trying to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines an 'image' object with kind and optional url/data/path/buffer, but has zero descriptions. The description adds no information about how to choose a kind or format the input, failing to compensate for the schema's lack of explanations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read JFIF metadata from an image' clearly states the action (read) and the specific resource (JFIF metadata), distinguishing it from sibling tools like read-exif and read-xmp. However, it doesn't explicitly call out the distinction, so it stops short of a full 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like read-metadata or read-exif. The description only states the function, leaving the agent to infer usage from the name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-metadataC

Read all or specified metadata segments from an image

NameRequiredDescriptionDefault
imageYes
segmentsNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses a read-only operation but does not mention return format, error behavior when a segment is missing, or any limits on image formats. The behavior beyond 'read' is completely unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, but it is under-specified. While concise, it does not enough cover the tool's complexity (2 parameters, nested image object). The structure is fine, but the brevity comes at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters, one complex nested object, no annotations, and no output schema, the description is grossly incomplete. It provides no information about how to pass the image, what segments are supported, or what the return value looks like. The tool is not usable from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only hints at the 'segments' parameter through 'all or specified metadata segments'. It says nothing about the required 'image' parameter, which has a complex nested object structure (kind, url, data, path, buffer). The description fails to add any meaning to the schema beyond a vague hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'read', the resource 'metadata segments', and the scope 'all or specified'. This distinguishes it from sibling tools that target specific segment readers (read-exif, read-xmp), as it can read all at once or a specified subset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need to read all or a selection of metadata segments. However, it does not explicitly name alternatives or state when to prefer the segment-specific sibling tools, so the guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read-xmpA

Read XMP metadata from an image with option for extended XMP segments

NameRequiredDescriptionDefault
imageYes
extendedNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states the action and the extended option but does not explain what happens if no XMP metadata exists, what output format to expect, or any side effects. This is insufficient for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundant or filler content. It immediately communicates the core purpose and the key option, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read tool with only two parameters, so a short description might suffice. However, it lacks context on the extended XMP feature, error behavior, or return value expectations. Given no output schema and no annotations, more detail would help complete the picture for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It does clarify the 'extended' boolean by mentioning 'option for extended XMP segments', but the 'image' parameter is only loosely referenced as 'from an image' with no functional detail. The schema itself provides structure, but the description adds minimal insight beyond the extended flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Read' and resource 'XMP metadata', clearly distinguishing it from sibling tools like read-exif and read-iptc by naming XMP explicitly. It also mentions the extended XMP option, adding scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description and tool name—one would use this when needing XMP metadata—but there is no explicit guidance on when to choose this over read-metadata or other sibling tools, and no exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rotation-infoB

Get detailed rotation and flip information from image orientation

NameRequiredDescriptionDefault
imageYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the burden. The verb 'Get' implies a non-destructive read operation, but the description does not disclose return format, side effects, or any exceptional behavior. It adds context about the focus on rotation/flip but lacks deeper behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundant words. It is front-loaded with the action 'Get' and clearly states the resource, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives the core function but lacks context about return values (since no output schema exists) and differentiation from the sibling 'orientation' tool. For a simple getter, it is minimally adequate but does not fully inform the agent about what to expect or when to choose it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema describes a single nested 'image' object with kind, url, data, path, and buffer, which is fairly self-explanatory. The description adds that the tool derives info from 'image orientation', but does not explain parameter usage or format details. Schema coverage is 0%, but the schema itself provides structural semantics, so the slight clarification in the description justifies a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and a clear resource 'detailed rotation and flip information', which states what the tool does. It distinguishes itself from the sibling 'orientation' by specifying 'detailed rotation and flip', but does not explicitly name that sibling as an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It simply states the function, leaving it to the agent to infer that this is for rotation/flip info, without mentioning exclusions or related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thumbnailB

Extract embedded thumbnail from image as base64 data or URL

NameRequiredDescriptionDefault
imageYes
urlNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavior. It states that the tool extracts a thumbnail, which is a read operation, but it does not mention failure modes (e.g., what happens if no thumbnail exists), whether it returns the first/largest thumbnail, or any rate limits or permission requirements. This leaves significant behavioral uncertainty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no filler words. It is concise and front-loads the core action (extract thumbnail) and output format, though it could benefit from a brief note about the input parameter to be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters (one nested), no output schema, and no annotations, the description is too sparse to be complete. It does not explain the return value structure, error handling (e.g., missing thumbnail), or how to choose among the image kind options. The sibling tools all operate on image metadata, and this description does not help the agent understand how this extraction fits into a workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. It hints at the 'url' boolean by mentioning 'base64 data or URL', but it does not explain the 'image' object structure, its 'kind' enum, or how to specify the source image. The schema field names are self-explanatory but the description adds minimal clarification beyond them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Extract') with a clear resource ('embedded thumbnail') and output format ('as base64 data or URL'). This clearly distinguishes it from sibling metadata readers like read-metadata or read-exif, which focus on metadata fields rather than extracting image data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an embedded thumbnail is needed, but does not explicitly state when to use this tool versus the sibling metadata tools, nor does it mention any exclusions or alternatives. It provides no direct comparison or guidance for selecting between similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • First observedgps-coordinates
    • First observedorientation
    • First observedread-exif
    • First observedread-icc
    • First observedread-ihdr
    • First observedread-iptc
    • First observedread-jfif
    • First observedread-metadata
    • First observedread-xmp
    • First observedrotation-info
    • First observedthumbnail

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have clearly distinct purposes focused on different metadata types (EXIF, ICC, IHDR, IPTC, JFIF, XMP, GPS, orientation, thumbnail), but there is some overlap between 'read-exif' and 'read-metadata' since EXIF is a type of metadata, which could cause mild confusion. The 'orientation' and 'rotation-info' tools also cover similar ground, though with different detail levels.

Naming Consistency5/5

Tool names follow a highly consistent verb-noun pattern with 'read-' prefixes for metadata extraction tools (e.g., read-exif, read-icc, read-ihdr) and descriptive names for other functions (e.g., gps-coordinates, orientation, thumbnail). All names use kebab-case consistently, making them predictable and easy to parse.

Tool Count5/5

With 11 tools, the server is well-scoped for extracting various types of image metadata, covering common formats like EXIF, ICC, and XMP, as well as specific functions like GPS and thumbnails. Each tool appears to serve a distinct purpose without unnecessary duplication, fitting the domain appropriately.

Completeness5/5

The tool set provides comprehensive coverage for reading and extracting image metadata, including all major standards (EXIF, ICC, IHDR, IPTC, JFIF, XMP) and practical utilities (GPS coordinates, orientation, thumbnails). There are no obvious gaps for the server's purpose, as it supports both broad and specific metadata access without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers