mcp-shell-tools
Version 8.0 — completely rewritten and revised.
Workstation tools for AI assistants: files, editing, searching, shell commands, notes, sessions and a look at the machine. Thirty-three tools, usable as a Python library or served over the Model Context Protocol.
- Library: plain functions grouped by subject, no dependency beyond
psutil, nothing about MCP. - Server: the same tools over stdio or streamable HTTP with the MCP SDK, protocol revision 2026-07-28, OAuth for HTTP.
- Boundary: reading reaches the whole system, writing stays inside allowed
roots and
/tmp, shell commands are off. A person on the host widens or narrows that for a limited time with a grant.
Installation
Python 3.12 or later.
pip install mcp-shell-tools # the library
pip install "mcp-shell-tools[server]" # and the MCP server
Quick start
A client that starts the server itself, over stdio:
{
"mcpServers": {
"shell": {
"command": "mcp-shell-tools",
"args": ["--working-dir", "/home/you/projects"]
}
}
}
Over HTTP, with OAuth:
MCP_OAUTH_ENABLED=true \
MCP_OAUTH_SERVER_URL=https://auth.example.org/ \
MCP_PUBLIC_URL=https://mcp.example.org/ \
mcp-shell-tools --transport streamable-http --host 0.0.0.0 --port 12204 --path /shell
As a library:
from pathlib import Path
from mcp_shell_tools import Workspace, files, find
space = Workspace(working_dir=Path.cwd())
print(files.file_read(space, "README.md"))
print(find.grep(space, "def main", glob="**/*.py"))
What the server allows by default
Reading goes anywhere. Writing, deleting and moving stay below the home directory. Shell commands do not run. A refusal says which grant lifts it:
outside the allowed roots for write: /etc/example.conf; a person on the host
can allow it with: /path/to/mcp-shell-tools/scripts/grant.sh
--state-dir /home/you/.mcp-shell-tools set --root /etc --for 1h
Deleted entries go to a trash in the state directory, not away for good.
Documentation
- Running the server: options, environment, authentication, reverse proxy, systemd
- Boundary and grants: modes, commands, grants
- Tool reference: all 33 tools with their parameters
- Using the library: workspace, errors, serving the catalogue from a server of your own
- Development: setup, checks, layout
- Changes
License
MIT, see LICENSE.
Metadata
Release files for mcp-shell-tools 8.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mcp_shell_tools-8.1.0.tar.gz | 70.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_shell_tools-8.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 112.0 kB
Release files / mcp_shell_tools-8.1.0.tar.gz
| Download URL | mcp_shell_tools-8.1.0.tar.gz |
|---|---|
| Size | 70.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92dbc19718b23d8cec60a02b2195079403c4d2c426f3263afe3e04a92467199e
|
|
BLAKE2b-256 checksum How to use checksums |
a2db0e27c90451b7c7685b7e1113eabb400548894447a41db3eb5162ba19cb02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / mcp_shell_tools-8.1.0-py3-none-any.whl
| Download URL | mcp_shell_tools-8.1.0-py3-none-any.whl |
|---|---|
| Size | 41.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
20c8cef657e5543ba81a8870e60c84e2839088fb1d42799c7932ec5abab97d99
|
|
BLAKE2b-256 checksum How to use checksums |
0bd95de374ee12c1a08a85f69dbcfa2675c53677c5264192be20d95560923947
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for mcp-shell-tools 8.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.