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.0

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.0
File Size Uploaded Provenance Actions
shotlog_mcp-0.1.0.tar.gz 195.8 kB Without provenance Details for shotlog_mcp-0.1.0.tar.gz

Built distribution (wheel)

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

Total release size: 203.4 kB

Release files / shotlog_mcp-0.1.0.tar.gz

Download URL shotlog_mcp-0.1.0.tar.gz
Size 195.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c796f217bfd20c9735daf4e60eb8c4ed8dfd1a7e6f8c2eb0d545ff81e6a08c72
BLAKE2b-256 checksum
How to use checksums
490b48112a0eac2df0300db9d145a5411c3495e8ec4c88fcdf1caae7a40512f5
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.0-py3-none-any.whl

Download URL shotlog_mcp-0.1.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3d10aabb41a21b96f0280dfd73cb69d4e1dbd8d1705527bc411ef34d3a8fc8d
BLAKE2b-256 checksum
How to use checksums
cc3ce2a77a12ed5a05d8ef94d987a025cce5a3cbd95435be0cb2ecd94752a4b4
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.0

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.0 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