DeskMate MCP
A Windows activity recorder with an MCP server for agents: search screenshots, on-screen text and transcripts, and run reports.
- 114 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- DeskMate continuously records screenshots, on-screen text, keystrokes and clipboard contents, which can include passwords and private messages.
- Through MCP the agent reads this whole history and runs local reports and snapshots.
Install
- Works in
Manual install
claude mcp add deskmate -e DESKMATE_API=http://127.0.0.1:3030 -- C:/path/to/env/python.exe -m deskmate mcpFirst run `pip install -e ".[ocr-winrt,audio,vad,mcp]"` and start `deskmate serve`.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- DeskMate continuously records screenshots, on-screen text, keystrokes and clipboard contents, which can include passwords and private messages.
- Through MCP the agent reads this whole history and runs local reports and snapshots.
This is third-party code. Review the repository files before installing.
What it does
DeskMate records, on your Windows computer, screenshots, on-screen text (OCR and the accessibility tree), keyboard, mouse and clipboard events and, optionally, audio transcripts. Everything goes into a local SQLite database and is not uploaded anywhere. Data is available through a browser UI, a REST API and an MCP stdio server. Through MCP, Claude Code, Cursor and Claude Desktop agents get 12 tools prefixed with `deskmate_`: `deskmate_search` searches frames, events and transcripts, `deskmate_recent_frames` and `deskmate_recent_events` show the latest, `deskmate_capture_once` takes a snapshot, `deskmate_ask` answers a question over your context through a local model, and `deskmate_run_app` runs reports such as a day recap and meeting summary. A separate routing mode hints at a next step, such as starting a study session or a meeting recording, but runs it only after you click.
Who it is for. Windows users who want to search their own working history and connect it to Claude Code or Cursor without a cloud.
Good fit when
- You need to recall which window showed a link or an order number yesterday.
- An agent needs a day recap or a to-do list based on your activity today.
- A meeting ran without minutes and you need a summary from recording and transcript.
- You want to ask a natural-language question over your own context and get an answer from a local model.
Not a fit when
- The computer is shared and recording keyboard and screen would affect other people.
- You need a system other than Windows 10 or 11.
- Your organization's security rules forbid storing screenshots.
Example request
Use DeskMate to find in which window I saw the order confirmation number yesterday and show the on-screen text around it.MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
DESKMATE_API- Address of the local DeskMate HTTP API, http://127.0.0.1:3030 by default.
DESKMATE_MCP_ASK_TIMEOUT- Wait time for deskmate_ask in seconds.
Limitations
Windows 10 or 11 and Python 3.10 or newer are required. The MCP server only proxies to the local HTTP API, so `deskmate serve` or `deskmate ui` must already be running. The `deskmate_ask` and `deskmate_run_app` tools call a local model through Ollama and can take minutes. The routing mode needs about 6 GB of memory, and sending email and booking rooms are not automated in it. To wipe data, stop the program and delete `data.db` and the folders in `.deskmate`.
How to disable. Remove the deskmate entry from the MCP client configuration and stop the `deskmate` process. Data lives in `C:\Users\<name>\.deskmate` and is deleted by hand.
FAQ
How do I connect DeskMate to Claude Code?
Start `deskmate serve`, then run `claude mcp add deskmate -e DESKMATE_API=http://127.0.0.1:3030 -- <path to python> -m deskmate mcp` and confirm with `claude mcp list`.
What is stored in the database?
Screenshots, on-screen text, UI events (clicks, focus, typed text, clipboard), audio transcripts and report outputs. Pausing capture stops recording, and `/capture/forget` removes data for a span.
Is a model needed for Q&A?
Yes, a local Ollama server. Without it `deskmate_ask` and `deskmate_run_app` are unavailable, but search and recent-frame tools work.
Why does a call time out?
Slow tools run for minutes. Raise `DESKMATE_MCP_ASK_TIMEOUT` and `DESKMATE_MCP_RUN_APP_TIMEOUT` in the server `env` and `MCP_TOOL_TIMEOUT` in the client.
When do I restart the client?
After editing configuration, restart the client fully: MCP servers load only at startup.
Discussion
No questions or reviews yet.
Related
MCP serversA macOS app that remembers your screen and opens the history to agents over MCP: search, days, work threads, screenshots.
An MCP server that lets an agent work on your computer: terminal and long-running processes, file search and edits, Excel, PDF and DOCX
Local screen and audio recording with natural language search, feeding your activity history to an agent via MCP
Local screen memory for agents: CatchMe records windows, keystrokes and clipboard, then answers questions about that history.
An Android app that records the screen, runs OCR and gives agents read-only MCP access to search and summaries over the LAN.
A skill and MCP server let an agent search and analyze meeting, lecture and stream transcripts kept by the DeLive app
README in short
The project is a local recorder with a thin MCP proxy over an HTTP API. It also has report apps, LoRA training and speech recognition, but for agents the key parts are search and report runs.