Skip to main content
Glama

Screenshot MCP Server

An MCP server that provides screenshot capabilities for AI tools, allowing them to capture and process screen content.

Overview

This MCP server enables AI tools to take screenshots of the user's screen, making it possible for AI assistants to see and analyze what the user is looking at. The server handles image capture, compression, and delivery in a format suitable for AI processing.

Related MCP server: Screen MCP

Features

  • Take full screen screenshots

  • Automatic JPEG compression for efficient transfer

  • Base64 encoded image data for reliable transmission

  • Support for both stdio and SSE transport modes

  • Configurable image quality and optimization

  • Simple command-line interface for testing

Installation

From Source

# Clone the repository
git clone https://github.com/codingthefuturewithai/screenshot_mcp_server.git
cd screenshot_mcp_server

# Install using UV (recommended)
uv pip install -e .

# Or using pip
pip install -e .

Available Tools

take_screenshot

Description: Takes a screenshot of the user's screen and returns it as a JPEG image.

Parameters: None

Returns:

  • Image content in JPEG format, base64 encoded

Usage

The server can be used in two ways:

Command Line Client

# Take a screenshot and save it to a file
screenshot_mcp_server-client output.jpg

Programmatic Usage

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async with stdio_client(StdioServerParameters(command="screenshot_mcp_server-server")) as (read, write):
    async with ClientSession(read, write) as session:
        result = await session.call_tool("take_screenshot")
        # Process the screenshot data...

Requirements

  • Python 3.10 or later (< 3.13)

  • Dependencies:

    • mcp >= 1.0.0

    • pyautogui >= 0.9.54

    • Pillow >= 10.0.0

  • Operating Systems: Linux, macOS, Windows

Configuration

The server supports two transport modes:

  • stdio (default): For command-line usage

  • SSE: For web-based applications, runs on port 3001 by default

To run in SSE mode:

screenshot_mcp_server-server-sse --port 3001

License

This project is licensed under the MIT License.

Author

Tim Kitchens (timkitch@codingthefuture.ai)

Available Tools

1 tool
take_screenshotA

Take a screenshot of the user's screen and return it as an image

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/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 states the action and output format but lacks details on behavioral traits such as permissions required, whether it captures the entire screen or a region, privacy implications, or error handling. This is a significant gap for a tool with potential security and usability concerns.

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, efficient sentence that front-loads the core action and outcome with zero wasted words. It is appropriately sized for the tool's simplicity and directly communicates its purpose.

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 complexity (a potentially sensitive screen capture tool) and lack of annotations or output schema, the description is incomplete. It fails to address critical context like security permissions, scope of capture, or return format details, leaving gaps that could hinder safe and effective use by an AI agent.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter semantics, but this is acceptable as there are no parameters to explain, aligning with the baseline for zero parameters.

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 ('take a screenshot') and the resource ('user's screen'), with the outcome specified ('return it as an image'). It distinguishes this tool's purpose unambiguously, especially given no sibling tools exist for comparison.

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 context (e.g., when a visual capture of the screen is needed) but does not provide explicit guidance on when to use it versus alternatives or any exclusions. With no sibling tools, this is adequate but lacks depth on prerequisites or constraints.

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. 1 tool update
    • First observedtake_screenshot

TDQS

A3.6/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The single tool 'take_screenshot' has a clearly distinct and unambiguous purpose.

Naming Consistency5/5

The naming follows a consistent verb_noun pattern with 'take_screenshot'. Since there is only one tool, there is no inconsistency or deviation from any pattern.

Tool Count2/5

A single tool for a screenshot server is too minimal for typical use cases. While it directly serves the core function, it lacks supporting tools (e.g., for selecting regions, managing screenshots, or configuring settings), making it feel thin and incomplete for the domain.

Completeness2/5

The tool surface is severely incomplete for a screenshot domain. It only provides a basic capture function, with no tools for editing, saving, annotating, or managing screenshots, which are common in such applications, leading to significant gaps in functionality.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • F
    license
    A
    quality
    D
    maintenance
    Enables LLMs to capture screenshots and screen recordings through MCP with chunked session-based transfers for reliable image consumption. Supports multi-monitor selection, timeline capture, and compatibility with both vision and non-vision language models.
    11
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Open-source screenshot tool for Windows with a built-in MCP server that allows AI assistants like Claude to capture and view screen content through tools like take_screenshot, ask_user_to_select_region, and more.
    3
    MIT

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/codingthefuturewithai/screenshot_mcp_server'

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