local-env-mcp
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., "@local-env-mcplist files in my project directory"
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.
local-env-mcp
A stateless, Dockerized Model Context Protocol (MCP) server built with TypeScript. It exposes your local machine ā filesystem, git, shell, network, databases, and system ā to any MCP-compatible LLM client over HTTP.
Built natively in TypeScript on the @modelcontextprotocol/sdk utilizing Express, Zod schemas, and a fully decoupled, layered architecture.
Quick Start
# 1. Clone and install
git clone <repo-url>
cd local-mcp
npm install
# 2. Build the TypeScript source
npm run build
# 3. Start the server (runs on port 3000 by default)
npm start
# OR Start with Docker (multi-stage build)
docker compose up -d --build
# 4. Expose via ngrok (in a separate terminal)
ngrok http 3001
# 5. Copy the ngrok URL and add to Claude.ai
# Settings ā Integrations ā Add MCP Server
# URL: https://your-ngrok-url.ngrok-free.app/mcpRelated MCP server: WEATHGARDS
Table of Contents
Architecture
LLM Client (Claude / Cursor / API)
ā HTTPS POST /mcp
ā¼
Express Routing Layer (src/app.ts)
ā
āāā GET /health ā System Checks
āāā POST /mcp ā Create Server Session
āāā GET /mcp ā Resume Session
āāā DELETE /mcp ā Purge Session
ā
ā¼
Layered Tool Registry (src/tools/registry.ts)
ā
āāāāāāāāāāā¬āāāā“āāāāāā¬āāāāāāāāāā¬āāāāāāāāāā¬āāāāāāāāāā
ā¼ ā¼ ā¼ ā¼ ā¼ ā¼
FS Git Network Shell System Postgres
(9) (11) (8) (9) (8) (3)Stateless Mode: Each POST request spins up a fresh McpServer instance dynamically managed by a singleton Session Manager.
Project Structure
Migrated from legacy monolithic JS, the project now follows a strictly typed layered framework:
local-mcp/
āāā src/
ā āāā server.ts # Listener & bootstrap
ā āāā app.ts # Express routing & middleware wiring
ā āāā config.ts # Zod-validated env loader (.env handled via dotenv)
ā āāā logger.ts # Winston configuration
ā āāā routes/ # Separated Controllers (health.ts, mcp.ts)
ā āāā services/ # Core Logic (processManager, sessionManager)
ā āāā types/ # Shared TS definitions
ā āāā tools/ # All 48 MCP Tools separated by domain
ā āāā filesystem/
ā āāā git/
ā āāā network/
ā āāā postgres/ # Dynamic Database capabilities
ā āāā shell/
ā āāā system/
ā āāā registry.ts # Injects toolsets into active MCP SessionsTransport & Session Model
Uses the Streamable HTTP transport.
Route | Purpose |
| Initiates tool requests (tools/list, tools/call) ā hooks into new or cached session. |
| Streams Server-Sent Events (SSE) for continuous clients. |
| Gracefully terminate an active server. |
Tool Reference
Currently bundling 48 Native Tools mapped through specific modules.
š Filesystem
(All paths resolved relative to FS_ROOT protecting against directory traversal)
read_file,write_file,list_dir,make_dir,delete_path,copy_path,move_path,search_files,file_info
šæ Git
(Powered by simple-git, targets directories relative to FS_ROOT)
git_status,git_diff,git_log,git_branch,git_add,git_commit,git_push,git_pull,git_clone,git_stash,git_show
š Network
http_request,ping,dns_lookup,port_scan,whois,traceroute,download_file,check_connectivity
š» Shell
(Managed by the injected ProcessManager service isolating spawn logs in memory)
run_command,spawn_process,list_processes,get_process_logs,kill_process,system_info,get_env,which,ps
š„ļø System
cron_list,disk_usage,open,notify,clipboard_write,clipboard_read,screenshot,list_installed
š Postgres
(Connects dynamically on-the-fly rather than hardcoded global connections)
pg_query: Execute parameterized raw SQL queries directly.pg_list_tables: Enumerate all active tables ignoring system schemas.pg_describe_table: Interrogate type formats, nullability, and default requirements for a target schema table.
Note: The Postgres tools require you to provide a connectionString argument directly through the LLM interface, keeping your server completely credential-less by design.
Environment Variables
Handled seamlessly using dotenv.
Variable | Required | Default | Description |
| No |
| HTTP port the Express server binds to. |
| No |
| Root directory for File operations. Path constraints enforce this border. |
| Yes (prod) | (none) | Bearer auth token for |
| No |
| Setting to |
Extending with New Tools
Adding tools is significantly easier with the Modular Architecture:
Create a strictly-typed configuration inside your target domain layer (e.g.
src/tools/custom/myTool.ts):
import { z } from "zod";
import type { ToolDefinition } from "../../types/index.js";
import { ok } from "../../utils/response.js";
export const myCustomTool: ToolDefinition = {
name: "custom_tool",
description: "Does something specific",
schema: {
target: z.string().describe("What to target"),
},
handler: async ({ target }) => {
return ok(`Executed logic on ${target}`);
}
};Import and append your tool array to
registerAllToolsinsrc/tools/registry.ts.
Security Model
Concern | Mitigation |
Path traversal |
|
Secret leakage |
|
Docker Isolation | Runs natively as unescalated |
DB Access | Handled dynamically avoiding persistent |
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server ā exposes tasks, projects, messages, and files as tools for AI agents.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceProduction-grade MCP server that gives AI agents safe access to your local dev environment: filesystem, databases, processes, and OpenAPI specs.1528 npm3MIT
- FlicenseNot gradedqualityDmaintenanceExposes MCP tools that enable remote LLMs to query local Docker containers, OS processes, and system services in real time.-
- AlicenseNot gradedqualityCmaintenanceExposes a Linux host with shell, Python, and filesystem tools as MCP tools over HTTPS, enabling AI agents to execute commands and manage files remotely.14 npmMIT
- AlicenseNot gradedqualityAmaintenanceTurns any Linux server into an AI-agent-accessible machine over HTTPS, allowing MCP clients like ChatGPT, Claude, and Grok to securely control files, run shell commands, inspect system state, query SQLite, and work with git behind a bearer token.818 npm4MIT