Skip to main content
Glama

Server Quality Checklist

75%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Tools have distinct purposes, but analyze_document overlaps with ocr_image, detect_faces, detect_barcodes, and detect_document. However, explicit DO NOT USE guidance helps agents select the right tool for single-capability tasks.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., classify_image, detect_barcodes, ocr_image), making it easy to understand the action and target.

    Tool Count5/5

    Six tools is appropriate for a computer vision utility, covering core capabilities without unnecessary bloat or fragmentation.

    Completeness4/5

    Covers OCR, classification, barcode/face/document detection. Missing general object detection or saliency, but classification with 1000+ categories and the full pipeline tool address many needs. Minor gaps exist.

  • Average 4.6/5 across 6 of 6 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 17 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It reveals offline capability, no API key requirement, 1000+ categories, and confidence scores sorted descending. However, it doesn't mention error handling for invalid paths or unsupported image formats, which would enhance transparency.

    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 concise with clear sections (main action, use cases, exclusions, return format). Every sentence adds value. It could be slightly more structured (e.g., bullet points) but is well-organized for an AI agent.

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

    Completeness5/5

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

    Despite lacking an output schema, the description explains the return format (JSON array with label names and confidence scores) and sorting order. It covers key aspects like local file path, offline operation, and category scope, making it complete for a simple classification tool.

    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 the only parameter 'path' with a clear description. The tool description reinforces that it's a local image path but adds no additional semantics beyond what the schema provides. Since schema coverage is 100% and the parameter is straightforward, a baseline score of 3 is appropriate.

    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 purpose: classifying local image content into categories using Apple Vision. It distinguishes itself from sibling tools by explicitly listing what not to use it for (text extraction, face/barcode detection) and referencing dedicated alternatives.

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

    Usage Guidelines5/5

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

    The description provides explicit 'USE WHEN' scenarios (user wants to know what is depicted) and 'DO NOT USE' examples with specific alternative tools (ocr_image, detect_faces). It also notes that the tool works offline without an API key.

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

  • Behavior4/5

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

    Describes offline operation (Apple Vision, no API key) and return format (JSON array). Lacks details on error handling or empty results, but overall good.

    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?

    Concise, well-structured with distinct sections (description, USE WHEN, DO NOT USE, supported formats, returns). No wasted words.

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

    Completeness4/5

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

    Covers functionality, usage, and output format. Lacks error handling or limitations, but for a simple one-param tool it is sufficiently complete.

    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?

    Schema coverage is 100% with a clear parameter description. The tool description adds no further semantic details beyond what the schema provides.

    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 action (detect and decode barcodes/QR codes), the resource (local image file), and distinguishes from siblings like ocr_image and detect_faces.

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

    Usage Guidelines5/5

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

    Provides explicit USE WHEN and DO NOT USE sections, listing specific use cases and alternatives, which helps the agent decide when to invoke this tool.

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

  • Behavior4/5

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

    No annotations provided, so the description carries full burden. It discloses offline operation, no API key needed, and return format (JSON with count and positions as percentages). However, it omits details like supported file types, what happens if no faces found, or error handling. Still covers core behavioral traits well.

    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 extremely concise with two short paragraphs. The first sentence states the core function, followed by explicit usage guidelines and return format. Every sentence adds value with no wasted words.

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

    Completeness4/5

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

    Given no output schema, the description adequately explains the return format (face count and positions). It differentiates from siblings. However, it could mention supported image file types or behavior when no faces are detected. Overall complete for a simple tool.

    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?

    Schema coverage is 100% for the single 'path' parameter, so the baseline is 3. The description adds little beyond the schema, just reiterating 'local image file' and 'absolute or relative path'. No additional semantic value or constraints beyond what the schema already provides.

    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 detects human faces in a local image using Apple Vision, with a specific verb and resource. It distinguishes from siblings by listing what not to use it for (text extraction, barcode reading) and naming alternative tools.

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

    Usage Guidelines5/5

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

    Explicit USE WHEN condition (user wants face count/positions) and DO NOT USE with specific alternatives (ocr_image, detect_barcodes) are provided, giving clear guidance on when to invoke this tool versus siblings.

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

  • Behavior4/5

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

    Discloses offline operation (Apple Vision, no API key), return format (corner points in 0-1 coordinates, confidence), and failure case (detected: false). No annotations provided, so description carries full burden; minor gap: no mention of supported image formats or error scenarios beyond missing document.

    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?

    Description is concise and well-structured with clear sections (USE WHEN, DO NOT USE, Returns). Every sentence adds value, no unnecessary text.

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

    Completeness5/5

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

    Given the tool's simplicity (single parameter, no output schema), the description fully covers purpose, usage, return values, and limitations. No output schema exists, so the description correctly explains the JSON return format.

    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?

    Input schema has one parameter 'path' with description. Schema coverage is 100%, so baseline 3. Description adds no extra detail about path format or constraints beyond what schema provides.

    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?

    Description clearly states the tool detects document boundaries in a local image and returns corner points. It specifies the resource (document in image) and verb (detect boundary), and distinguishes from siblings like ocr_image and classify_image.

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

    Usage Guidelines5/5

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

    Explicitly provides 'USE WHEN' with examples (photo of paper, receipt) and 'DO NOT USE for' with alternatives (ocr_image, classify_image, analyze PDF). This gives clear context for tool selection.

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

  • Behavior5/5

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

    With no annotations, the description fully discloses behavior: parallel execution, offline, no API key. It details return shape, notes PDF detections are best-effort, and explains that start_page only narrows OCR, not detections.

    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 well-structured but slightly lengthy; however, every sentence earns its place. It begins with main purpose, then usage, return shape, and parameters. Could be trimmed slightly but remains clear.

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

    Completeness5/5

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

    Despite no output schema, the description provides a detailed return shape, explains primary and secondary data surfaces, and covers all parameter behaviors. It is complete for a tool of this complexity.

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

    Parameters5/5

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

    Schema coverage is 100%, but the description adds significant value: explains start_page is 1-based, only narrows OCR; max_pages default is all; both ignored for images. Provides beyond-schema context that aids correct parameter usage.

    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 it runs a full analysis pipeline on local image/PDF, listing specific capabilities (OCR, face, barcode, rectangle detection) and returns structured JSON for document reconstruction. It distinguishes from sibling tools by emphasizing parallel execution and full offline capability.

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

    Usage Guidelines5/5

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

    The description includes explicit 'USE WHEN' and 'DO NOT USE' sections, specifying use cases like reconstructing documents into formats, and advises using dedicated tools when only one capability is needed.

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

  • Behavior5/5

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

    Despite no annotations, the description fully discloses behavioral traits: offline operation, no API key required, supported file formats, the effect of each parameter (including PDF-only and edge cases like 'start_page past the end returns an empty result'), and the structure of the output for format='blocks'.

    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 well-structured with clear sections (purpose, usage, supported formats, parameters, returns). It is front-loaded with the core purpose. While comprehensive, it is slightly long, but every sentence contributes value given the tool's complexity.

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

    Completeness5/5

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

    Given the tool has 4 parameters, no output schema, and no annotations, the description is complete: it covers input, behavior, output examples, edge cases, and distinguishes from siblings. Nothing essential is missing.

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

    Parameters5/5

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

    Schema coverage is 100%, but the description significantly adds meaning beyond the schema: it describes the JSON structure for format='blocks' with field details (pages, paragraphs, textBlocks, bounding boxes, confidence) and explains PDF-specific behavior for start_page and max_pages, including an edge case.

    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 begins with a specific verb and resource: 'Extract text from a local image or PDF file using Apple Vision OCR (offline, no API key needed).' It clearly distinguishes from sibling tools like detect_faces and detect_barcodes by stating what not to use for, and it lists supported formats.

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

    Usage Guidelines5/5

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

    The description provides explicit 'USE WHEN' and 'DO NOT USE for' sections, giving clear context for when this tool is appropriate and when alternatives (download first, other tools) should be used. It also references sibling tools like detect_faces and detect_barcodes.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

macos-vision-mcp MCP server

Copy to your README.md:

Score Badge

macos-vision-mcp MCP server

Copy to your README.md:

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/woladi/macos-vision-mcp'

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