Skip to main content
Glama

Auto-Snap MCP 📸

Automated screenshot capture and document processing for MCP Clients

Turn your screenshots into PDFs automatically! Auto-Snap lets your MCP client capture windows, process documents, and create PDFs with simple natural language commands.

🚀 Quick Start

Which Option Should I Choose?

  • 🐳 Docker → Zero setup, works everywhere (recommended)

  • 🪟 WSL2 → Windows users with WSL2 installed

  • 🐧 Linux → Native Linux

Setup Steps

1. Get Auto-Snap:

git clone https://github.com/your-repo/auto-snap-mcp
cd auto-snap-mcp

2. Install dependencies (Linux only):

# Skip this step if using Docker
sudo apt install -y wmctrl xdotool tesseract-ocr
uv sync

3. Configure Claude Desktop:

Edit ~/.claude/claude_desktop_config.json and add one of these:

🐳 Docker (Recommended - No setup needed!)

{
  "mcpServers": {
    "auto-snap-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "DISPLAY=:0", 
        "-v", "/tmp/.X11-unix:/tmp/.X11-unix:rw",
        "-v", "${HOME}/auto-snap-captures:/app/captures:rw",
        "mcp/auto-snap-mcp:latest"
      ]
    }
  }
}

🪟 WSL2 (Windows with WSL2)

{
  "mcpServers": {
    "auto-snap-mcp": {
      "command": "wsl.exe",
      "args": [
        "bash", "-c",
        "cd /home/YOUR_WSL_USERNAME/auto-snap-mcp && DISPLAY=:0 /home/YOUR_WSL_USERNAME/.local/bin/uv run python server.py"
      ]
    }
  }
}

🐧 Linux Native

{
  "mcpServers": {
    "auto-snap-mcp": {
      "command": "uv",
      "args": ["run", "python", "server.py"],
      "cwd": "/home/YOUR_USERNAME/auto-snap-mcp",
      "env": {"DISPLAY": ":0"}
    }
  }
}

4. Restart Claude Desktop and verify it works:

  • "List all my open windows" ← Start with this to test the connection

  • "Capture this PDF and convert to images"

  • "Take 5 screenshots and make them into a PDF"

✅ Working? You should see your windows listed. If not, check the 🚨 Not Working? section below.

Related MCP server: Textin MCP Server

📁 Where Your Files Are Saved

By default, all your captures go to:

~/auto-snap-captures/

Full path examples:

  • Linux: /home/username/auto-snap-captures/

  • WSL2: /home/username/auto-snap-captures/

  • Windows (Docker): C:\Users\username\auto-snap-captures\

✨ What It Does & Commands to Try

📋 Document Capture

  • Screenshot any window or the entire screen

  • Capture multi-page documents automatically

  • Works with PDFs, presentations, web pages

🔍 Image Processing

  • Extract text from screenshots (OCR)

  • Enhance image quality automatically

  • Process multiple images at once

📄 PDF Creation

  • Convert screenshots to PDF instantly

  • Organize files with smart naming

  • Compress PDFs for smaller size

🎯 Commands to Try

"Capture this document as PDF" → Takes screenshots and creates a PDF

"Extract text from these images" → Runs OCR on screenshots

"Archive this presentation" → Screenshots all slides into one PDF

"List all my open windows" → See what you can capture

"Take 5 screenshots and make them into a PDF" → Multi-page capture

💡 Pro Tips:

  • Be specific: "Capture the Chrome window" works better than "take a screenshot"

  • Multi-step: "Screenshot this presentation and extract all the text"

  • Batch work: "Process all images in my Downloads and make PDFs"

Want to change where files are saved? See the 🎨 Customize Your Captures section below.

🛠️ System Support

  • Linux (native X11)

  • WSL2 (Windows apps from Linux)

  • ⚠️ macOS (with XQuartz - experimental)

🚨 Not Working?

Common fixes:

# Check dependencies
uv run python -c "from capture import check_dependencies; print(check_dependencies())"

# Fix X11 display
export DISPLAY=:0

# Test the server
uv run python server.py

