Lilith Shell
FreeNot checkedEnables secure execution of terminal commands with configurable working directories and timeout protection, capturing stdout, stderr, and exit codes for system
About
Enables secure execution of terminal commands with configurable working directories and timeout protection, capturing stdout, stderr, and exit codes for system operations and development tools.
README
Experimental MCP server that exposes local shell command execution to an AI assistant.
Current Status
This repository should be treated as a prototype, not as a secure shell server.
The current implementation exposes one MCP tool, execute_command, that runs a caller-provided command string through subprocess.run(..., shell=True). It has a fixed five-minute timeout, captures stdout and stderr, and accepts an optional working directory. It does not currently implement the security controls previously described in this README.
Recommended profile action: archive or unpin this repository until the security model is rebuilt and tested.
Security Warning
Do not run this against a host, account, or directory that contains credentials, production data, private source code, SSH keys, cloud tokens, or other sensitive material.
Known gaps in the current code:
- No command allowlist or denylist enforcement
- No strict, permissive, or lockdown modes
- No working-directory boundary enforcement
- No environment filtering
- No output sanitization
- No audit log
- No shell selection via configuration
- No streaming output
- No Windows-specific execution path
shell=Trueis used with untrusted tool input
These gaps make the project unsuitable for production use and risky even in a normal developer workstation.
What Works Today
The MCP server registers one tool:
execute_command- input:
commandstring - optional input:
directorystring, defaulting to~ - behavior: executes the command in the requested directory and returns exit code, stdout, and stderr
- input:
What Was De-Scoped
The previous README claimed support for command allowlisting, dangerous command detection, configurable modes, output sanitization, audit logging, working-directory confinement, cross-platform shell selection, and streaming output. Those capabilities are not present in the current source tree.
Minimal Patch Plan Before Re-Publishing
Before this should be presented as a security-oriented MCP server:
- Replace
shell=Truestring execution with argv-based execution. - Add a required strict mode by default, with explicit command allowlists.
- Canonicalize and enforce a configured workspace root before every command.
- Build tests for command parsing, blocked commands, path traversal, symlink escapes, timeout behavior, and output limits.
- Redact common secret patterns from returned output.
- Add bounded output handling so large commands cannot exhaust memory or flood MCP responses.
- Add auditable command logs with timestamps, cwd, exit code, and block reason.
- Document exactly which shells, platforms, and threat boundaries are supported.
Development
pip install -e ".[dev]"
pytest
License
MIT
Installing Lilith Shell
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/charles-adedotun/lilith-shellFAQ
Is Lilith Shell MCP free?
Yes, Lilith Shell MCP is free — one-click install via Unyly at no cost.
Does Lilith Shell need an API key?
No, Lilith Shell runs without API keys or environment variables.
Is Lilith Shell hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Lilith Shell in Claude Desktop, Claude Code or Cursor?
Open Lilith Shell on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Lilith Shell with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
