Skip to main content
ClaudeWave

Free Windows screenshot, annotation, OCR and screen recorder, plus a CLI and MCP server so scripts and AI agents can capture, read and record the screen. Alternative to Snagit/Greenshot.

MCP ServersOfficial Registry13 stars6 forks● C#MITUpdated today
ClaudeWave Trust Score
95/100
✓ Verified
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Last scanned: 10/4/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/dimitar-radenkov/Pointframe
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/dimitar-radenkov/Pointframe and follow its README for install instructions.
Use cases

MCP Servers overview

# Pointframe

<p align="center">
  <a href="https://dimitar-radenkov.github.io/Pointframe/">
    <img src="website/app-icon.png" alt="Pointframe icon" width="48" height="48">
  </a>
</p>

<h1 align="center">Pointframe</h1>


<p align="center">
  <b>A free Windows screenshot and recording tool built for fast bug reports, walkthroughs, and support replies.</b><br>
  Capture a region, a window, or a whole monitor — annotate, blur, record to MP4/GIF, and extract text with OCR.<br>
  Drive it from the tray app, the standalone CLI, or an AI agent over MCP.
</p>

<p align="center">
  <b>🌐 <a href="https://dimitar-radenkov.github.io/Pointframe/">Visit the Official Website</a></b>
</p>

<p align="center">
  <a href="https://github.com/dimitar-radenkov/Pointframe/actions/workflows/ci.yml"><img src="https://github.com/dimitar-radenkov/Pointframe/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
  <a href="https://codecov.io/gh/dimitar-radenkov/Pointframe"><img src="https://codecov.io/gh/dimitar-radenkov/Pointframe/branch/master/graph/badge.svg" alt="codecov"></a>
  <a href="https://github.com/dimitar-radenkov/Pointframe/releases/latest"><img src="https://img.shields.io/github/v/release/dimitar-radenkov/Pointframe?color=success" alt="Latest release"></a>
  <a href="https://github.com/microsoft/winget-pkgs/tree/master/manifests/d/DimitarRadenkov/Pointframe"><img src="https://img.shields.io/winget/v/DimitarRadenkov.Pointframe?label=winget&color=blue" alt="winget"></a>
  <a href="https://github.com/dimitar-radenkov/Pointframe/releases"><img src="https://img.shields.io/github/downloads/dimitar-radenkov/Pointframe/total?label=downloads&color=purple" alt="Downloads"></a>
  <a href="https://github.com/dimitar-radenkov/Pointframe/releases/latest/download/Pointframe.Cli-win-x64.zip"><img src="https://img.shields.io/github/downloads/dimitar-radenkov/Pointframe/latest/Pointframe.Cli-win-x64.zip?label=cli%20downloads&color=orange" alt="CLI downloads"></a>
  <a href="https://github.com/dimitar-radenkov/Pointframe/releases/latest/download/Pointframe.Mcp-win-x64.mcpb"><img src="https://img.shields.io/github/downloads/dimitar-radenkov/Pointframe/latest/Pointframe.Mcp-win-x64.mcpb?label=mcp%20downloads&color=orange" alt="MCP downloads"></a>
</p>

<p align="center">
  <b>☕ If Pointframe saves you time, consider <a href="https://paypal.me/DimitarRadenkov">buying me a beer</a>:</b><br>
  <a href="https://paypal.me/DimitarRadenkov"><img src="https://img.shields.io/badge/PayPal-donate-blue?logo=paypal" alt="PayPal"></a>
  <a href="https://revolut.me/dimitarradenkov"><img src="https://img.shields.io/badge/Revolut-donate-black?logo=revolut" alt="Revolut"></a>
</p>

<p align="center">
  <video src="https://github.com/user-attachments/assets/bb6387d7-5ab9-4e91-91d5-fbe539a7ad13" width="100%" controls autoplay loop muted></video>
</p>

## 🚀 Quick Start

Install in seconds with the Windows Package Manager:

Starting with the `5.0` release line, the winget package ID is `DimitarRadenkov.Pointframe`.

```powershell
winget install DimitarRadenkov.Pointframe
```

