universal-dev-mcp
This MCP server connects AI coding tools to a local development environment so you can inspect projects, edit files, test APIs, run commands, and manage backups safely.
Inspect the active project, package metadata, scripts, dependencies, file tree, Git status, and Git diffs.
Read, create/overwrite, patch, move, delete, list, and search files, with automatic timestamped backups and restore/rollback.
Check local dev servers, scan ports, and fetch page HTML/meta/text from running apps.
Make HTTP requests to local APIs using GET/POST/PUT/DELETE/PATCH with custom headers and JSON bodies.
Run allowlisted shell commands such as tests, lint, build, and type-check in the project root or subdirectories.
Switch between projects, sync editor configs, use HTTP/SSE endpoints, OpenAI/Gemini tool calling, and an embedded Web UI dashboard.
Enforce security guardrails including port/command allowlists, write-boundary checks, path traversal protection, and optional API-key auth.
Provides an HTTP/SSE interface compatible with OpenAI's tool-calling API, enabling ChatGPT to interact with local development servers similarly.
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., "@universal-dev-mcp Check my active project and view the homepage."
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.
universal-dev-mcp
A universal MCP (Model Context Protocol) server and real-time developer platform that bridges AI coding tools to your local development environment. Connect Claude Desktop, Cursor, Windsurf, Zed, Gemini, ChatGPT, or any MCP-compatible tool to your localhost dev server — view pages, call APIs, read and edit source files, run commands, inspect git status, compare diffs, and switch between projects — complete with an embedded real-time Web UI Dashboard.
Table of contents
Related MCP server: AKIMCP
Features
** 17 Powerful MCP Tools**: Comprehensive toolset covering project discovery, file operations, regex/glob search, allowlisted shell commands, parallel dev server port scanning, DOM/meta scraping, API testing, structured Git status, diff inspection, and automated backup rollback.
** Embedded Web UI Dashboard**: Modern full-width web application served at
http://localhost:3333/featuring Project Hub, Live AI Activity Feed, Visual Backup Diff Viewer, Dev Server Radar, and API Playground.** Real-Time Telemetry & Observability**: Server-Sent Events (SSE) stream broadcasting every AI tool call, arguments, execution duration, and diffs as they happen on your machine.
** Auto-Backups & 1-Click Rollback**: Automatic timestamped backups (
.mcp-backups/) created before any file modification or deletion, with instant restore via MCP tool, Web UI, or REST API.** Multi-Editor Switcher (
mcp-switch)**: CLI and Web UI project switching with automatic config synchronization across Claude Desktop, Cursor (mcp.json), Windsurf (mcp_config.json), and Zed (settings.json).** Enterprise Security Guardrails**: Strict port allowlists, command allowlists, directory boundary confinement, path traversal guards, and shell injection prevention.
** Dual Transports**: Native MCP stdio (JSON-RPC) for code editors, plus HTTP/REST and OpenAI-compatible endpoints for Gemini, ChatGPT, or web applications.
Web UI Dashboard
Start the server in HTTP mode:
npm run start:httpOpen http://localhost:3333/ in your browser.
** Home Overview**: Hero stage showcasing system status, active project root, connected editors, and telemetry statistics.
** Project Hub**: Multi-column command center displaying active Git status (branch, modified/untracked files, commit history) and a 1-click project switcher across all configured workspaces.
** Live AI Activity Feed**: Real-time ticker streaming every tool call executed by Claude, Cursor, or Gemini, complete with arguments, duration, and output logs via SSE.
** Backup Center**: Visual side-by-side diff viewer comparing current file versions against timestamped snapshots with a 1-click "Restore Version" button.
** Dev Server Radar**: Parallel port scanner detecting running localhost servers (Vite, Next.js, Express, Django, etc.), response latency, and DOM page inspection.
** API & Command Workbench**: Interactive playground to test local REST endpoints with custom headers/JSON bodies, or execute allowlisted shell commands with formatted terminal outputs.
How it works
universal-dev-mcp sits between your AI tool and your local dev environment. It exposes two transport layers depending on what your AI tool supports:
┌──────────────────────────────────────────────────────────────────┐
│ AI Tools │
│ │
│ ┌─────────────────────────┐ ┌────────────────────────────┐ │
│ │ Claude Desktop │ │ Gemini │ ChatGPT │ etc │ │
│ │ Cursor / Windsurf / Zed│ └────────────────────────────┘ │
│ │ any MCP-compatible tool│ │ │
│ └────────────┬────────────┘ │ HTTP + SSE │
│ │ MCP stdio (JSON-RPC) │ localhost:3333 │
└────────────────┼───────────────────────────┼─────────────────────┘
│ │
┌─────────▼──────────┐ ┌──────────▼─────────┐
│ server.ts │ │ http-server.ts │
│ (stdio mode) │ │ (HTTP / SSE mode) │
└─────────┬──────────┘ └──────────┬─────────┘
└──────────────┬─────────────┘
│
┌───────────▼───────────┐
│ 17 MCP Tools │
│ │
│ get_active_project │
│ get_project_info │
│ get_git_status │
│ get_git_diff │
│ scan_dev_servers │
│ check_port │
│ view_page │
│ get_api_response │
│ read_file │
│ edit_file │
│ patch_file │
│ restore_backup │
│ list_files │
│ delete_file │
│ move_file │
│ search_files │
│ run_command │
└───────────┬───────────┘
│ allowlist guards + auto-backup
│
┌────────────────▼────────────────┐
│ Your local dev project │
│ localhost:5173 / :3000 │
│ src/ package.json etc. │
└─────────────────────────────────┘MCP stdio (server.ts) — used by editors that support MCP natively (Claude Desktop, Cursor, Windsurf, Zed). The editor spawns the server as a child process and communicates over stdin/stdout.
HTTP/SSE (http-server.ts) — used by web applications, browser agents, or AI models (Gemini, ChatGPT) that connect over HTTP. Hosts the Web UI Dashboard, REST API endpoints, OpenAI function-calling bridge, and real-time SSE stream.
All tool calls pass through the same security layer regardless of transport: port allowlist, command allowlist, write directory scope, and automatic file backups.
Available tools (17 tools)
Category | Tool | Description |
Project |
| Show active project — name, root, git branch, file count, and last commit. |
Project |
| Read package.json, scripts, dependencies, config files, and 2-level directory tree. |
Git |
| Detailed structured Git status: branch, staged/unstaged changes, untracked files, and recent 5 commits. |
Git |
| View working tree or staged diff, optionally filtered to a specific file. |
Dev Server |
| Scan localhost ports in parallel to detect running dev servers (Vite, Next.js, CRA, Express, Django). |
Dev Server |
| Verify a dev server is running and responding on a given port. |
Browser / API |
| Fetch HTML from a running dev server — returns title, meta tags, scripts, and visible text. |
Browser / API |
| Make HTTP requests (GET/POST/PUT/DELETE/PATCH) to API endpoints on a local server. |
Filesystem |
| Read a source file, optionally limiting output to a line range. |
Filesystem |
| Overwrite a file with new content (timestamped backup created automatically). |
Filesystem |
| Replace a unique string inside a file without rewriting it entirely (auto-backup created). |
Filesystem |
| Restore a file to its latest automated backup or a specified backup timestamp. |
Filesystem |
| Display the project directory as a structured file tree. |
Filesystem |
| Delete a file (timestamped backup created automatically before deletion). |
Filesystem |
| Move or rename a file within the project (backup created automatically). |
Search |
| Search for text or regex across all project files with optional glob filter. |
Execution |
| Run an allowlisted shell command (tests, lint, build, type-check) in project root or subfolder ( |
Project structure
universal-dev-mcp/
├── src/
│ ├── cli/
│ │ └── switch.ts Cross-platform CLI for switching projects (mcp-switch)
│ ├── core/
│ │ ├── events.ts Central activity bus & SSE event emitter
│ │ ├── project-manager.ts Multi-project state manager & editor config generator
│ │ ├── registry.ts Tool registry & OpenAI tool-calling adapter
│ │ └── types.ts TypeScript interfaces and telemetry schemas
│ ├── tools/
│ │ ├── api.ts get_api_response
│ │ ├── browser.ts view_page, check_port
│ │ ├── commands.ts run_command (with cwd and injection checks)
│ │ ├── files.ts read_file, edit_file, patch_file, list_files, delete_file, move_file, restore_backup
│ │ ├── git.ts get_git_status, get_git_diff
│ │ ├── index.ts Aggregates and registers all tools
│ │ ├── project.ts get_project_info, get_active_project
│ │ ├── radar.ts scan_dev_servers (parallel port scanner)
│ │ └── search.ts search_files
│ ├── utils/
│ │ ├── backup.ts File backup creation, rotation, diffing, and restoration
│ │ ├── fetch.ts HTTP fetch helpers and HTML parsing utilities
│ │ ├── fs.ts File tree generation and path helpers
│ │ └── security.ts Port, command, shell-injection, and path access guards
│ ├── config.ts Environment variables and mutable live configuration
│ ├── http-server.ts Express HTTP + SSE server & Web UI host (port 3333)
│ └── server.ts MCP stdio entry point (JSON-RPC)
├── ui/ Embedded Web UI Dashboard (React + Vite + Tailwind)
│ ├── src/
│ │ ├── api/client.ts Typed REST & SSE client
│ │ ├── components/ Navbar, Home, ProjectHub, ActivityFeed, BackupCenter, DevRadar, ApiPlayground
│ │ └── hooks/ useActivityStream
│ └── public/ Mascot and visual assets
├── tests/ Automated Vitest test suite
│ ├── backup.test.ts Backup creation, rotation, and rollback tests
│ ├── security.test.ts Path traversal, allowlist, and injection prevention tests
│ └── tools.test.ts Git, radar, and file tool execution tests
├── projects.json Project registry for mcp-switch and Project Hub
├── .env.example Configuration template
├── .gitignore
├── LICENSE MIT License
├── package.json
├── tsconfig.json
└── README.mdInstallation
git clone https://github.com/rj9884/universal-dev-mcp
cd universal-dev-mcp
npm installnpm install compiles TypeScript automatically via the prepare script.
To make the mcp-switch CLI available globally on your system:
npm linkConfiguration
Copy the example environment configuration:
cp .env.example .envEdit .env:
# Absolute path to your active project repository
PROJECT_ROOT=/home/yourname/projects/my-app
# Ports your dev servers run on (comma-separated)
# Vite=5173 Next.js/CRA=3000 Angular=4200 Vue=8080 Django=8000
ALLOWED_PORTS=3000,5173,8080
# Shell commands the AI is permitted to run
ALLOWED_COMMANDS=npm test,npm run lint,npm run build,npx tsc --noEmit
# Port for the HTTP server & Web UI Dashboard
HTTP_PORT=3333
# Optional: restrict file writes to specific subdirectories (defaults to PROJECT_ROOT)
# ALLOWED_WRITE_DIRS=/home/yourname/projects/my-app/src
# Optional: require an API key on all HTTP endpoints (passed via x-api-key header)
# MCP_API_KEY=your-secret-keyConnecting to Claude Desktop
Edit your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the universal-dev-mcp entry under mcpServers:
{
"mcpServers": {
"universal-dev-mcp": {
"command": "node",
"args": ["/absolute/path/to/universal-dev-mcp/dist/server.js"],
"env": {
"PROJECT_ROOT": "/absolute/path/to/your/project",
"ALLOWED_PORTS": "5173,3000,8080",
"ALLOWED_COMMANDS": "npm test,npm run lint,npm run build,npx tsc --noEmit"
}
}
}
}Always use absolute paths for bothuniversal-dev-mcp/dist/server.js and PROJECT_ROOT. Restart Claude Desktop after saving changes.
Connecting to Cursor, Windsurf & Zed
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"universal-dev-mcp": {
"command": "node",
"args": ["/absolute/path/to/universal-dev-mcp/dist/server.js"],
"env": {
"PROJECT_ROOT": "/absolute/path/to/your/project",
"ALLOWED_PORTS": "5173,3000,8080",
"ALLOWED_COMMANDS": "npm test,npm run lint,npm run build,npx tsc --noEmit"
}
}
}
}Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"universal-dev-mcp": {
"command": "node",
"args": ["/absolute/path/to/universal-dev-mcp/dist/server.js"],
"env": {
"PROJECT_ROOT": "/absolute/path/to/your/project",
"ALLOWED_PORTS": "5173,3000,8080",
"ALLOWED_COMMANDS": "npm test,npm run lint,npm run build,npx tsc --noEmit"
}
}
}
}Zed
Edit settings.json:
macOS:
~/Library/Application Support/Zed/settings.jsonLinux:
~/.config/zed/settings.json
{
"experimental": {
"model_context_protocol": {
"servers": [
{
"id": "universal-dev-mcp",
"command": "node",
"args": ["/absolute/path/to/universal-dev-mcp/dist/server.js"],
"env": {
"PROJECT_ROOT": "/absolute/path/to/your/project",
"ALLOWED_PORTS": "5173,3000,8080",
"ALLOWED_COMMANDS": "npm test,npm run lint,npm run build,npx tsc --noEmit"
}
}
]
}
}
}Switching projects
Instead of manually editing config files every time you switch repositories, use the built-in mcp-switch CLI or the Web UI Dashboard.
Setup projects.json
Register your projects in projects.json located in the root of universal-dev-mcp:
{
"projects": [
{
"name": "my-react-app",
"root": "/home/yourname/projects/my-react-app",
"allowed_ports": "3000,5173",
"allowed_commands": "npm run build,npm test,npm run dev"
},
{
"name": "my-backend-api",
"root": "/home/yourname/projects/my-backend-api",
"allowed_ports": "8080",
"allowed_commands": "npm run build,npm test"
}
]
}CLI Commands
# Interactive menu — pick a project from a numbered list
npx mcp-switch
# Switch directly by name across all installed editors
npx mcp-switch use my-react-app
# Switch for a specific editor only (claude, cursor, windsurf, or zed)
npx mcp-switch use my-react-app --editor cursor
# Show the currently active project
npx mcp-switch current
# List all projects (active project marked with *)
npx mcp-switch list
# Add a new project interactively
npx mcp-switch addAfter switching via CLI, restart your editor for the new PROJECT_ROOT to take effect.
Switching via Web UI Dashboard
When running npm run start:http, navigate to the Project Hub tab at http://localhost:3333/. Click "Switch Context" on any project card to dynamically switch the active server context in real time without restarting.
Confirming active project inside your AI tool
Ask your AI assistant:
"Which project is active?"
The assistant calls get_active_project and reports the project name, root path, git branch, file count, and last commit hash.
Connecting to Gemini / ChatGPT (HTTP mode)
Start the HTTP server and Web UI:
npm run start:httpThe server listens on http://localhost:3333.
HTTP Endpoints
Method | Path | Description |
|
| Web UI Dashboard (or server overview JSON if UI not built) |
|
| Health check endpoint returning |
|
| Server status, active project root, allowed ports/commands, tool count |
|
| List all 17 registered MCP tools with JSON input schemas |
|
| Execute any tool by name with arguments: |
|
| Tool declarations formatted for OpenAI / Gemini function calling |
|
| Execute OpenAI-formatted |
|
| Server-Sent Events stream for real-time tool telemetry & project switch events |
|
| Broadcast custom payload to connected SSE clients |
|
| List configured projects, active project status, and folder validation |
|
| Switch active project root dynamically |
|
| Add a new project to |
|
| Retrieve recent tool execution telemetry events |
|
| Clear the in-memory activity log buffer |
|
| List all timestamped |
|
| Get content comparison between a backup snapshot and the current file |
|
| Restore a file to a backup snapshot |
|
| Parallel port scanner detecting running dev servers and latency |
|
| Generate editor configuration snippets for Claude, Cursor, Windsurf, and Zed |
Calling a tool directly with cURL
curl -X POST http://localhost:3333/call \
-H "Content-Type: application/json" \
-d '{"name": "get_git_status", "arguments": {}}'Gemini Integration Example (TypeScript)
import { GoogleGenerativeAI } from "@google/generative-ai";
const MCP_URL = "http://localhost:3333";
async function getMcpTools() {
const res = await fetch(`${MCP_URL}/openai/tools`);
const { tools } = await res.json();
return tools;
}
async function callMcpTool(name: string, args: Record<string, unknown>): Promise<string> {
const res = await fetch(`${MCP_URL}/openai/call`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
tool_calls: [
{ id: "call_1", function: { name, arguments: JSON.stringify(args) } },
],
}),
});
const { tool_results } = await res.json();
return tool_results[0].content;
}
async function main() {
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
const tools = await getMcpTools();
const model = genAI.getGenerativeModel({
model: "gemini-1.5-pro",
tools: [{ functionDeclarations: tools.map((t: any) => t.function) }],
});
const chat = model.startChat();
let result = await chat.sendMessage("Check git status and active project.");
while (result.response.functionCalls()?.length) {
const toolResponses = await Promise.all(
result.response.functionCalls()!.map(async (call) => {
const output = await callMcpTool(call.name, call.args as Record<string, unknown>);
return { functionResponse: { name: call.name, response: { result: output } } };
})
);
result = await chat.sendMessage(toolResponses);
}
console.log(result.response.text());
}
main();UI Screenshots
Home
Project
Dev WorkBench
Add a Project
Security & guardrails
Every tool call executed via stdio or HTTP is strictly bounded by layered security checks:
Port Allowlist: Outbound requests via
check_port,view_page, andget_api_responseare restricted to ports defined inALLOWED_PORTS.Command Allowlist: Execution via
run_commandrequires exact prefix matching againstALLOWED_COMMANDS. Shell metacharacters (;,&&,||,|,`,$(),>,<) are rejected to prevent command chaining and injection.Write Boundary Scope:
edit_file,patch_file,delete_file, andmove_filecan only touch paths withinALLOWED_WRITE_DIRS(defaulting toPROJECT_ROOT).Path Traversal Protection: All relative paths are resolved to absolute canonical paths and validated to prevent directory traversal (
../).API Key Guard: Set
MCP_API_KEYto require anx-api-keyheader on all HTTP and SSE endpoints.
Automated backups & rollback
Whenever edit_file, patch_file, delete_file, or move_file modifies or removes a file, an automated timestamped backup is captured in .mcp-backups/ before disk operations occur.
Rolling back changes
You can restore a backup in four convenient ways:
Via AI Prompt: Ask Claude or Cursor:
"Restore src/App.tsx to its latest backup." (The AI executes the
restore_backuptool)Via Web UI Dashboard: Open
http://localhost:3333/→ Backup Center. Inspect the visual side-by-side diff against the current working copy and click "Restore Version".Via REST API:
curl -X POST http://localhost:3333/api/backups/restore \ -H "Content-Type: application/json" \ -d '{"filepath": "src/App.tsx"}'Via Terminal:
cp .mcp-backups/src__App.tsx.2026-11-09T15-00-00-000Z.bak src/App.tsx
Backups older than 7 days are automatically pruned, keeping at most 10 revisions per file.
Testing
universal-dev-mcp includes an automated test suite powered by Vitest, validating security guardrails, shell injection prevention, backup creation, and tool execution:
npm testnpm scripts
Command | Description |
| Compile both the server (TypeScript) and Web UI (Vite) into |
| Compile TypeScript server code into |
| Compile Vite React frontend into |
| Run the automated Vitest test suite |
| Start stdio MCP server (for Claude Desktop, Cursor, Windsurf, Zed) |
| Start HTTP + SSE server & serve Web UI Dashboard at |
| Start stdio server with |
| Start HTTP server with |
| Start Vite dev server with Hot Module Replacement on port |
Example prompts
Once connected to your AI assistant:
Which project is currently active?Show git status and summarize the last 5 commits.Show the git diff for src/components/Navbar.tsx.Scan local dev ports to see which dev servers are running.Check if my Vite dev server is responding on port 5173.Fetch the homepage from localhost:5173 and describe the UI layout.Search for all occurrences of 'useActivityStream' across the project.Run npm test and summarize any failures.Fix the TypeScript error in src/utils/backup.ts on line 42.Restore src/components/Navbar.tsx to its latest backup snapshot.License
MIT License — Copyright (c) 2026 RAJAN JAISWAL
See LICENSE for full details.
Available Tools
13 toolscheck_portA
Check whether a dev server is currently running and responding on a given localhost port. Run this before view_page to confirm the server is up.
Inputs: port (required).
delete_fileA
Delete a file from the project. A backup is automatically created in .mcp-backups/ before deletion. Cannot delete directories.
Inputs: filepath (required).
edit_fileA
Write new content to a file, replacing it entirely. A timestamped backup is automatically created in .mcp-backups/ before any change. Use patch_file instead when making a small targeted change.
Inputs: content (required), filepath (required), create_if_missing.
get_active_projectA
Shows which project is currently active — name, root path, package info, file count, and git branch. Use this to visually confirm which project the MCP server is connected to.
Inputs: no named parameters.
get_api_responseA
Make an HTTP request to an API endpoint on a local dev server and return the full response. Supports all standard HTTP methods and an optional JSON request body. Useful for testing REST APIs, checking response shapes, and verifying status codes.
Inputs: path (required), port (required), body, method, +1 more.
get_project_infoA
Get a full overview of the project: package.json metadata, npm scripts, dependencies, detected config files, and a two-level file tree. Always call this first when starting to work on a new project.
Inputs: no named parameters.
list_filesA
List the files and directories in the project as a tree. Use this to understand project structure before reading or editing files.
Inputs: depth, directory.
move_fileA
Move or rename a file within the project. A backup of the original is created before the move. Cannot move directories.
Inputs: source (required), destination (required), overwrite.
patch_fileA
Replace a specific string or block of code within a file without rewriting the whole file. The old_string must appear exactly once in the file. A backup is created automatically before the change is applied.
Inputs: filepath (required), new_string (required), old_string (required).
read_fileA
Read the contents of a file in the project. Optionally limit output to a range of lines. Use list_files first if you are unsure of the file path.
Inputs: filepath (required), end_line, start_line.
run_commandA
Run an allowlisted shell command in the project root directory (or a subdirectory via cwd, useful for monorepos like frontend/ + backend/). Useful for installing dependencies, running tests, linting, type-checking, and builds. Only commands explicitly listed in ALLOWED_COMMANDS may be executed.
Inputs: command (required), cwd, timeout_ms.
search_filesA
Search for a text string or regex pattern across all files in the project. Returns matching file paths, line numbers, and the matching lines. Optionally filter by file name glob (e.g. '*.ts'). Skips node_modules, hidden directories, and binary files.
Inputs: query (required), is_regex, directory, file_pattern, +1 more.
view_pageA
Fetch the HTML content and structure of a page on a running local dev server. Returns the page title, meta tags, script sources, and visible text. Optionally returns the full raw HTML.
Inputs: port (required), path, include_raw_html.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Most tools have clearly distinct purposes, but get_active_project and get_project_info overlap somewhat in project metadata, and edit_file/patch_file share a write-to-file role. Descriptions help clarify boundaries, so confusion is unlikely.
All tool names follow a consistent verb_noun snake_case pattern (get_, view_, check_, read_, edit_, patch_, list_, delete_, move_, run_, search_). No mixed conventions or vague verbs.
13 tools is well-scoped for a dev server MCP, covering project inspection, file operations, server interaction, and command execution. Each tool has a distinct role and the count feels balanced.
The set covers most workflows (read, edit, patch, delete, move, list, search files; test server endpoints; run commands) but lacks a dedicated create_file tool. Starting the dev server is also not directly handled, though check_port implies it may be externally managed.
Maintenance
Related MCP Connectors
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Connect AI agents to your own Chrome with scoped access, approvals, and verified task results.
Let AI agents use any website you're logged in to. Sessions stay encrypted on your machine.
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables remote AI agents to read, patch, and (opt-in) execute commands in a local workspace, with all actions approved locally and fully audited.459 npm2MIT
- FlicenseNot gradedqualityAmaintenanceExposes a governed, OAuth-gated suite of 38 tools that let web AI assistants like Claude, ChatGPT, and Grok work directly on your local machine — reading and editing files, running whitelisted shell commands, searching, querying SQLite, driving browsers and DevTools, managing background tasks and localhost services, and controlling Git, clipboard, notifications, and Postman. This lets users build, debug, and maintain projects, inspect databases and local APIs, and check on long-running jobs from a browser or phone without granting unrestricted shell access.-
- AlicenseNot gradedqualityAmaintenanceExposes a governed suite of 38 OAuth-gated tools that let web-based AI chat clients read, write, edit, and search local files, run whitelisted shell commands, inspect databases and localhost APIs, drive browsers and DevTools, and manage background tasks, Git, clipboard, notifications, and ports. Local IDEs connect directly over loopback, while remote clients reach the same machine through a secure tunnel.MIT
- AlicenseNot gradedqualityAmaintenanceExposes an OAuth-gated suite of 38 tools that let web-based AI chat clients operate a local machine, covering files, whitelisted shell commands, search, Git, SQLite, browser and DevTools automation, background tasks, localhost services, clipboard, and ports. It keeps access governed through folder allowlists, a command whitelist, and rate limits so clients gain a large operating surface without unrestricted shell access.MIT