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, 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.0.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.0.0.tar.gz | 70.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_shell_tools-8.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 111.1 kB
Release files / mcp_shell_tools-8.0.0.tar.gz
| Download URL | mcp_shell_tools-8.0.0.tar.gz |
|---|---|
| Size | 70.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de4a687c729032626608034b1fa470a8a102ebeea6832f1cde99dcad452fbab8
|
|
BLAKE2b-256 checksum How to use checksums |
09b5ce24a9327d4db3fef9b0adbf0628da3f83fb361e238657acd2b4b314461c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / mcp_shell_tools-8.0.0-py3-none-any.whl
| Download URL | mcp_shell_tools-8.0.0-py3-none-any.whl |
|---|---|
| Size | 41.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5c6681b79e54f30383fcec9d19dec387c94bcfe94e486a4537e48d793863b213
|
|
BLAKE2b-256 checksum How to use checksums |
01603734040e9e3f85a53e97891bebbe356a0bc18f66737c224d3ed7d31a9aa2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for mcp-shell-tools 8.0.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.