Still stuck?

  1. Make sure the config path is correct: ~/.claude/claude_desktop_config.json

  2. Restart Claude Desktop after config changes

  3. Check Claude Desktop logs for errors

🎨 Customize Your Captures

Set where files go:

export AUTO_SNAP_OUTPUT_DIR="$HOME/Documents/Screenshots"

Organize by date:

export AUTO_SNAP_USE_DATE_SUBDIRS=true
export AUTO_SNAP_INCLUDE_TIMESTAMP=true

Custom file names:

export AUTO_SNAP_FILE_NAME_TEMPLATE="doc_{page:04d}"

🌍 Multiple Languages

Add more OCR languages:

sudo apt install tesseract-ocr-spa  # Spanish
sudo apt install tesseract-ocr-fra  # French
sudo apt install tesseract-ocr-deu  # German

Then tell Claude: "Process this document in Spanish"

🔐 Privacy

  • Everything runs locally on your machine

  • No cloud services or uploads

  • Only captures what you ask for

  • Automatic cleanup of temp files


Ready to automate your screenshots? Install Auto-Snap and start talking to your MCP Clients about your documents! 🚀

Available Tools

10 tools
capture_document_pagesA
Capture multiple pages from a document window with automatic navigation.

Args:
    window_id: Window ID containing the document
    page_count: Number of pages to capture
    output_dir: Directory to save captured pages
    navigation_key: Key to press for navigation (Page_Down, Right, space)
    delay_seconds: Delay between navigation and capture

Returns:
    JSON string with capture results and list of captured files.
ParametersJSON Schema
NameRequiredDescriptionDefault
window_idYes
page_countYes
output_dirNo
navigation_keyNoPage_Down
delay_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 describes the automatic navigation behavior and mentions the return format (JSON string with results and file list), which is valuable. However, it doesn't disclose important behavioral traits like whether this requires specific permissions, what happens if navigation fails, whether it modifies the document, or any rate limits. The description adds some context but leaves significant gaps.

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 perfectly structured and concise: a clear purpose statement followed by well-organized Args and Returns sections. Every sentence earns its place, with no wasted words. The information is front-loaded with the core functionality, followed by parameter details and return information.

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 the tool's complexity (5 parameters, automatic navigation behavior) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the core functionality, all parameters, and mentions the return format. However, for a tool with no annotations and significant behavioral complexity, it could benefit from more disclosure about error conditions, permissions, or what 'automatic navigation' entails beyond key pressing.

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

Parameters4/5

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

With 0% schema description coverage, the description must compensate for the lack of parameter documentation in the schema. It provides clear explanations for all 5 parameters in the Args section, adding meaningful context about what each parameter does (e.g., 'Key to press for navigation', 'Delay between navigation and capture'). This significantly enhances understanding beyond the bare schema, though it doesn't cover all possible edge cases or format 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 clearly states the tool's purpose with specific verbs ('capture multiple pages', 'automatic navigation') and distinguishes it from siblings like capture_full_screen and capture_window by focusing on document pages with navigation. It explicitly mentions the resource (document window) and the multi-page capture functionality.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (capturing multiple pages from a document with automatic navigation), but doesn't explicitly state when not to use it or name specific alternatives. It implies usage for document page capture with navigation, which is helpful but lacks explicit exclusions or comparisons to siblings like capture_window or full_document_workflow.

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

capture_full_screenB
Capture screenshot of the entire screen.

Args:
    output_path: Optional path to save the screenshot

Returns:
    JSON string with capture results and file path.
ParametersJSON Schema
NameRequiredDescriptionDefault
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 of behavioral disclosure. It mentions that the tool captures a screenshot and returns a JSON string, but fails to describe critical behaviors such as permissions needed, whether it overwrites existing files, how it handles errors, or any system dependencies. This leaves significant gaps for a tool that interacts with the system.

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 and front-loaded with the core purpose, followed by brief sections for arguments and returns. Each sentence serves a clear purpose without redundancy, though the 'Args' and 'Returns' labels could be integrated more smoothly into the narrative flow.

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?

Given the tool's moderate complexity (system interaction with one parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, it lacks details on behavioral aspects like error handling or dependencies, which are important for a capture tool, making it incomplete for safe and effective use.

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

