Skip to main content

shotlog-mcp

Let your AI assistant take the screenshots for your report.

An MCP server for macOS. It captures a specific window, saves it with a sequential number and a caption (activity, command, result), and puts everything together into a Markdown report you can turn into a PDF.

It was built for a university OS lab where every step had to be backed by a screenshot, on a Mac and a Windows laptop at the same time. It works the same way for QA evidence, tutorials, runbooks and bug reports.

Leer en español

shotlog demo: the assistant captures a Terminal window as step 1 and exports the report

What it does

Tool Description
list_windows Lists the visible windows (app, title, size).
save_screenshot Captures one window, picked by app and/or title (front-most by default), and saves it as 001_name.png together with its caption.
update_caption Fills in or fixes the caption afterwards.
list_screenshots Shows the log in order.
pull_remote_screenshots Fetches new screenshots from another machine (e.g. Windows' Pictures\Screenshots) over SCP and numbers them in the same sequence.
export_report Writes report.md: every screenshot with its caption, in order.

Then just ask: "Run ssh -V in the terminal, take a screenshot of it and caption it as step 3."

Install

Requires macOS, Python 3.11+ and uv.

Claude Code

claude mcp add shotlog -- uvx shotlog-mcp

Claude Desktop / other MCP clients

{
  "mcpServers": {
    "shotlog": { "command": "uvx", "args": ["shotlog-mcp"] }
  }
}

The first capture needs the Screen Recording permission for the app that runs the server (Terminal, iTerm, VS Code, Claude…): System Settings → Privacy & Security → Screen Recording.

Configuration

Variable Default
SHOTLOG_DIR ~/shotlog Where screenshots, manifest.json and report.md are saved.

Use one folder per project: claude mcp add shotlog -e SHOTLOG_DIR=~/lab3/shots -- uvx shotlog-mcp

Remote screenshots (optional)

To use pull_remote_screenshots, the other machine needs an SSH server (on Windows: Settings → Optional features → OpenSSH Server) and key-based login from your Mac, so that no password is asked for.

Report to PDF

cd ~/shotlog && pandoc report.md -o report.pdf

Development

uv run --group dev pytest

License

MIT

Metadata

Release files for shotlog-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shotlog-mcp 0.1.1
File Size Uploaded Provenance Actions
shotlog_mcp-0.1.1.tar.gz 196.1 kB Without provenance Details for shotlog_mcp-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for shotlog-mcp 0.1.1
File Interpreter ABI Platform Actions
shotlog_mcp-0.1.1-py3-none-any.whl Python 3 none any Details for shotlog_mcp-0.1.1-py3-none-any.whl

Total release size: 203.7 kB

Release files / shotlog_mcp-0.1.1.tar.gz

Download URL shotlog_mcp-0.1.1.tar.gz
Size 196.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c0a22f6185b189ec2b753def1685eb90e2a9166e389567f3431cdead4dad320c
BLAKE2b-256 checksum
How to use checksums
ba41875a93dd338781fb2c2d6fbf031bc628dfae1370deba3850d1c01b6fb5f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / shotlog_mcp-0.1.1-py3-none-any.whl

Download URL shotlog_mcp-0.1.1-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de22aaede07e9e3bc0b61647a4eaa9b4c7885da11590cdc8dd9810d6508ef0da
BLAKE2b-256 checksum
How to use checksums
223e5a7ab452ce5f8df8c6b29ebe846cb8636cf0c4ae38c7a1514d3b5c4f87ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for shotlog-mcp 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page