cli-executor-mcp
Enables LLMs to execute CLI commands and scripts for system deployment and management tasks, with support for directory listing, system info, and deployment templates.
README
CLI Executor MCP
基于FastMCP构建的模型上下文协议(MCP)服务器,使大语言模型能够执行CLI命令进行系统部署和管理任务。
✨ 功能特性
- 🚀 FastMCP实现 - 基于FastMCP框架构建
- 🔧 命令执行 - 执行单个CLI命令,支持环境变量加载
- 📜 脚本执行 - 运行多行脚本,支持超时控制
- 📁 目录操作 - 列出目录内容,显示详细文件信息
- 🖥️ 系统信息 - 全面的系统和环境详情
- 📋 部署模板 - 即用型部署提示模板
- ⚡ 多种传输方式 - 支持stdio和streamable-HTTP
- 🛡️ 安全特性 - 超时处理和错误管理
- 🔍 跨平台 - 支持Linux、macOS和Windows
📦 安装
pip install cli-executor-mcp
🚀 快速开始
启动服务器
Stdio传输(默认)
cli-executor-mcp
Streamable HTTP传输
cli-executor-mcp --port 8000
指定主机和端口
cli-executor-mcp --host 0.0.0.0 --port 8000
调试模式
cli-executor-mcp --debug
与MCP客户端配合使用
服务器提供的工具、资源和提示可以被任何兼容MCP的客户端使用:
import fastmcp
# 连接到服务器
client = fastmcp.Client("stdio", command="cli-executor-mcp")
# 执行命令
result = await client.call_tool("execute_command", {"command": "ls -la"})
print(result)
🛠️ 可用工具
execute_command
执行单个CLI命令,支持环境变量加载。
参数:
command(str): 要执行的命令working_dir(str, 可选): 执行目录timeout(int, 可选): 命令超时时间(秒,默认:30)
示例:
await client.call_tool("execute_command", {
"command": "python --version",
"working_dir": "/home/user/project"
})
execute_script
执行多行脚本,支持适当的shell处理。
参数:
script(str): 要执行的脚本内容working_dir(str, 可选): 执行目录shell(str, 可选): 使用的shell(默认:"bash")timeout(int, 可选): 脚本超时时间(秒,默认:60)
示例:
await client.call_tool("execute_script", {
"script": """
#!/bin/bash
echo "开始部署..."
npm install
npm run build
echo "部署完成!"
""",
"working_dir": "/var/www/myapp"
})
list_directory
列出目录内容,显示详细文件信息。
参数:
path(str, 可选): 要列出的目录路径(默认为当前目录)show_hidden(bool, 可选): 是否显示隐藏文件(默认:false)
示例:
await client.call_tool("list_directory", {
"path": "/home/user",
"show_hidden": true
})
📚 资源
system://info
获取全面的系统信息,包括操作系统详情、Python版本、环境变量和当前工作目录。
示例:
info = await client.read_resource("system://info")
print(info)
📝 提示
deploy_application
为应用程序生成部署指令。
参数:
app_name(str): 要部署的应用程序名称target_dir(str): 部署目标目录repo_url(str, 可选): Git仓库URL
示例:
prompt = await client.get_prompt("deploy_application", {
"app_name": "my-web-app",
"target_dir": "/var/www/my-web-app",
"repo_url": "https://github.com/user/my-web-app.git"
})
⚙️ 配置
命令行选项
cli-executor-mcp --help
| 选项 | 描述 | 默认值 |
|---|---|---|
--transport |
传输协议 (stdio, streamable-http) | streamable-http |
--host |
HTTP服务器绑定主机 | 127.0.0.1 |
--port |
HTTP服务器端口 | 8000 |
--debug |
启用调试日志 | false |
环境变量
您也可以使用环境变量配置服务器:
CLI_EXECUTOR_HOST: HTTP服务器主机CLI_EXECUTOR_PORT: HTTP服务器端口CLI_EXECUTOR_TRANSPORT: 传输类型CLI_EXECUTOR_DEBUG: 启用调试模式
🔒 安全注意事项
- ⚠️ 危险命令: 运行破坏性命令如
rm -rf前请务必确认 - ⏱️ 长时间运行的命令: 对于长时间运行的进程使用
nohup,并用tail -f监控 - 🔐 权限: 服务器以启动用户的权限运行
- 🌐 网络访问: 使用HTTP传输时,请确保网络安全
- 📁 文件访问: 服务器可以访问用户有权限的任何文件
🏗️ 开发
设置开发环境
# 克隆仓库
git clone https://github.com/CaptainJi/cli_executor.git
cd cli_executor
# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 以开发模式安装
pip install -e .
# 安装开发依赖
pip install fastmcp[dev]
运行测试
# 以调试模式运行服务器
cli-executor-mcp --debug
# 使用MCP客户端测试
python -c "
import asyncio
import fastmcp
async def test():
client = fastmcp.Client('stdio', command='cli-executor-mcp')
result = await client.call_tool('execute_command', {'command': 'echo Hello, World!'})
print(result)
asyncio.run(test())
"
📄 许可证
本项目采用MIT许可证 - 详见LICENSE文件。
🤝 贡献
欢迎贡献!请随时提交Pull Request。
📞 支持
如果您遇到任何问题或有疑问,请在GitHub上提交issue。
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.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.