带SSE的MCP终端服务器
一种模型上下文协议(MCP)服务器,使AI模型能够通过服务器发送事件(SSE)远程执行终端命令。该项目在人工智能程序和计算机终端之间建立了一座桥梁,使人工智能助手能够通过实时反馈执行系统级操作。
这个项目做什么
此服务器允许AI模型(或任何兼容MCP的客户端):
- 远程执行终端/命令行命令
- 通过服务器发送事件接收实时输出流
- 通过web界面执行系统级任务
- 与计算机的文件系统和工具交互
可以把它看作是让人工智能助手能够远程使用你的命令行——在自动化、开发协助和系统管理方面功能强大。
主要特点
- 实时通信:使用服务器发送的事件进行实时命令输出流
- MCP协议:实现标准化AI工具集成的模型上下文协议
- Docker化部署:容器化,便于设置和安全隔离
- 基于Python:采用FastMCP、Starlette和Uvicorn构建
- 多种工具:包括命令执行和实用程序功能
项目结构
mcp_server/
├── terminal_server_sse.py # Main MCP server implementation
├── main.py # Simple entry point
├── Dockerfile # Container configuration
├── pyproject.toml # Python project configuration
├── requirements.txt # Python dependencies
├── uv.lock # Dependency lock file
├── browser_mcp.json # MCP client configuration
└── README.md # This file安装和设置
先决条件
- Python 3.13+
- Docker(可选,用于容器化部署)
本地安装
- 克隆存储库 (或创建项目目录)
mkdir mcp_terminal_server
cd mcp_terminal_server- 创建虚拟环境
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项
pip install -r requirements.txtDocker安装
- 构建Docker镜像
docker build -t terminal_server_sse .- 运行容器
docker run --rm -p 8081:8081 -v /your/workspace:/root/mcp/workspace terminal_server_sse用法
启动服务器
地方发展:
python terminal_server_sse.py使用自定义配置:
python terminal_server_sse.py --host 0.0.0.0 --port 8081Docker部署:
docker run --rm -p 8081:8081 terminal_server_sse期望输出
INFO: Started server process [5868]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)可用工具
服务器公开了以下MCP工具:
run_command
执行shell命令并获得实时输出。
{
"tool": "run_command",
"arguments": {"command": "ls -la"}
}add_numbers
用于数学运算的简单效用函数。
{
"tool": "add_numbers",
"arguments": {"a": 5, "b": 3}
}API终点
GET /sse-服务器发送事件连接端点POST /messages/-发送工具调用和命令
实际使用案例
1.人工智能开发助理
# AI can help with:
git status # Check repository status
npm install # Install dependencies
python -m pytest # Run tests
docker build -t myapp . # Build containers2.系统管理
# AI can manage:
ps aux | grep python # Monitor processes
df -h # Check disk space
mkdir -p projects/new-app # Create directory structures
find . -name "*.py" # Search for files3.文件操作
# AI can organize:
ls ~/Downloads # List files
mkdir ~/Downloads/organized # Create folders
mv *.pdf documents/ # Move files4.开发工作流程
# AI can automate:
git add . # Stage changes
git commit -m "Update" # Commit changes
npm run build # Build projects
python setup.py install # Install packages测试服务器
基本连接测试
curl http://localhost:8081/sse工具调用测试
curl -X POST http://localhost:8081/messages/ \
-H "Content-Type: application/json" \
-d '{"tool": "add_numbers", "arguments": {"a": 5, "b": 3}}'安全考虑
重要安全注意事项:
- 此服务器执行任意shell命令
- Docker提供隔离,但并非万无一失
- 考虑为生产环境实施命令白名单
- 使用适当的身份验证机制
- 小心工作区卷装
- 监控执行的命令以确保安全
推荐的安全措施:
- 在Docker容器中运行以实现隔离
- 限制工作区目录访问
- 实施命令过滤/白名单
- 尽可能使用只读挂载
- 监控并记录所有命令执行情况
配置
默认设置
- 端口: 8081
- 主机: 0.0.0.0
- 工作区:
~/mcp/workspace - 容器工作区:
/root/mcp/workspace
环境变量
您可以通过修改来自定义服务器 terminal_server_sse.py 或者使用命令行参数。
与AI模型集成
此服务器旨在与MCP兼容的AI客户端配合使用。流行的集成包括:
- Claude在MCP的支持下
- 自定义AI代理
- 自动化脚本
- 开发工具
AI交互示例:
User: "Help me organize my Downloads folder"
AI: *connects to MCP server*
AI: *executes* ls ~/Downloads
AI: *executes* mkdir ~/Downloads/organized
AI: *executes* mv ~/Downloads/*.pdf ~/Downloads/organized/
AI: "I've organized your PDF files into the organized folder!"依赖项
mcp>=1.3.0-模型上下文协议框架starlette>=0.46.0-Web框架uvicorn>=0.34.0-ASGI服务器
发展
添加新工具
要添加新的MCP工具,请修改 terminal_server_sse.py:
@mcp.tool()
def your_new_tool(parameter: str) -> str:
"""Description of your tool."""
# Your implementation here
return result自定义服务器
- 修改端口和主机设置
- 添加身份验证中间件
- 实现命令过滤
- 添加日志记录和监控
许可证
根据MIT许可证分发。看 许可证 了解更多信息。
______________________________________________________________________
备注:此服务器通过允许AI模型执行系统命令来提供强大的功能。始终使用适当的安全措施,并在受控环境中运行。
