Solisk Pc Mcp

io.github.KyzenkmsPublished by GitHub account Kyzenkmsv1.0.4Updated Oct 31, 2026

Connect AI clients to local files, shell and desktop tools, with an optional self-hosted relay.

Overview

AI-generated overview

Local MCP server that gives an AI client access to a machine's files, shell and Windows desktop tools, with an optional self-hosted relay.

What you can do
  • Run shell commands and work with local files through the server's portable tool set
  • Control the Windows desktop: mouse and keyboard hooks, screenshots and native dialogs (Windows only)
  • Expose the tool set to AI clients over a local HTTP endpoint, a Cloudflare tunnel, a tailnet or a hosted relay
  • Manage access with scoped client keys, key rotation, remembered devices and session limits
  • Inspect and operate the server through a CLI, a Windows GUI control room or a web dashboard
When to use it
Useful when you want an AI assistant to act on your own computer — running commands, reading and writing local files, or driving a Windows desktop — and you want to reach it from a remote client such as Claude or ChatGPT through a relay or tunnel.
Requirements
Node 22.5 or later for the CLI, installed globally from npm or run with npx; Windows 10/11 x64 for the desktop GUI and the full 97-tool set. Linux and macOS get 45 portable tools plus shell execution. Setup asks for a room name, owner key and approval mode; no Docker or reverse proxy is needed for localhost use.
Before you install
This grants an AI shell and file access on your machine, and on Windows desktop control; treat the owner key and scoped client keys as sensitive. Exposing the server through a relay, Cloudflare tunnel or tailnet makes it reachable from outside, so review the approval mode and key scoping first. The Windows installer is unsigned, so SmartScreen will warn. Destructive actions such as funnel, turbo and URL regeneration ask for confirmation.

Installation

In SourceWeft

  1. Open Solisk Pc Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Let your AI work with files and apps on your PC

Solisk connects MCP-compatible AI clients to your machine. Read a project file, inspect a Git diff, or use Windows desktop tools without building a separate integration for each app. Start locally; use the hosted relay or run your own relay when the client needs a remote URL.

  • Local or self-hosted: the runtime and relay are MIT-licensed and included here.
  • A Windows control room: manage connections and approve supported shell commands locally.
  • CLI on Windows, Linux and macOS: capabilities differ by platform; see OS support.

PC access is powerful. Use a test folder first and read the trust boundaries before granting shell or desktop access. Approval is not a universal gate for every tool.

See the first win

Run a complete local workflow before connecting a real project or remote relay:

bash
node examples/first-win.js

The demo uses synthetic data and real MCP stdio calls to read a CSV, write and verify a Markdown report, then prove a path outside the allowed folder is denied. No account, model API key, relay or network is required. See LAUNCH.md for the recording script, interactive product film and launch copy.

Open the interactive product film at assets/launch/solisk-brand-film.html for the visual overview, then run the technical demo to verify the local MCP path.

Install

bash
npm install -g solisk      # requires Node 22.5+solisk setup              # configure identity and approval mode

Then choose one connection path below. For Windows users who prefer an installer, skip npm and use the Windows GUI.

Local client on the same machine

For an MCP client that accepts command-based servers, add this entry to its MCP configuration. The client starts and stops Solisk; don't also start an HTTP server for this connection.

json
{  "mcpServers": {    "solisk": {      "command": "solisk",      "args": ["--mode=stdio"]    }  }}

If the client cannot find solisk, restart it after installation or configure the absolute path to the installed command. Stdio uses the permissions of the local process, not a bearer-key login. It does not open the web dashboard or a relay.

Hosted or HTTP clients

Start the server and leave this terminal running:

bash
solisk --mode=http

In a second terminal, open the control room:

bash
solisk dashboard

Use the MCP URL shown by the running instance for remote clients. For local HTTP, the default endpoint is http://127.0.0.1:3000/mcp and requires authentication. Use solisk --mode=http --no-relay to disable the hosted relay for that run; also leave Cloudflare and Tailscale exposure off for a local-only setup.

