ownerops-desktop-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ownerops-desktop-mcplist the files in my Documents folder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ownerops-desktop-mcp
Self-hosted personal desktop MCP. The goal is a small, inspectable alternative to a paid desktop-control bridge rather than a feature-for-feature clone.
Clean-v0 tools
get_policylist_directoryread_filewrite_filesearch_filesrun_shell
No delete, registry, privilege-escalation, or arbitrary process-kill tool is exposed.
Related MCP server: Windows Agent MCP Server
Security
Filesystem access is constrained by DESKTOP_MCP_ROOTS. Every file path is resolved before
use and must remain under an allowed root. Sensitive directory names can additionally be denied
with DESKTOP_MCP_DENY_NAMES.
The shell is deliberately restricted:
its working directory must be inside an allowed root
only commands in
DESKTOP_MCP_SHELL_ALLOWmay startshell chaining and redirection are rejected
runtime and output are capped
The shell policy is not an OS sandbox. An allowlisted executable may still reach host resources. For a hard boundary, run under a dedicated low-privilege account or add a container sandbox.
Authentication
HTTP mode supports:
oauth— OAuth authorization code flow, S256 PKCE, dynamic client registration, refresh-token rotation, andoffline_accessbearer— static bearer token for simple MCP clientsnone— local/private testing only
OAuth credentials and tokens live outside Git in .env.
Setup
git clone https://github.com/sionchu/ownerops-desktop-mcp.git
cd ownerops-desktop-mcp
copy .env.example .env
uv sync --dev
uv run pytest
uv run ruff check .Set explicit roots and generate strong OAuth credentials before remote use.
Run
uv run python http_server.pyLocal MCP endpoint: http://127.0.0.1:8765/mcp
start_mcp.cmd is provided for Windows startup/task-scheduler use.
Tailscale Funnel example
If the public base is https://host.example/ownerops:
tailscale funnel --bg --set-path /ownerops http://127.0.0.1:8765RFC 9728 protected-resource metadata is advertised at a root well-known URL. If another
service already owns /, add a narrow route for that exact metadata path as well.
Prefer a private Tailscale path or OpenAI Secure MCP Tunnel when available instead of a public Funnel. If Funnel is used, keep OAuth enabled.
Development
The project tracks MCP Python SDK 2.x and CI runs on Windows with pytest and Ruff.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP catalog with 30 tenant-isolated browser, RAG, AI, mail and media tools.
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceA hardened MCP desktop control server for secure process execution with strict session, buffer, and path limits. It enables reliable desktop automation via any MCP client and emits outcome events for integration with automation flywheels.-
- AlicenseAqualityBmaintenanceEnables secure Windows development automation by providing MCP tools for filesystem access, project builds, restricted PowerShell commands, and approved network fetches.17MIT
- AlicenseAqualityBmaintenanceEnables MCP-compatible AI clients to securely access explicitly authorized local project files and run approved development commands with bounded execution and audit logging.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to securely operate a local machine via MCP or REST, providing file read/write, Playwright browser automation, and shell/service administration.2MIT