Parameters4/5

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

With 0% schema description coverage and only one optional parameter, the description adds meaningful context by explaining that 'output_path' is an optional path to save the screenshot. This clarifies the parameter's purpose beyond the schema's basic type information, though it could provide more details on path formats or default behaviors.

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 clearly states the tool's purpose with a specific verb ('Capture') and resource ('screenshot of the entire screen'), distinguishing it from siblings like 'capture_window' or 'capture_document_pages' which target specific screen elements. However, it doesn't explicitly mention how it differs from those siblings beyond the scope of capture.

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 like 'capture_window' or 'capture_document_pages'. It lacks context about scenarios where capturing the entire screen is preferred over more targeted captures, and does not mention any prerequisites or exclusions.

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

capture_windowA
Capture screenshot of a specific window.

Args:
    window_id: Window ID to capture (from list_windows)
    output_path: Optional path to save the screenshot

Returns:
    JSON string with capture results and file path.
ParametersJSON Schema
NameRequiredDescriptionDefault
window_idYes
output_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 the full burden of behavioral disclosure. It mentions that the tool captures a screenshot and returns a JSON string with results and file path, but it lacks details on permissions needed, whether it's a read-only or destructive operation, error handling, or rate limits. For a tool that interacts with system windows, this is a significant gap in transparency.

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 front-loaded with the core purpose in the first sentence, followed by structured sections for Args and Returns. Each sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse for an agent.

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 the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is reasonably complete. It covers the purpose, parameter semantics, and return format, though it lacks behavioral details like error cases or system dependencies. The presence of an output schema means the description doesn't need to explain return values in depth, which helps maintain adequacy.

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

Parameters4/5

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

The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'window_id' is obtained 'from list_windows' and that 'output_path' is optional for saving the screenshot, clarifying usage context and default behavior. This compensates well for the low schema coverage, though it doesn't detail parameter formats or constraints.

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 clearly states the tool's purpose: 'Capture screenshot of a specific window.' It specifies the verb ('capture') and resource ('screenshot of a specific window'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'capture_full_screen' or 'capture_document_pages', which would require mentioning it targets individual windows rather than the entire screen or document pages.

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 provides implied usage guidance by mentioning that 'window_id' comes 'from list_windows', suggesting a prerequisite tool. It doesn't explicitly state when to use this tool versus alternatives like 'capture_full_screen' or 'capture_document_pages', nor does it outline exclusions or specific contexts. This leaves some ambiguity for the agent in choosing between sibling tools.

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

check_system_dependenciesB
Check if all required system dependencies are installed.

Returns:
    JSON string with dependency check results.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 burden. It mentions the return format ('JSON string with dependency check results'), which is useful, but lacks details on behavioral traits: it doesn't specify what 'required' means, whether it checks versions, if it's read-only/destructive, or any error handling. The output schema exists, but the description could add more context.

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 and front-loaded: the first sentence states the purpose, and the second describes the return. It wastes no words, though it could be slightly more informative (e.g., explaining what 'dependencies' entail).

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?

Given the tool has no parameters, an output schema, and no annotations, the description is minimally complete. It covers the basic purpose and return format, but lacks context on usage scenarios or behavioral details (e.g., what happens if dependencies are missing). For a simple check tool, this is adequate but with clear gaps.

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

Parameters4/5

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

There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add param info, but that's acceptable here. Baseline is 4 for zero parameters, as it doesn't need to compensate for gaps.

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 clearly states the tool's purpose: 'Check if all required system dependencies are installed.' It uses a specific verb ('Check') and identifies the resource ('system dependencies'). However, it doesn't differentiate from sibling tools (which are mostly about capturing/processing documents), though this may not be necessary given the distinct domain.

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. It doesn't mention prerequisites (e.g., before running other tools), exclusions, or related tools. The context of sibling tools suggests it might be used before capture/processing operations, but this is not stated.

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

convert_to_pdfA
Convert a list of images to a PDF document.

Args:
    image_paths: List of image file paths to convert
    output_path: Path for the output PDF file
    title: Optional title for the PDF document
    sort_files: Whether to sort files by name before conversion