*Prefer a manual install? Download the latest installer from the [Releases](https://github.com/dimitar-radenkov/Pointframe/releases) page.*

1. Install Pointframe with `winget install DimitarRadenkov.Pointframe` or download the latest installer from [Releases](https://github.com/dimitar-radenkov/Pointframe/releases).
2. Press `Print Screen` to capture a region.
3. Add arrows, text, or blur and then copy, save, pin, or record.

You can complete your first capture workflow in under a minute.

For the standalone command-line workflow, installation, artifact verification,
exit codes, and troubleshooting, see the dedicated
[Pointframe CLI README](docs/cli/README.md).

## Pointframe CLI

A self-contained Windows CLI for monitor and window discovery, PNG screenshots of a
monitor, a sub-region, or a single window, on-screen text extraction via OCR, and
whole-monitor MP4 recordings. The Pointframe desktop app, the .NET runtime, and the
.NET SDK are not required.

```powershell
winget install DimitarRadenkov.Pointframe.Cli
pointframe displays
```

winget adds a `pointframe` command to `PATH`. Each GitHub Release also includes
`Pointframe.Cli-<version>-win-x64.zip` for a manual install: extract it and run
`Pointframe.Cli.exe`.

The CLI requires an interactive Windows desktop session. It cannot capture a user's
desktop from a Windows service (session 0).

```powershell
.\Pointframe.Cli.exe displays
.\Pointframe.Cli.exe windows
.\Pointframe.Cli.exe capture --monitor '\\.\DISPLAY1' --output .\shot.png
.\Pointframe.Cli.exe capture --monitor '\\.\DISPLAY1' --region 100,100,800,600
.\Pointframe.Cli.exe capture-window --window-id 12345678
.\Pointframe.Cli.exe ocr --monitor '\\.\DISPLAY1'
.\Pointframe.Cli.exe ocr-window --window-id 12345678
.\Pointframe.Cli.exe record --monitor '\\.\DISPLAY1' --seconds 10 --output .\take1.mp4
```

Use the exact `monitorName` emitted by `displays`, or a window handle emitted by
`windows`. Every command other than `--help`/`--version` writes a single-line JSON
response to standard output on both the success and the failure path, so a script can
parse it the same way either way: success exits `0`, a runtime failure exits `1` and
carries an `Error.Code` (`target_not_found`, `target_not_capturable`, `invalid_region`,
`invalid_output_path`, `canceled`, or `capture_failed`), and invalid arguments exit `2`
with usage text on standard error.

After installing the CLI, it can install and verify the standalone MCP server
for VS Code without manual archive extraction or JSON editing:

```powershell
pointframe mcp install --client vscode
pointframe mcp doctor --client vscode
```

The installer verifies the published MCPB SHA-256, preserves unrelated VS Code
MCP entries, creates a configuration backup, and performs a real MCP handshake.
Use `pointframe mcp install --client vscode --dry-run` to validate the download
and proposed configuration without persisting changes. See the
[CLI guide](docs/cli/README.md#install-and-verify-the-mcp-server-for-vs-code)
for status, diagnostics, output contracts, and current client support.

Pass `--output <file>` (`-o`) to any command that produces a file to choose the exact
path to write; parent directories are created for you. Without it, screenshots and their
metadata sidecars are saved under `%LOCALAPPDATA%\Pointframe\Screenshots` and recordings
under `%LOCALAPPDATA%\Pointframe\Recordings`, each with a generated timestamped name.

`ocr` captures the monitor the same way `capture` does, then runs Windows OCR against
the captured image and adds a `RecognizedText` field to the JSON output (`null` when no
text is found or no OCR language pack is installed). `capture-window` and `ocr-window` do
the same for a single window by handle, using visible screen-rectangle semantics: an
occluding window may appear in the capture, and minimized, zero-size, off-screen, and
multi-monitor-spanning windows are rejected. `record` starts a direct MP4 recording, waits
for the requested `--seconds` (or an earlier Ctrl+C for a graceful early stop that still
finalizes and reports the artifact), then writes the combined session/artifact JSON;
recordings require `ffmpeg.exe` on `PATH`, via `POINTFRAME_FFMPEG_PATH`, or bundled next
to the executable.

## Pointframe MCP Server

Pointframe also ships a standalone MCP server for agents that need to inspect the Windows desktop and produce verifiable screenshot or recording artifacts. The MCP server uses `Pointframe.Engine` directly; it does not start the Pointframe tray application, create a WPF overlay, or require the full Pointframe installer.

The standalone host requires an interactive Windows desktop session. It is a local stdio server intended to be launched by VS Code, Copilot, or another MCP client.

### MCP capabilities

The server exposes:

- 🔎 `search_captures` — search the local catalog of saved screenshots by filename or indexed OCR text. Results may be incomplete while newly discovered images are indexed.
- 🗂️ `get_capture` — retrieve a catalog artifact by its opaque ID, including metadata and an optional downscaled inline preview. It never accepts arbitrary local paths.
- 🖥️ `list_displays` — return monitor identifiers, physical pixel bounds, and DPI scales.
- 🪟 `list_windows` — return visible top-level windows with handles, titles, process names, bounds, and containing monitor names. Window handles are session-local and temporary.
- 📸 `capture_monitor` — capture a named monitor, or an optional monitor-local sub-region of it, and return a PNG artifact plus metadata. The captured image is also returned inline as an image block (downscaled to at most 1600 px on its longest edge) so the calling model can see it directly; pass `includeImage: false` to get metadata only.
- 📸 `capture_window` — capture the visible screen rectangle of a window by its handle from `list_windows`. Occluding windows may appear; minimized, off-screen, and multi-monitor-spanning windows are rejected. Returns the image inline like `capture_monitor` unless `includeImage: false`.
- 🔤 `read_text_from_monitor` — capture a named monitor (optionally a sub-region) and run OCR against it, returning the PNG artifact plus recognized text (`null` when no text is found or no OCR language pack is installed). The captured image is also returned inline unless `includeImage: false`.
- 🔤 `read_text_from_window` — capture a window by handle and run OCR against it. Same screen-rectangle capture semantics as `capture_window`, and the same inline-image behavior.
- 🎥 `start_recording` — start a whole-monitor MP4 recording. `redactionRegionsCaptureLocalPixels` is optional; omit it to record without redaction.
- ⏹️ `stop_recording` — stop the active recording and return the finalized MP4 artifact, metadata, and event sidecar references.
- ⏱️ `get_recording_status` — report whether a recording is currently active and, if so, its session details and elapsed duration;
ai-agentsannotationclaudeclidotnetmcpmcp-servermodel-context-protocolocrproductivityscreen-capturescreen-recordingscreenshotsnipping-toolwindowswingetwpf

What people ask about Pointframe

What is dimitar-radenkov/Pointframe?

+

dimitar-radenkov/Pointframe is mcp servers for the Claude AI ecosystem. Free Windows screenshot, annotation, OCR and screen recorder, plus a CLI and MCP server so scripts and AI agents can capture, read and record the screen. Alternative to Snagit/Greenshot. It has 13 GitHub stars and its last recorded update is dated 2026-10-03.

How do I install Pointframe?

+

You can install Pointframe by cloning the repository (https://github.com/dimitar-radenkov/Pointframe) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is dimitar-radenkov/Pointframe safe to use?

+

Our security agent has analyzed dimitar-radenkov/Pointframe and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains dimitar-radenkov/Pointframe?

+

dimitar-radenkov/Pointframe is maintained by dimitar-radenkov. The last recorded GitHub activity is dated 2026-10-03, with 4 open issues.

Are there alternatives to Pointframe?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy Pointframe to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: dimitar-radenkov/Pointframe
[![Featured on ClaudeWave](https://claudewave.com/api/badge/dimitar-radenkov-pointframe)](https://claudewave.com/repo/dimitar-radenkov-pointframe)
<a href="https://claudewave.com/repo/dimitar-radenkov-pointframe"><img src="https://claudewave.com/api/badge/dimitar-radenkov-pointframe" alt="Featured on ClaudeWave: dimitar-radenkov/Pointframe" width="320" height="64" /></a>

More MCP Servers

Pointframe alternatives