Bash MCP server for shell command execution.
More...
#include <entropic/mcp/servers/bash.h>
|
| | BashServer (const std::filesystem::path &working_dir, const std::string &data_dir, int timeout=30) |
| | Construct with working directory and data dir.
|
| |
| | ~BashServer () override |
| | Destructor.
|
| |
| std::string | get_permission_pattern (const std::string &tool_name, const std::string &args_json) const override |
| | Permission pattern: "execute:{base_cmd} *".
|
| |
| bool | set_working_dir (const std::string &path) override |
| | Set working directory.
|
| |
| const std::filesystem::path & | working_dir () const |
| | Get the working directory.
|
| |
| int | timeout () const |
| | Get command timeout.
|
| |
| | MCPServerBase (std::string name) |
| | Construct with server name.
|
| |
| const std::string & | name () const |
| | Get the server name.
|
| |
| void | register_tool (ToolBase *tool) |
| | Register a tool with this server.
|
| |
| std::string | list_tools () const |
| | List all registered tools as a JSON array string.
|
| |
| std::string | execute (const std::string &tool_name, const std::string &args_json) |
| | Execute a tool and wrap result in ServerResponse JSON.
|
| |
| virtual bool | skip_duplicate_check (const std::string &tool_name) const |
| | Check if a tool should skip duplicate detection.
|
| |
| virtual bool | configure (const std::string &config_json) |
| | Configure the server after creation.
|
| |
| const ToolRegistry & | registry () const |
| | Get the tool registry (const).
|
| |
Bash MCP server for shell command execution.
Single tool: execute. Blocks dangerous commands, captures stdout + stderr, enforces timeout.
- Version
- 1.8.5
Definition at line 28 of file bash.h.
◆ BashServer()
| entropic::BashServer::BashServer |
( |
const std::filesystem::path & |
working_dir, |
|
|
const std::string & |
data_dir, |
|
|
int |
timeout = 30 |
|
) |
| |
Construct with working directory and data dir.
- Parameters
-
| working_dir | Default working directory for commands. |
| data_dir | Path to bundled data directory. |
| timeout | Command timeout in seconds. |
- Version
- 1.8.5
A thin MCPServerBase subclass: it builds its one tool, registers it, and overrides only get_permission_pattern and set_working_dir.
- Parameters
-
| working_dir | Default working directory for commands. |
| data_dir | Path to bundled data directory. |
| timeout | Command timeout in seconds. @req REQ-MCP-001 @req REQ-MCP-023 |
- Version
- 1.8.5
Definition at line 179 of file bash.cpp.
◆ ~BashServer()
| entropic::BashServer::~BashServer |
( |
| ) |
|
|
overridedefault |
Destructor.
@dg_internal
- Version
- 1.8.5
◆ get_permission_pattern()
| std::string entropic::BashServer::get_permission_pattern |
( |
const std::string & |
tool_name, |
|
|
const std::string & |
args_json |
|
) |
| const |
|
overridevirtual |
Permission pattern: "execute:{base_cmd} *".
- Parameters
-
| tool_name | Tool name. |
| args_json | Arguments JSON. |
- Returns
- Permission pattern with base command.
- Version
- 1.8.5
Approval granularity matters here: keying on the base command means an operator's "always allow" applies to a command family rather than to every shell invocation.
- Parameters
-
| tool_name | Tool name. |
| args_json | Arguments JSON. |
- Returns
- "<tool>:<base command> *" — for
python -m x, the pattern names python. Unparseable arguments degrade to a base command of "unknown" (logged), never a wildcard. @req REQ-MCP-023 @req REQ-MCP-009
- Version
- 1.8.5
Reimplemented from entropic::MCPServerBase.
Definition at line 223 of file bash.cpp.
◆ set_working_dir()
| bool entropic::BashServer::set_working_dir |
( |
const std::string & |
path | ) |
|
|
overridevirtual |
Set working directory.
Set the working directory.
- Parameters
-
| path | New working directory. |
- Returns
- true on success.
- Version
- 1.8.5
Re-targets the server so a sandbox swap does not require reconstructing it.
- Parameters
-
| path | New working directory. |
- Returns
- true — the re-target always succeeds; the path itself is validated per call by is_safe_cwd. @req REQ-MCP-023
- Version
- 1.8.5
Reimplemented from entropic::MCPServerBase.
Definition at line 251 of file bash.cpp.
◆ timeout()
| int entropic::BashServer::timeout |
( |
| ) |
const |
Get command timeout.
- Returns
- Timeout in seconds.
- Version
- 1.8.5
- Returns
- The configured command timeout in seconds. @req REQ-MCP-023
- Version
- 1.8.5
Definition at line 274 of file bash.cpp.
◆ working_dir()
| const std::filesystem::path & entropic::BashServer::working_dir |
( |
| ) |
const |
Get the working directory.
- Returns
- Working directory path.
- Version
- 1.8.5
- Returns
- The directory commands default to when a call omits
working_dir. @req REQ-MCP-023
- Version
- 1.8.5
Definition at line 264 of file bash.cpp.
The documentation for this class was generated from the following files: