Lilith Shell
Provides a secure interface to execute shell commands on the host system with features such as command output capture, working directory specification, command timeouts, and enhanced security controls.
Click on "Install 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., "@Lilith Shelllist all files in the current 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.
Lilith Shell
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.
Related MCP server: MCP Terminal
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_commandinput:
commandstringoptional input:
directorystring, defaulting to~behavior: executes the command in the requested directory and returns exit code, stdout, and stderr
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]"
pytestLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/charles-adedotun/Lilith-Shell'
If you have feedback or need assistance with the MCP directory API, please join our Discord server