local-mcp-server
A stdio MCP server that exposes local file I/O, a small shell whitelist, and SQLite helpers. Built for wiring Cursor/Claude Desktop to stuff on your machine without giving the model full shell access.
Setup
npm install
npm run build
cp config.example.json config.json
# edit allowedRoots to match your machine
Add to your MCP client config (Cursor example):
{
"mcpServers": {
"local": {
"command": "node",
"args": ["D:/path/to/local-mcp-server/dist/index.js"],
"env": {
"LOCAL_MCP_CONFIG": "D:/path/to/local-mcp-server/config.json"
}
}
}
}
Tools
| Tool | What it does | |------|--------------| | read_file / list_dir / write_file | Scoped to allowedRoots in config | | system_info | Host stats, no secrets | | run_command | Whitelist only: echo, date, pwd, whoami, uname | | db_query / db_exec | SQLite via named aliases in config |
Limitations
- File access is path-jail'd but still powerful — don't point
allowedRootsat$HOME. - Shell tool is intentionally useless for real admin work.
db_execblocksDROP/ALTER; everything else is on you.- Windows:
unamewon't work unless you have it installed.
Dev
npm run dev # tsx, stdio — hard to debug interactively
npm test
MIT licensed. PRs welcome for additional read-only system probes.











