High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
MCP server for approved shell commands
This repo provides a Model Context Protocol server that exposes shell command execution as a tool. It adds first-time approval, persistent approved-command storage, timeout protection, revocation, and audit logging around each run.
Builders who want their agent or MCP host to run shell commands with approval and logging.
You can let your agent use shell commands without giving up control over what runs.
What it does
Dynamic command approval
Prompts you the first time a command is used, with allow-once, remember, or deny choices.
Persistent approvals
Saves approved commands and their dates in `approved_commands.json` for later runs.
Audit logging
Records command activity in `audit.log` for later review.
Command timeout protection
Stops commands that run longer than five minutes.
Command revocation
Lets you remove approval for a command after it has been allowed.
MCP tools and resources
Exposes `execute_command`, `revoke_command_approval`, and `commands://approved` to the host.
How to get it
- 1Clone this repository
git clone <repository-url> cd dynamic-shell-server
- 2Create a virtual environment and activate it
python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
- 3Install dependencies
pip install -r requirements.txt
- 4Run the server directly
python dynamic_shell_server.py
- 5Through Claude Desktop
Human: Run 'npm install' in my project directory Assistant: I'll help you run that command. Since this is the first time running 'npm install', you'll need to approve it. [Command approval prompt appears]
README
Dynamic Shell Command MCP Server
A Model Context Protocol (MCP) server that enables secure execution of shell commands with a dynamic approval system. This server allows running arbitrary commands while maintaining security through user approval and audit logging.
Features
- 🔐 Dynamic command approval system
- 📝 Persistent storage of approved commands
- 📊 Comprehensive audit logging
- ⏱️ Command timeout protection
- 🔄 Command revocation capability
Installation
- Clone this repository:
git clone <repository-url>
cd dynamic-shell-server
- Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
Usage
Standalone Mode
Run the server directly:
python dynamic_shell_server.py
Claude Desktop Integration
-
Open your Claude Desktop configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the server configuration:
{
"mcpServers": {
"shell": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/dynamic_shell_server.py"]
}
}
}
- Restart Claude Desktop
Command Approval Process
When running a command for the first time, you'll be prompted with:
Command Approval Required
Command: <command>
Arguments: <args>
This command has not been previously approved. Do you want to:
1. Allow this command once
2. Allow this command and remember for future use
3. Deny execution
Please choose an option (1-3):
Available Tools
-
execute_command: Execute a shell command- Parameters:
command: The command to executeargs: Optional list of command arguments
- Parameters:
-
revoke_command_approval: Revoke approval for a previously approved command- Parameters:
command: The command to revoke approval for
- Parameters:
Available Resources
commands://approved: Lists all approved commands with their approval dates
Data Storage
The server stores its data in ~/.config/mcp-shell-server/:
approved_commands.json: List of approved commands and their approval datesaudit.log: Detailed execution history of all commands
Security Features
- User approval required for first-time command execution
- Persistent storage of approved commands
- Comprehensive audit logging
- 5-minute command timeout
- No shell execution (prevents injection attacks)
- Command revocation capability
Example Usage
Through Claude Desktop:
Human: Run 'npm install' in my project directory
Assistant: I'll help you run that command. Since this is the first time running 'npm install', you'll need to approve it.
[Command approval prompt appears]
Files in the repo
- .gitignore
- dynamic_shell_server.py
- LICENSE
- README.md
- requirements.txt
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More connectors

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code
Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.
Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.
Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.
20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。