Returns:
    JSON string with conversion results.
ParametersJSON Schema
NameRequiredDescriptionDefault
image_pathsYes
output_pathYes
titleNo
sort_filesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states basic functionality. It doesn't disclose behavioral traits such as file format support, error handling, permissions needed, whether it overwrites existing files, or performance considerations. This is inadequate for a tool with 4 parameters and file operations.

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 front-loaded with the core purpose, followed by a structured Args/Returns section. Every sentence adds value—no fluff or repetition. It's appropriately sized for the tool's complexity.

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?

Given 4 parameters, no annotations, and an output schema (which covers return values), the description is partially complete. It explains parameters well but lacks behavioral context (e.g., side effects, error cases). The output schema reduces need for return details, but gaps remain in usage and transparency.

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

Parameters4/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. It adds meaningful context for all 4 parameters: 'image_paths' as list of file paths, 'output_path' for the PDF, 'title' as optional, and 'sort_files' for ordering. This goes beyond the bare schema, though it lacks format details (e.g., image types).

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 specific action ('Convert a list of images to a PDF document'), identifies the resource ('images'), and distinguishes from siblings like 'directory_to_pdf' (which processes directories) or 'process_images' (which might not output PDFs). The verb 'convert' is precise and the scope is well-defined.

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 like 'directory_to_pdf' (for directories) or 'full_document_workflow' (which might include conversion). It lacks explicit when/when-not instructions or named alternatives, leaving usage context implied at best.

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

debug_window_detectionB
Comprehensive debugging information for window detection issues.

Returns:
    JSON string with detailed diagnostics about PowerShell environment,
    process enumeration, and window detection capabilities.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/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 that the tool returns 'detailed diagnostics' in JSON format, covering specific areas (PowerShell environment, process enumeration, window detection capabilities). However, it doesn't mention whether this is a read-only operation, if it affects system state, performance characteristics, or error handling. The description adds some behavioral context but leaves significant gaps for a debugging tool.

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 appropriately concise with two sentences. The first sentence states the purpose, and the second describes the return format and scope. There's no wasted text, and information is front-loaded. It could be slightly more structured by explicitly separating purpose from output details, but it's efficient.

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 the tool's complexity (debugging with no inputs), the description is reasonably complete. It explains the purpose and output format. Since an output schema exists, the description doesn't need to detail return values. However, for a debugging tool with no annotations, it could better cover behavioral aspects like side effects or usage context. The description is adequate but not fully comprehensive.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to compensate for any parameter gaps. It appropriately doesn't discuss parameters, focusing instead on the output. This meets the baseline for zero-parameter tools.

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 clearly states the tool's purpose: providing 'comprehensive debugging information for window detection issues.' It specifies the verb ('debugging') and resource ('window detection'), though it doesn't explicitly differentiate from sibling tools like 'check_system_dependencies' or 'list_windows' that might also provide diagnostic information. The purpose is clear but lacks sibling differentiation.

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. It doesn't mention prerequisites, appropriate contexts, or exclusions. With sibling tools like 'check_system_dependencies' that might also provide diagnostics, the agent receives no help in choosing between them. The description merely states what the tool does, not when to invoke it.

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

directory_to_pdfB
Convert all images in a directory to a PDF document.

Args:
    image_dir: Directory containing images
    output_path: Path for the output PDF file
    title: Optional title for the PDF document
    pattern: File pattern to match (default: all files)

Returns:
    JSON string with conversion results.
ParametersJSON Schema
NameRequiredDescriptionDefault
image_dirYes
output_pathYes
titleNo
patternNo*

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/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 states what the tool does but doesn't describe important behavioral aspects: whether it overwrites existing files at output_path, what image formats are supported, error handling for non-image files, memory/performance characteristics, or authentication requirements. The mention of 'JSON string with conversion results' is helpful but insufficient for a mutation tool with zero annotation coverage.

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 perfectly structured and concise. It begins with a clear purpose statement, then provides organized parameter explanations in bullet-point style, and ends with return value information. Every sentence earns its place with no redundant information or unnecessary elaboration.

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?

