
STeLA MCP

2025.04.17
1
Python本地系统操作API 接口命令执行文件操作开发效率
STeLA MCP 是一个基于 Python 实现的 Model Context Protocol (MCP) 服务器,提供通过标准化 API 接口安全访问本地系统操作的能力。它作为应用程序与本地系统之间的桥梁,实现了 MCP 架构,支持命令执行、文件操作等功能。
View on GitHub
Overview
基本能力
产品定位
STeLA MCP 是一个轻量级服务器,通过标准化 API 接口提供对本地机器命令和文件操作的安全访问。它实现了 Model Context Protocol (MCP) 架构,作为应用程序与本地系统之间的中间层。
核心功能
- 命令执行:在本地系统上运行 shell 命令,并提供适当的错误处理
- 文件操作:在本地系统上读取、写入和管理文件
- 目录可视化:生成文件系统的递归树视图
- 工作目录支持:在特定目录中执行命令
- 健壮的错误处理:详细的错误消息和验证
- 全面的输出:捕获并返回 stdout 和 stderr
- 简单集成:标准 I/O 接口,便于与各种客户端集成
- 多目录支持:配置多个允许的目录进行文件操作
- 安全优先设计:严格的路径验证和命令执行控制
- 文件搜索:搜索匹配模式的文件
- 文件编辑:对文件进行选择性编辑
- 类型安全:使用 Pydantic 模型对所有工具输入进行强类型检查
- 路径验证:增强的符号链接和父目录验证
适用场景
- 需要安全访问本地系统命令和文件操作的应用程序
- 作为本地系统与应用程序之间的中间层
- 需要标准化 API 接口来执行本地操作的项目
工具列表
命令工具
- execute_command:在本地系统上执行 shell 命令
- change_directory:更改当前工作目录
文件系统工具
- read_file:读取文件内容
- read_multiple_files:同时读取多个文件
- write_file:将内容写入文件
- edit_file:对文件进行选择性编辑
- list_directory:列出目录内容
- create_directory:创建新目录
- move_file:移动或重命名文件和目录
- search_files:搜索匹配模式的文件
- directory_tree:生成文件和目录的递归树视图
- get_file_info:检索文件或目录的详细元数据
- list_allowed_directories:列出服务器允许访问的所有目录
- show_security_rules:显示当前安全配置
常见问题解答
- 安全性:STeLA MCP 提供对本地系统的直接访问,建议在受信任的环境中运行,并使用最严格的配置
- 权限:避免以 root/管理员身份运行
- 路径验证:实施路径验证以防止未经授权访问系统文件
- 平台特定安全:在 Linux/macOS 上考虑使用 chroot 环境或 SELinux/AppArmor;在 Windows 上使用标准用户权限和 Windows 安全功能
使用教程
使用依赖
- Python 3.10 - 3.12
- pip 或 uv 包管理器
- Pydantic v2.x
安装教程
通过 Smithery 安装
npx -y @smithery/cli install @Sachin-Bhat/stela-mcp --client claude
手动安装
- 克隆仓库:
git clone <repository-url>
cd stela-mcp
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
- 安装依赖:
pip install -e .
创建二进制分发
- 安装 PyInstaller:
pip install pyinstaller
- 创建二进制:
pyinstaller --onefile src/stella_mcp//server.py --name stela-mcp
调试方式
启动服务器
uv run python -m src.stella_mcp.server
与 Claude Desktop 一起使用
- 使用 Python 直接启动服务器
- 在 Claude Desktop 中添加工具配置
- 使用 STeLA MCP 工具与 Claude 进行交互
示例命令
- "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"