STeLA MCP
MCP server for local system operations
Sachin-Bhat
README
STeLA MCP
A Python implementation of a Model Context Protocol server that provides secure access to local system operations via a standardized API interface.
STeLA (Simple Terminal Language Assistant) MCP is a lightweight server that provides secure access to local machine commands and file operations via a standardized API interface. It acts as a bridge between applications and your local system, implementing the Model Context Protocol (MCP) architecture.
Overview
STeLA MCP implements the Model Context Protocol (MCP) architecture to provide a secure, standardized way for applications to execute commands and perform file operations on a local machine. It serves as an intermediary layer that accepts requests through a well-defined API, executes operations in a controlled environment, and returns formatted results.
Features
- Command Execution: Run shell commands on the local system with proper error handling
- File Operations: Read, write, and manage files on the local system
- Directory Visualization: Generate recursive tree views of file systems
- Working Directory Support: Execute commands in specific directories
- Robust Error Handling: Detailed error messages and validation
- Comprehensive Output: Capture and return both stdout and stderr
- Simple Integration: Standard I/O interface for easy integration with various clients
Installation
Installing via Smithery
To install STeLA for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Sachin-Bhat/stela-mcp --client claude
Prerequisites
- Python 3.10 - 3.12
- pip or uv package manager
Installation Steps
- Clone the repository:
git clone <repository-url>
cd stela-mcp
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies:
pip install -e .
Creating a Binary Distribution
To create a self-contained binary:
- Install PyInstaller:
pip install pyinstaller
- Create the binary:
pyinstaller --onefile src/stella_mcp//server.py --name stela-mcp
The binary will be created in the dist
directory.
Project Structure
stela-mcp/
├── src/
│ ├── stela_mcp/
│ │ ├── __init__.py
│ │ ├── shell.py # Shell command execution
│ │ └── filesystem.py # File system operations
│ └── server.py # Main server implementation
├── pyproject.toml # Project configuration
└── README.md
Usage
Starting the Server
Run the server using:
uv run python -m src.stella_mcp.server
The server will start and listen for connections through standard I/O.
Using with Claude Desktop
To use STeLA MCP with Claude Desktop:
-
Option 1: Using Python directly
- Start the server using:
uv run python -m src.stela_mcp.server
- In Claude Desktop:
- Go to Settings
- Under "Tools", click "Add Tool"
- Select "MCP Server"
- Enter the following configuration:
- Name: STeLA MCP
- Path: The absolute path to your Python executable (e.g.,
/home/username/.venv/bin/python
) - Arguments:
-m src.stela_mcp.server
- Working Directory: The path to your STeLA MCP project directory
- Start the server using:
-
Option 2: Using the binary
- Copy the binary from
dist/stela-mcp
to a location in your PATH - In Claude Desktop:
- Go to Settings
- Under "Tools", click "Add Tool"
- Select "MCP Server"
- Enter the following configuration:
- Name: STeLA MCP
- Path: The absolute path to the binary (e.g.,
/usr/local/bin/stela-mcp
) - Arguments: (leave empty)
- Working Directory: (leave empty)
- Copy the binary from
-
Once configured, you can use STeLA MCP tools in your conversations with Claude. For example:
- "Show me the contents of my home directory"
- "Create a new file called 'test.txt' with some content"
- "Run the command 'ls -la' in my current directory"
-
Claude will automatically use the appropriate tools based on your requests and display the results in the conversation.
Available Tools
Command Tools
execute_command
Executes shell commands on the local system.
Parameters:
command
(string, required): The shell command to executeworking_dir
(string, optional): Directory where the command should be executed
Returns:
- On success: Command output (stdout)
- On failure: Error message and any command output (stderr)
change_directory
Changes the current working directory.
Parameters:
path
(string, required): Path to change to
Returns:
- On success: Success message with new path
- On failure: Error message
File System Tools
read_file
Reads the contents of a file.
Parameters:
path
(string, required): Path to the file to read
Returns:
- On success: File contents
- On failure: Error message
write_file
Writes content to a file.
Parameters:
path
(string, required): Path where the file will be writtencontent
(string, required): Content to write to the file
Returns:
- On success: Success message
- On failure: Error message
list_directory
Lists contents of a directory.
Parameters:
path
(string, required): Path for the directory to list
Returns:
- On success: List of files and directories
- On failure: Error message
create_directory
Creates a new directory.
Parameters:
path
(string, required): Path for the directory to create
Returns:
- On success: Success message
- On failure: Error message
move_file
Moves or renames files and directories.
Parameters:
source
(string, required): Source path of the file or directory to movedestination
(string, required): Destination path where the file or directory will be moved to
Returns:
- On success: Success message
- On failure: Error message
search_files
Searches for files matching a pattern.
Parameters:
path
(string, required): Starting path for the searchpattern
(string, required): Search pattern to match file and directory names
Returns:
- On success: List of matching files
- On failure: Error message
directory_tree
Generates a recursive tree view of files and directories.
Parameters:
path
(string, required): Path for the directory to generate tree from
Returns:
- On success: JSON structure representing the directory tree
- On failure: Error message
Security Considerations
STeLA MCP provides direct access to execute commands and file operations on the local system. Consider the following security practices:
- Run with appropriate permissions (avoid running as root/administrator)
- Use in trusted environments only
- Consider implementing additional authorization mechanisms for production use
- Be cautious about which directories you allow command execution and file operations in
- Implement path validation to prevent unauthorized access to system files
Platform-Specific Security Notes
Linux/macOS
- Run with a dedicated user with limited permissions
- Consider using a chroot environment to restrict file system access
- Use
chmod
to restrict executable permissions
Windows
- Run as a standard user, not an administrator
- Consider using Windows Security features to restrict access
- Use folder/file permissions to limit access to sensitive directories
Development
Adding New Tools
To extend STeLA MCP with additional functionality, follow this pattern:
- Add a new method to the appropriate class in
shell.py
orfilesystem.py
- Register the tool in
server.py
using the@server.call_tool()
decorator - Implement the tool handler with proper error handling and return types
Example:
@server.call_tool()
async def my_tool(request: Request[RequestParams, str], arguments: Dict[str, Any]) -> Dict[str, Any]:
"""Description of the tool."""
try:
# Tool implementation
result = await do_something(arguments)
return {"success": True, "result": result}
except Exception as e:
return {"error": str(e)}
License
Apache-2.0 License
Acknowledgements
- Built with the MCP Python SDK
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.