Given the tool's moderate complexity (directory processing with pattern matching), zero annotation coverage, and the presence of an output schema (implied by 'Returns: JSON string'), the description is minimally adequate. It covers the basic operation and parameters but lacks important context about file system interactions, error conditions, and performance characteristics that would be needed for robust agent usage.

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

Parameters4/5

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

The description provides meaningful semantic context for all 4 parameters beyond what the schema offers (0% coverage). It explains that 'image_dir' contains images to convert, 'output_path' is for the resulting PDF, 'title' is optional for the PDF document, and 'pattern' matches files with a default of 'all files'. This compensates well for the schema's lack of descriptions, though it could provide more detail about pattern syntax and supported image formats.

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 clearly states the tool's purpose with a specific verb ('Convert') and resource ('all images in a directory to a PDF document'). It distinguishes from sibling tools like 'convert_to_pdf' by specifying directory-level conversion rather than individual file conversion. However, it doesn't explicitly differentiate from 'process_images' which might have overlapping functionality.

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 like 'convert_to_pdf' or 'process_images'. It mentions the basic functionality but offers no context about prerequisites, performance considerations, or scenarios where this tool is preferred over other image/PDF conversion tools in the sibling list.

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

full_document_workflowB
Complete workflow: capture document pages, optionally process them, and convert to PDF.

Args:
    window_id: Window ID containing the document
    page_count: Number of pages to capture
    output_pdf: Path for the final PDF file
    capture_dir: Temporary directory for captures
    title: Optional PDF title
    navigation_key: Key for page navigation
    delay_seconds: Delay between navigation and capture
    process_images_flag: Whether to enhance images before PDF conversion

Returns:
    JSON string with complete workflow results.
ParametersJSON Schema
NameRequiredDescriptionDefault
window_idYes
page_countYes
output_pdfYes
capture_dirNo
titleNo
navigation_keyNoPage_Down
delay_secondsNo
process_images_flagNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/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 mentions the workflow steps but lacks critical behavioral details: it doesn't specify what 'process them' entails (e.g., image enhancement), whether this is a read-only or destructive operation, what permissions or prerequisites are needed, or how errors are handled. The description is insufficient for a tool with 8 parameters and complex workflow behavior.

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 a clear summary sentence followed by organized parameter explanations. It's appropriately sized for an 8-parameter tool, though the 'Args' and 'Returns' sections could be more integrated. Every sentence adds value, with no redundant information, making it efficient for understanding.

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?

Given the tool's complexity (8 parameters, workflow behavior) and lack of annotations, the description is moderately complete. The parameter explanations help, but behavioral aspects are under-specified. The existence of an output schema reduces the need to detail return values, but the description should better explain the workflow's operational characteristics and error handling for adequate completeness.

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

Parameters4/5

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

