PC File Bridge MCP Server
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.
PC File Bridge
A local bridge for approved workspace files with two integration paths:
MCP Developer Mode via
apps/mcp-serverOpenAPI / GPT Actions via the existing bridge-api + relay path
Connecting Claude, ChatGPT, and other MCP clients · Local access control and approvals
Both paths use the same safety layer: auth, path guards, glob filtering, pending-change preview, backups, audit log, and a local dashboard.
Services listen locally by default. Tunneling the MCP endpoint exposes it to network clients; never expose the bridge API or dashboard.
Community security defaults
Read-only by default. Use Dashboard → Access Control to enable file changes and terminal commands independently. Operations require local dashboard approval unless you explicitly disable approval. These policies are enforced by Bridge API, including direct requests from any MCP client.
The first time you configure local approvals, copy the separately generated credential from data/local-admin-token.txt into the dashboard. Do not share this credential with any MCP client. Operation requests expire after 10 minutes. Terminal commands are not OS-sandboxed, and run with your computer account privileges.
Compatible with Claude, ChatGPT, and other clients supporting MCP over HTTP. The client authenticates to the MCP server; approval is handled locally. When a tool returns approvalRequired and approvalId, approve it in the local dashboard and call get_operation_approval to fetch its result.
Related MCP server: TunnelGPT MCP Core
Quick Start
Prerequisites
Node.js 18+
pnpm (
npm install -g pnpm)
Install
cd pc-file-bridge-community
pnpm installRun the local UI path
pnpm devService | URL |
Bridge API | |
Dashboard |
Run the MCP path locally
pnpm dev:mcpService | URL |
MCP Server | |
Bridge API | |
Dashboard |
First run
The API generates a random auth token and saves it to
data/auth-token.txt.Open the dashboard at http://127.0.0.1:4778.
Paste the token when prompted.
Add a workspace on the Workspaces page.
Use the Files page to browse and read files.
Use Diff Preview to create a pending change before applying it.
For ChatGPT Developer Mode, keep apps/mcp-server in front of the same bridge-api. A public HTTPS tunnel or funnel is still required when ChatGPT needs to reach the MCP endpoint from outside your machine.
Daily Usage
# Start the bridge (API + dashboard + MCP server)
corepack pnpm bridge:start
# Run preflight + typecheck + test + build (requires bridge:start servers running)
corepack pnpm bridge:check
# Kill any processes on bridge ports 4777 / 4778 / 4779
corepack pnpm bridge:stop
# Print the MCP remote token (used in ChatGPT server URL)
corepack pnpm token:mcp
# Rotate the MCP remote token (update ChatGPT config after)
corepack pnpm token:mcp:rotateChatGPT setup
In ChatGPT → Developer Settings → MCP Servers:
Field | Value |
Authentication | No Auth |
Server URL |
|
Get your token with corepack pnpm token:mcp.
Normal edit flow
When you ask ChatGPT to edit a file:
ChatGPT calls
apply_change→ previews and writes in one step (one round trip over the tunnel). ChatGPT's own permission prompt fires.You approve in the ChatGPT UI → change is written with backup + audit log
apply_change accepts an optional baseHash (from a prior read_file); the write is rejected if the file changed since, guarding against clobbering a concurrent edit.
Prefer apply_change for edits. The two-step preview_change → apply_pending_change flow still exists for when you want to inspect the diff before applying — both share the same backup, audit log, path guards, and glob filters. ChatGPT's permission prompt is the approval step either way; you do not need to type "apply" separately. Writes only happen inside registered workspaces.
Spreadsheet actions
For .xlsx workbooks, use the spreadsheet tools instead of run_terminal_command or read_file:
inspect_spreadsheet— sheets, used ranges, dimensions, named ranges, metadata, and current hashread_spreadsheet_range— structured raw/display values and formulassearch_spreadsheet— typed exact/contains search, optionally limited to a header columnappend_spreadsheet_rows— dynamic append after the current used rowsupdate_spreadsheet_range— dimension-checked range writesupdate_spreadsheet_rows_by_key— generic header/key updateupsert_spreadsheet_rows— update unique matches and append missing keyscreate_spreadsheetandcreate_spreadsheet_sheet
Only .xlsx is supported. Spreadsheet writes use the registered workspace and its existing glob/path authorization, optional baseHash concurrency protection, the shared backup/audit/revert path, same-directory atomic replacement, and read-after-write verification. Limits are defined once in the shared contract: 50 MiB workbooks, 10,000 returned cells, 2,000 mutation rows, 200 search results, and 100,000 scanned search cells.
The XLSX provider edits only the required worksheet/workbook XML and carries all other ZIP package parts through unchanged, so unrelated formulas, styles, panes, drawings, relationships, metadata, and defined names are not rewritten by cell updates. ZIP entry names are canonicalized at the provider boundary (/ is the internal separator); unsafe paths and canonical collisions fail as workbook_invalid. Unsupported formats such as .xls, .ods, and .csv fail with a normalized typed failure.
Terminal commands
The run_terminal_command tool requires a registered workspaceId, starts in that workspace (or an existing relativeCwd inside it), ignores stdin, strips secret-bearing inherited environment variables, applies the synchronous limits in TERMINAL_EXECUTION_POLICY, caps output, and records the command and outcome in the audit log. For longer work, start_terminal_command returns stable jobId, leaseId, and eventual process identity; poll it with get_terminal_command, renew ownership with renew_terminal_command, and stop it with stop_terminal_command. The requested process lifetime is separate from the bounded renewable supervisor lease, and persisted job state survives API restarts.
The tool is controlled in Dashboard → Access Control, with a local approval queue. It is not an OS sandbox: commands run as your local user and can access anything that user can access. Only run the bridge while you trust the MCP client and every holder of the MCP URL token.
Targeted edits (line-based)
For large files where replacing the whole content is imprecise, three targeted edit tools are available:
Tool | What it does |
| Replace lines |
| Insert content before a specific line |
| Insert content after a specific line |
All three create a pending change (same as preview_change) — no file is touched until apply_pending_change is called. The same backup, audit log, and approval flow applies.
Workflow:
Use
read_file_rangeto confirm exact line numbersCall
preview_replace_range/preview_insert_before/preview_insert_afterCall
apply_pending_changewith the returnedpendingChangeId
Scripts
Command | Description |
| Start bridge (API + dashboard + MCP server) |
| Preflight + typecheck + test + build |
| Kill processes on bridge ports 4777/4778/4779 |
| Print MCP remote token |
| Rotate MCP remote token |
| Run API + dashboard |
| Run API + dashboard + MCP server |
| Run MCP server only |
| Run API only |
| Run dashboard only |
| TypeScript check all packages |
| Run security unit tests |
| Build all packages |
Workspace Ignore File (.bridgeignore)
Each workspace can have a .bridgeignore file at its root to exclude project-specific directories and files from all bridge operations (listing, searching, reading, tree navigation).
# .bridgeignore — placed in your workspace root
# One glob pattern per line. # comments and blank lines are ignored.
my-output-dir/**
generated/**
*.logRules in .bridgeignore are applied in addition to built-in security defaults — they cannot remove built-in protections like .env, .git, or node_modules blocking.
If a file is excluded by .bridgeignore, direct read_file and read_file_range calls will return Access denied: Blocked by .bridgeignore.
Built-in generic skips (no configuration needed):
Directory | Reason |
| Dependencies / version control |
| Generic build output |
| Test/framework output |
| Tool caches |
| Python environments |
| Turborepo cache |
Copy .bridgeignore.example from the project root to your workspace root as .bridgeignore for a commented starting point.
Auth Token
On first run, data/auth-token.txt is created with a 64-char hex token.
Include it in every bridge-api request as
Authorization: Bearer <token>The dashboard stores it in browser localStorage
The MCP server reads the same local token file when it calls bridge-api
Workspace Registry
Workspaces live in data/workspaces.json.
Architecture
See docs/ARCHITECTURE.md for the current architecture. See docs/MCP_DEVELOPER_MODE.md for the MCP-first path. See docs/GPT_ACTION_SETUP.md for the alternate OpenAPI / GPT Actions path.
Security
See docs/SECURITY.md for the threat model and security decisions.
API Reference
See docs/API.md for the bridge-api endpoints.
This server cannot be deployed
Maintenance
Related MCP Connectors
Document approval workspace. Remote MCP with OAuth; tools follow the signed-in member's space ACL.
Browse and manage files in your Moxt AI workspace from any MCP client.
Use a person's computer after they approve it there: files, Terminal, browser, local MCP.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables an MCP client to safely access selected local files and trusted executables with policy control, audit, and rollback via a Windows control center.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceIt enables MCP integrations to safely access a chosen project folder with path-boundary enforcement, read and search files, and perform confirmed writes over a bounded local Unix-socket transport.3MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to safely read, write, edit, search, and optionally run commands within one or more named project workspaces, while maintaining a work journal and tracking changes.19MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to securely operate on a local workstation through MCP by exposing file, shell, and workspace management tools.10MIT