DeskManager — MCP Connector
Your own Windows PC as a tool for your AI assistant: files, terminal, browser, desktop applications and email — running on your machine, under your account, with confirmations for anything that cannot be undone.
| Connector type | Remote MCP server (Streamable HTTP) — one private URL per PC, generated by the DeskManager app |
|---|---|
| Authentication | OAuth 2.1 with PKCE (S256). Discovery: /.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server |
| Runs on | Windows 10/11 (the user's own PC). The server component only handles licensing, updates and optional Telegram notifications |
| Tools | 13 tools, every one annotated with readOnlyHint / destructiveHint |
| Support | [email protected] |
| Privacy | protime.it/privacy |
1. How it works
DeskManager installs on a PC and starts a local MCP server. It opens an encrypted outbound tunnel (Cloudflare) so that the PC is reachable at a private hostname such as https://mcp-xxxxxxxx.protime.it/mcp without opening any router port. An MCP client (Claude, or any OAuth-capable client) connects to that URL, completes the OAuth flow on the user's own machine, and from then on calls tools that execute on that PC. Protime's servers never see tool inputs or outputs.
2. Connecting in five steps
- Install DeskManager on the Windows PC (installer from your licence email; it self-installs to
%APPDATA%\DeskManager). - Open the DeskManager dashboard → Connection. Enter the licence token. The tunnel registers itself and shows the PC's MCP URL.
- In Claude: Settings → Connectors → Add custom connector, paste the URL.
- Claude opens the authorisation page served by that PC. Log in, approve. Done — the connection persists across conversations.
- In any chat, call
help()once: it returns the overview and, from then on, every wrong command answers with the exact help call to fix it.
3. Tools
Read tools and write tools are deliberately split, so a client can allow the first group freely and gate the second.
| Tool | What it does | Hint |
|---|---|---|
help | Reference guide; help(section=…, query=…) returns only the entries you need | read-only |
system | Sessions, PC status, screenshots, health, clipboard, send file via Telegram | read-only |
terminal_reader / terminal_executor | Read output of persistent shell tabs / run commands and scripts (PowerShell, cmd, WSL) | read-only / destructive |
file_reader / file_writer | Read, list, search, diff any file type (PDF, DOCX, XLSX, images…) / write, edit, move, trash, download | read-only / destructive |
browser_reader / browser_action | Built-in browser (Playwright) or, with the optional extension, the user's own Chrome: read pages, elements, tables; click, type, fill forms, wait, dismiss dialogs | read-only / destructive |
software_reader / software_action | Desktop UI automation via Windows UI Automation: read windows and controls / click, type, launch | read-only / destructive |
email_reader / email_writer | IMAP/SMTP accounts the user configures locally: read, search / send, reply, move | read-only / destructive |
telegram | Send yourself a message or file, set a timer, watch a terminal tab for a keyword | destructive |
4. Safety model
- Confirmation gates. Permanent deletion, process kill, elevated commands and unrecognised commands require
confirmed=true; permanent deletion additionally asks the user through the dashboard or Telegram. - Recycle Bin by default.
trashis free;deleteis gated. - Command filter. A configurable security level blocks destructive shell commands (format, diskpart, recursive delete…) and flags obfuscation patterns in scripts.
- The user's browser is opt-in. Access to the real Chrome requires a separate extension the user installs; the AI is instructed to ask before using it.
- Everything is local. Tool inputs and outputs travel only between the MCP client and the user's PC.
5. Example session
help() → overview + how to open a session system(action='session', command='new') → session_id file_reader(session_id=SID, action='list', path='C:\Users\Test\Documents') browser_action(session_id=SID, action='open', url='https://example.com') browser_reader(session_id=SID, action='extract_table') terminal_executor(session_id=SID, command='Get-Process | Sort CPU -desc | Select -First 5')
6. Testing the connector (for reviewers)
7. Endpoints
| Path | Purpose |
|---|---|
POST /mcp | MCP endpoint (Streamable HTTP). Unauthenticated requests receive 401 with WWW-Authenticate: Bearer resource_metadata=… |
GET /.well-known/oauth-protected-resource | RFC 9728 resource metadata |
GET /.well-known/oauth-authorization-server | RFC 8414 authorisation server metadata (PKCE S256, authorization_code) |
GET /mcp/authorize, POST /mcp/token | OAuth authorisation and token endpoints, served by the user's PC |
GET /health | Liveness |
8. Support and reporting
Email [email protected]. Security reports are read first; please include the DeskManager build number shown in the dashboard.