The description provides a helpful 'Args' section that lists all 8 parameters with brief explanations, adding significant meaning beyond the input schema which has 0% description coverage. It clarifies purposes like 'Path for the final PDF file' for output_pdf and 'Whether to enhance images' for process_images_flag. However, some explanations remain vague (e.g., 'Key for page navigation' doesn't specify valid values).

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 clearly states the tool performs a 'complete workflow' that captures document pages, optionally processes them, and converts to PDF. It specifies the verb ('capture', 'process', 'convert') and resource ('document pages', 'PDF'), but doesn't explicitly differentiate from sibling tools like 'capture_document_pages' or 'convert_to_pdf' which might handle parts of this workflow separately.

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. It doesn't mention sibling tools like 'capture_document_pages' or 'convert_to_pdf', nor does it explain when this comprehensive workflow is preferable to using individual tools. The agent must infer usage from the 'complete workflow' phrasing without explicit context.

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

list_windowsA
List all available windows for screenshot capture.

Returns:
    JSON string containing list of windows with their IDs, titles, and properties.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/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 that the tool returns a JSON string with window IDs, titles, and properties, which adds useful context beyond the basic purpose. However, it doesn't mention behavioral traits like whether this is a read-only operation, potential performance impacts, or how it interacts with system permissions for window capture.

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 appropriately sized and front-loaded: the first sentence states the core purpose, and the second provides essential return format details. There's no wasted text, and both sentences earn their place by adding value.

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 the tool's low complexity (0 parameters, simple list operation) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose and output format adequately. However, it could be more complete by including usage guidelines or behavioral context, especially since no annotations are provided.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description doesn't need to add parameter semantics, but it correctly implies no parameters are required by not mentioning any. This meets the baseline for zero parameters.

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 clearly states the tool's purpose with a specific verb ('List') and resource ('all available windows for screenshot capture'), making it immediately understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'capture_window' or 'debug_window_detection', which might also involve window operations.

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's no mention of prerequisites, context for use, or comparison with sibling tools like 'capture_window' (which might require window selection) or 'debug_window_detection' (which might involve troubleshooting).

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

process_imagesC
Process images in a directory with various operations.

Args:
    image_dir: Directory containing images to process
    operations: List of operations (enhance, ocr, resize, deduplicate)
    ocr_language: Language for OCR processing (default: eng)

Returns:
    JSON string with processing results.
ParametersJSON Schema
NameRequiredDescriptionDefault
image_dirYes
operationsNo
ocr_languageNoeng

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/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 mentions operations like 'enhance', 'ocr', 'resize', and 'deduplicate', but doesn't explain what these entail (e.g., how enhancement works, what deduplication criteria are). It also lacks details on permissions, rate limits, or side effects (e.g., whether images are modified in-place or copied). The return format is mentioned but not elaborated.

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 appropriately sized and front-loaded with a clear purpose statement, followed by structured sections for Args and Returns. Every sentence adds value, such as listing operations and specifying defaults, with no redundant information. However, it could be slightly more concise by integrating the operations list into the main sentence.

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?

Given the complexity (3 parameters, no annotations, but has an output schema), the description is moderately complete. It covers parameters well but lacks behavioral context and usage guidelines. The output schema existence means the description doesn't need to detail return values, but it should still address operational nuances. For a tool with multiple operations, more completeness on behavior is needed.

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

Parameters4/5

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

The description adds significant meaning beyond the input schema, which has 0% schema description coverage. It explains that 'image_dir' contains images to process, 'operations' is a list of specific operations with examples, and 'ocr_language' is for OCR processing with a default. This compensates well for the schema's lack of descriptions, though it could provide more detail on operation specifics.

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

Purpose3/5

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

The description states the tool 'processes images in a directory with various operations', which provides a basic purpose but is vague about what 'process' entails. It doesn't differentiate from sibling tools like 'convert_to_pdf' or 'directory_to_pdf', which might involve similar image handling. The verb 'process' is generic, and while it lists operations, it lacks specificity about the overall goal.

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. For example, it doesn't specify if this is for batch processing versus single images, or how it compares to sibling tools like 'convert_to_pdf' for PDF conversion or 'full_document_workflow' for more comprehensive tasks. The description implies usage through the operations list but offers no explicit context or exclusions.

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. Dates show when Glama detected each change.

  1. 10 tool updates
    • First observedcapture_document_pages
    • First observedcapture_full_screen
    • First observedcapture_window
    • First observedcheck_system_dependencies
    • First observedconvert_to_pdf
    • First observeddebug_window_detection
    • First observeddirectory_to_pdf
    • First observedfull_document_workflow
    • First observedlist_windows
    • First observedprocess_images

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between capture_document_pages and full_document_workflow, as the latter encompasses the former's functionality. Similarly, convert_to_pdf and directory_to_pdf both handle PDF conversion, though with different input sources. The descriptions help clarify these distinctions, but an agent might occasionally misselect between these pairs.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as capture_window, list_windows, and process_images. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions across the server.

Tool Count5/5

With 10 tools, the server is well-scoped for document capture and processing workflows. Each tool serves a clear purpose, from window listing and capture to image processing and PDF conversion, without unnecessary redundancy or gaps, making the count appropriate for the domain.

Completeness4/5

The tool set covers core workflows for document capture, processing, and PDF conversion comprehensively, including dependencies and debugging. However, there is a minor gap in direct OCR or text extraction tools, as process_images includes OCR but lacks standalone options, which might require workarounds for specific tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/PovedaAqui/auto-snap-mcp'

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