Windows GUI

  1. Open the latest release and download its PC Control MCP Setup … .exe asset and SHA256SUMS.txt. An MSI is not included in every release.
  2. Run it: point-and-click control room, same engine as the CLI.
  3. Already have the CLI? solisk gui setup --installer "<path-to-downloaded-installer.exe>" installs it silently.
  4. On Linux/macOS, solisk gui refuses by design and points you to the web dashboard.

[!WARNING] The Windows installer is unsigned and may trigger SmartScreen. Download only from the official release and compare its SHA-256 hash with SHA256SUMS.txt before deciding whether to run it. A checksum is not a publisher signature. Older release assets may still carry a 1.0.0 filename; consult the release notes rather than guessing a download URL.

Connect an AI

For a remote connector, use your instance's URL and complete the client's authorization flow. Keep the room key out of chat messages and screenshots. Available connector features depend on the client and account.

mermaid
flowchart LR    A[Copy MCP URL<br/>from your running instance] --> B[Add a remote MCP connector]    B --> C[Approve once<br/>consent + room key]    C --> D[Verify tools are listed<br/>then try a read-only task]    style D fill:#4fd1b5,color:#03211b

[!NOTE] If discovery fails, first check that the runtime and selected connection path are online. If a client cached an earlier failed connection, removing and re-adding the connector may help; it is not a substitute for checking the server error.

Your first successful task

Choose a non-sensitive text file in a folder you have allowed, then ask:

Use Solisk's read_file tool to read the file at the absolute path I provide and summarize it in three bullets. Do not run shell commands or change files.

Success means the client lists Solisk's tools, read_file returns that file's contents, and the summary matches. If access is denied, correct the allowed path or key scope rather than switching to Turbo. Next, try inspecting a Git diff in a test repository. Desktop automation can wait until this basic flow works.

Security model

#ControlBoundary
1HTTP authenticationOwner/scoped keys and OAuth authenticate HTTP clients; remembered device cookies also authorize web-console access. Stdio trusts the process launching it.
2Authenticated relayTLS terminates at the relay, which can see forwarded requests and results. There is no client-to-PC end-to-end encryption.
3Relay OAuthPKCE S256, redirect checks and resource-bound tokens protect the relay authorization flow.
4Credential storageRelay API keys are scrypt-hashed. Local config keys and local OAuth tokens are stored in plaintext files; protect the profile and backups.
5Tool permissionsUse scoped keys and file-path rules, but do not treat them as an OS sandbox around shell commands or desktop automation.
6Approval and auditApproval behavior depends on the tool and runtime. Tool audit records include arguments, which may contain sensitive data.

Full policy: SECURITY.md · found something? Security advisory — not a public issue.

Everything, live

Four paths inHosted relay · Cloudflare tunnel (quick or your own domain) · tailnet · web dashboard. Each toggles live; killing the dashboard returns 404 on /app — not just tailnet.
Honest sessionsOne live AI reads 1. Ghost sessions expire after 10 idle minutes; every surface (GUI, CLI, API) reads the live count.
Keys that fitScoped client keys, fail-closed defaults, zero-downtime rotation, 30-day remembered devices.
No-fight runtimeCLI attaches to a running GUI, borrows its key transparently, and refuses to boot a second server over it.
UpdatesIn-app release notes, skip-a-version supported, mandatory releases cannot be skipped.

Architecture

mermaid
flowchart TB    AI["AI client<br/>Claude.ai / ChatGPT / Cursor"]    AI -->|MCP URL + OAuth 2.1<br/>PKCE S256, resource-bound tokens| RELAY    subgraph RELAY["Cloud relay"]        R1[rooms · tokens · rate limits<br/>scrypt-hashed keys]    end    RELAY -->|one outbound WebSocket per PC<br/>takeover-protected| PC    subgraph PC["Your machine :3000"]        P1[StreamableHTTP · 97 tools · 5 sessions max]        P2[Cloudflare tunnel<br/>quick or your domain]        P3[tailnet serve · web dashboard /app]    end

