MCP 终端服务器是一个安全的终端执行服务器,实现了模型上下文协议(MCP)。它提供受控命令执行功能,具备安全功能和资源限制,能有效保障命令执行的安全性和稳定性。
MCP 终端服务器可实现安全的命令执行,支持 MCP 协议,你可以按照以下步骤进行开发、测试和使用。
# 克隆仓库
git clone https://github.com/RinardNick/mcp-terminal.git
cd mcp-terminal
# 创建并激活虚拟环境使用uv
uv venv
source .venv/bin/activate # 或 .venv\Scripts\activate 在 Windows 上
# 安装开发依赖项
uv pip install -e ".[dev]"
# 构建包
uv pip install build
python -m build
# 上传到 PyPI
uv pip install twine
python -m twine upload dist/*
使用 MCP Inspector 工具测试服务器:
# 安装 inspector
npm install -g @modelcontextprotocol/inspector
# 测试服务器
npx @modelcontextprotocol/inspector python3 src/mcp_terminal/server.py --allowed-commands "python,pip,git,ls,cd"
运行测试:
# 运行所有测试
pytest tests/
# 运行特定的测试文件
pytest tests/test_terminal.py
# 带覆盖率运行
pytest --cov=mcp_terminal tests/
一旦包发布到 PyPI,可按以下步骤使用:
pip install uv
uv pip install mcp-terminal
~/Library/Application Support/Claude/claude_desktop_config.json
在 macOS 上):{
"mcpServers": {
"terminal": {
"command": "uv",
"args": [
"pip",
"运行",
"mcp-terminal",
"--allowed-commands",
"python,pip,git,ls,cd",
"--timeout-ms",
"30000",
"--max-output-size",
"1048576"
]
}
}
}
服务器实现了模型上下文协议(MCP),带有以下功能:
{
"protocol": "1.0.0",
"functions": {
"terminal": {
"type": "terminal",
"version": "1.0"
}
}
}
所有消息都遵循以下结构:
{
"id": string,
"command": string,
"args": array,
"result": any,
"error": string | null
}
allowed-commands
在生产环境中,确保只有安全的命令可以执行。git checkout -b feature/amazing-feature
)git commit -m '添加一些很棒的功能'
)git push origin feature/amazing-feature
)此项目根据 MIT 许可证授权,详细信息请参阅 LICENSE 文件。