hands
Provides Cloudflare tunnel integration to expose the local MCP server publicly, including quick tunnels, token-based tunnels, and named tunnels with stable hostnames.
Offers git tools for version control operations within the workspace, allowing agents to inspect and manage repository state alongside other local development tools.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
hands-mcp
hands is an MCP CLI and local daemon that gives ChatGPT, Claude, Cursor, Cloud Code, and any MCP-capable chat real tools on your machine: read, search, edit, run commands, git, browser automation, and human-in-the-loop approvals.
The chat app is the brain. Hands is the hands. There is no LLM inside the daemon—it exposes Model Context Protocol over HTTP at /mcp.
Demo

Related MCP server: AKIMCP
Works with
ChatGPT — remote MCP / connector settings (URL + bearer token)
Claude — Desktop and apps with MCP support
Cursor — MCP server config
Cloud Code chat — custom MCP URL + bearer in your product’s MCP settings
Any MCP client —
hands connect --client generic
Step-by-step for each client: docs/CONNECTORS.md.
How it works
flowchart LR
subgraph chats [AI_chats]
ChatGPT[ChatGPT]
Claude[Claude]
Cursor[Cursor]
Other[Any_MCP_client]
end
subgraph hands [hands_on_your_machine]
MCP["HTTP /mcp"]
UI["Approval UI :4877"]
Tools[Host_tools]
end
Tunnel[Cloudflare_tunnel_optional]
chats -->|Bearer_token| Tunnel
Tunnel --> MCP
chats -->|localhost| MCP
MCP --> Tools
UI --> ToolsRequirements
Node.js 20+
pnpm 10.x
Optional: cloudflared for public URLs (docs/TUNNEL.md)
Optional: Chromium for browser tools (
npx playwright install chromium)
Install
git clone https://github.com/abhinavshyju/hands-mcp.git
cd hands-mcp
pnpm install
pnpm run install:globalAdd ~/.local/bin to your PATH if needed:
export PATH="$HOME/.local/bin:$PATH"Run
From any project directory:
hands .This creates ~/.hands, writes .hands/config.json in the project if missing, registers the workspace, starts the MCP server, and opens the interactive approval console.
Open the observe-and-approve UI at http://127.0.0.1:4877 (file tree, Monaco, diffs, audit log, terminal, checkpoints).
Headless or step-by-step:
hands init
hands workspace add .
hands start --no-tunnel
hands review # approvals in another terminalInside this repo you can use pnpm hands -- …; elsewhere use the global hands binary.
Enable Tab completion: eval "$(hands completion bash)" (see docs/CLI.md).
Connect your chat (~60 seconds)
Start the daemon (if not already running):
hands .Choose auth (default
nonefor local use; use bearer or oauth before a public tunnel):hands auth mode bearer # or: none | oauth hands token new my-laptop # when using bearerPrint the MCP URL:
hands connect --client generic # or: hands connect --client claude # or: hands connect --client cursorIn your chat product’s MCP / Connectors settings, add:
URL:
http://127.0.0.1:4877/mcp(or your tunneledhttps://…/mcp)Auth:
Authorization: Bearer YOUR_TOKENwhenauth.modeisbearer, or OAuth discovery whenauth.modeisoauth(see docs/CONNECTORS.md)
For a temporary public URL (no Cloudflare account):
hands tunnel quick
# or: hands . --tunnel-quickFull recipes: docs/CONNECTORS.md. Stable hostname: docs/TUNNEL.md.
Why Hands
Safety modes —
readonly,review(approve edits/shell),auto(still jailed and denylisted)Path jail — workspace-only paths; blocks secrets and sensitive dotfiles
Shadow-git checkpoints — restore file snapshots without touching your repo
HEADRich tools — read/search/edit, processes, git, quality helpers, Playwright browser tools
Custom plugins — drop tools in
~/.hands/tools/(docs/PLUGINS.md)
Details: docs/SAFETY.md, docs/THREAT-MODEL.md.
Tools
See docs/TOOLS.md for the full tool reference.
Documentation
Doc | Topic |
All | |
ChatGPT, Claude, Cursor, Cloud Code, generic MCP | |
Cloudflare quick, token, and named tunnels | |
MCP tool catalog | |
Modes, jail, approvals, checkpoints | |
Custom tools | |
Common issues | |
Default branch and repo settings | |
MCP IDE fork integration | |
Security notes |
Repository layout
packages/shared zod schemas
packages/core jail, edits, checkpoints, search, processes, approvals, tunnel
packages/tools MCP tool implementations + plugin loader
packages/server Fastify + MCP Streamable HTTP + control API
packages/cli hands binary
apps/ui React approval UIDevelopment
pnpm check # lint, format check, typecheck, test
pnpm format # Prettier (also on save if you use the recommended VS Code extension)
pnpm test
pnpm buildOpen the repo in Cursor/VS Code and install the recommended Prettier extension (.vscode/extensions.json) for format-on-save.
CI runs on push/PR to main via .github/workflows/ci.yml.
Contributions welcome—see CONTRIBUTING.md and run pnpm check before opening a PR.
Upgrading from editer
If you used the previous editer CLI and ~/.editer layout:
Stop any running daemon (
editer stopor kill the old process).Install the new binary:
pnpm run install:global(provideshands).On first run, Hands renames
~/.editer→~/.handsand project.editer→.handswhen the new paths do not exist yet.Re-paste MCP settings from
hands connect(connector JSON key is nowhands, notediter).Remove the old shim at
~/.local/bin/editerif you no longer need it.
License
Related
hands-mcp can be embedded as a git submodule in MCP IDE (a Code-OSS workbench that supervises the daemon). See docs/MCP-IDE.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT and other MCP clients to browse, search, edit and upload files, run commands and interactive terminals, inspect Git history and worktrees, dispatch coding agents, and install composable plugins within locally registered workspaces. Requests execute under the user's own machine with per-request approval or auto-approval, keeping files, tasks and results local unless explicitly returned.1MIT
- FlicenseNot gradedqualityAmaintenanceEnables web-based AI chat clients to securely operate a local machine through one OAuth-gated MCP endpoint, exposing governed tools for file read/write/edit, whitelisted shell commands, search, Git, SQLite, browser automation, DevTools, background tasks, localhost fetches, clipboard, notifications, ports, and Postman. It lets users build and edit projects, inspect databases and local APIs, drive browser workflows, and manage long-running jobs from a browser or mobile device without granting unrestricted shell access.-
- FlicenseNot gradedqualityAmaintenanceExposes an OAuth-gated MCP endpoint with a governed suite of 38 tools that let web-based AI chat clients work directly on your local machine — reading and editing files, running whitelisted shell commands, searching, using Git and SQLite, automating browsers, driving DevTools, managing background tasks and ports, and reaching localhost services, clipboard, and notifications. A strict command whitelist and folder-scoped access keep that remote operating surface safe by default.-
- FlicenseNot gradedqualityAmaintenanceConnects web-based AI chat clients such as Claude, ChatGPT, and Grok to a local machine through a single OAuth-gated MCP endpoint so they can browse, read, write, and edit files, run whitelisted shell commands, search content, use Git, query SQLite, drive browsers and DevTools, and manage background tasks, ports, and clipboard. It also exposes localhost and LAN services via a protected HTTP client, letting remote or mobile clients debug and operate local projects without granting unrestricted shell access.-