One config file, one event bus, one session store. Thin faces (Electron, CLI, web shim) never own state.

OS support

OSCLI (solisk)Web dashboard (/app)GUITools
Windows 10/11 x64✅ local + relay + tunnel✅✅ full control room97 native
Linux✅ server · stdio · tunnels · Tailscale✅❌ — solisk gui refuses, points to /appPortable tools + shell_exec
macOS✅ server · stdio✅❌ — samePortable tools + shell_exec + native screenshot/input implementations

Windows-only implementations stay off elsewhere. macOS includes native screenshot and input tools that need Screen Recording and Accessibility permissions. Run solisk --list-tools for the actual inventory on your machine. Platform support does not imply identical tool behavior or security coverage.

Requirements

  • Node ≥ 22.5 for the CLI.
  • Windows 10/11 x64 for the GUI.
  • Nothing else — no Docker, no reverse proxy needed for localhost use.

Self-host the relay

bash
ssh root@YOUR_VPSbash -c "$(curl -fsSL https://raw.githubusercontent.com/Kyzenkms/solisk-pc-mcp/main/self-hosted-setup/vps/install.sh)"
What the script does

Picks your domain type (yours or sslip.io for testing), then runtime (Docker or PM2), then prints the room + key to paste into the app. Backups, firewall, updates: self-hosted-setup/README.md.

CLI reference

solisk is the command — pc-control remains as a compatibility alias.

Daily
solisk dashboard [--no-open]      web console for the running serversolisk doctor [--fix]             11 health checks — 0 failing is the goalsolisk logs [--lines N]           live server log, whichever face owns itsolisk setup                      step-by-step onboarding wizardsolisk backup                     config snapshot for restores
Access control
solisk config get|set|validate    ports, modes, domains (secrets refused)solisk rotate-key                 new owner key, zero-downtime rotationsolisk keys list|add|revoke       scoped client keys (fail-closed defaults)solisk devices list|revoke        remembered browserssolisk relay status|retry         room state, redial
Exposure
solisk tunnel off|quick|custom    + login, create, route, forget, statussolisk tailscale status|serve|off funnel is deliberate and confirmedsolisk gui status|setup           detect install, install from .exe or .msi

Every attach command works with zero flags next to a running GUI.

Verify

bash
npm cinpm ci --prefix relay-servernpm test                         # isolated config; unit, HTTP, stdio and relay checksnpm run test:stdio               # registry launch arguments + actual MCP file readnpm run test:package             # extracted npm tarball: dashboard + API auth

Run these from the repository root. CI runs the full suite on Windows and stdio smoke tests on Linux/macOS; release builds depend on those jobs. npm run test:live targets a running server rather than an isolated fixture; use it only deliberately. For an installed runtime, use solisk doctor to inspect local setup. The packaging test needs tar on PATH and reuses the checkout's installed dependencies; it does not replace a fresh-machine install test.

FAQ

One AI shows N sessions
Stale IDs from reconnects — they expire after 10 idle minutes. The live count is exact at connect time.
CLI says key refused next to a running GUI
It borrows the GUI key automatically and tells you (fingerprint shown). solisk gui status shows both fingerprints.
After restart it shows 0 sessions
Correct — sessions live in memory. The moment the client re-initializes, the count appears. Grants and keys persist; nobody re-authenticates.
Can I run the GUI on Linux?
No — the control room is Windows-only by design. On Linux and macOS use the CLI plus the web dashboard at /app, which is the same control room in a browser.

MIT · Solisk PC Control MCP · Releases · solisk.org

Source: README.md at commit e38263f

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the server did not answer in time.

Version history

2
  1. v1.0.4LatestOct 31, 2026
  2. v1.0.1Oct 20, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts