FreeRDC — Private Desktop MCP Bridge for ChatGPT
MCP serverSearchSafe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use FreeRDC — Private Desktop MCP Bridge for ChatGPT
From the project's README
As published by danielarif26/freerdc in README.md.
FreeRDC Community Edition (CE) is a loopback-first MCP bridge for giving a remote MCP client narrowly scoped access to selected local resources. It is designed to run locally and can be reached privately through OpenAI Secure MCP Tunnel. The CE is not listed in a public connector directory and does not include a hosted relay or account service.
What is included
- MCP protocol schemas, canonical errors, redaction, capability negotiation, and an authenticated Ed25519 wire handshake.
- Guarded filesystem read/search/mutation APIs with containment, denylist, size limits, dry-run support, and a kill switch.
- An argv-only process manager and RPC dispatcher. The production CLI leaves process tools disabled.
- A loopback MCP HTTP host, authenticated WebSocket agent transport, backpressure, device registry, audit log, management tools, and OAuth Authorization Code + PKCE support for deployments that expose those routes directly.
- Reconnect with bounded backoff and heartbeat liveness. Mutating RPCs are not replayed across connector generations.
- A production
freerdc-serverruntime with explicit roots, a loopback-only listener, owner-only state/audit files, and aSTOPsentinel.
Acceptance status
The previously accepted implementation baseline was 395/395 tests passing. After the release security tests were added, the v0.1.0 gate is 408/408 passing, with typecheck and build also passing. The local Secure MCP Tunnel compatibility gate has passed in the recorded evidence.
Hosted tunnel setup, a restricted runtime key, tunnel doctor, managed runtime
health, and stop/reconnect no-replay checks are recorded. A genuine ChatGPT UI
tool invocation remains pending, so P7 is not fully PASS and your existing
desktop-control service must remain available until that evidence is collected.
See docs/ACCEPTANCE.md.
Packages
@freerdc/protocol: wire schemas, RPC contracts, errors, redaction, and negotiation.@freerdc/guard: path containment, protected-path denylist, and concurrency primitives.@freerdc/agent: filesystem, process policy/manager, RPC dispatcher, authenticated connector, and reconnect supervisor.@freerdc/server: MCP tools/HTTP host, wire hub, OAuth, audit, and the production runtime/CLI.
Build and test
npm run typecheck
npm run build
npm test
Install from GitHub
The source installers require Node.js 22 or newer, npm, and Git. They install
into a user-owned application-data directory, run npm ci and the build, and
create a freerdc-server launcher without adding telemetry or payment code.
Security warning: these source installers currently follow the repository's
default branch (main), which is mutable. For higher assurance, review and pin
a specific commit or tag with FREERDC_REF rather than following the branch.
macOS or Linux:
curl -fsSLo install.sh https://raw.githubusercontent.com/danielarif26/freerdc/main/install.sh
sh install.sh
For a reviewed tag or commit:
FREERDC_REF=<reviewed-tag-or-commit> sh install.sh
Windows PowerShell:
Invoke-WebRequest https://raw.githubusercontent.com/danielarif26/freerdc/main/install.ps1 -OutFile install.ps1
.\install.ps1
For a reviewed tag or commit:
$env:FREERDC_REF = '<reviewed-tag-or-commit>'
.\install.ps1
Add the launcher directory printed by the installer to your user PATH if you
want to invoke freerdc-server by name. To remove only an installer-managed
copy, rerun the downloaded script with --uninstall on macOS/Linux or
-Uninstall on Windows. Both uninstallers verify their management marker and
refuse to remove an unrecognized directory.
Run locally
npm run build
node packages/server/dist/src/cli.js --root /absolute/allowed/root --port 8787
The CLI binds only to 127.0.0.1, requires at least one explicit root, stores
state under ~/.freerdc by default, and does not expose process tools. Create
~/.freerdc/STOP to activate the kill switch. Choose the narrowest root that
fits the task; never add private credentials, caches, or unrelated project
directories to an allowlist.
ChatGPT connectivity
Use OpenAI Secure MCP Tunnel for private remote access; do not expose the local
listener directly to the public internet. The CE can be used with a
workspace-scoped tunnel and a restricted runtime key, but it is not a
directory-listed app. A future public hosted relay and account service would
be required for a one-click directory experience comparable to Remote Desktop
Commander. Follow docs/OPENAI-INTEGRATION.md
and docs/DEPLOYMENT.md.
Safety invariants
- The MCP listener remains loopback-only; remote access uses the private tunnel boundary.
- Protected paths are rejected by guard policy before filesystem access.
- Existing desktop-control tools/state are not reused as FreeRDC state and are retained until FreeRDC is accepted.
- Secret values belong in environment or file references, never in this repository, profiles, shell history, or tunnel metadata.
- The implementation does not require a paid model/API request to run its local tests.
FreeRDC Community Edition is released under
AGPL-3.0-or-later. See docs/EDITIONS.md for
the CE scope and SECURITY.md for responsible reporting.
Advanced
- Delivery
- freerdc MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
- Catalog kind
- mcp-server
- Gateway key
io-github-danielarif26-freerdc- Source
- github.com/danielarif26/freerdc
- Hosted endpoint
https://freerdc.sjaman.deno.net/mcp