使用说明
MCP外壳服务器
一种模型上下文协议(MCP)服务器,提供shell执行和文件系统操作 多对话支持 LibreChat。
✨ 新增:多对话支持
此版本现在支持在与LibreChat一起使用时对每个对话进行适当的会话隔离。每个对话都有自己的工作目录状态,防止并行对话之间的冲突。
运作原理
服务器现在使用LibreChat的对话ID(可通过PR#9095获得)创建隔离会话:
- 用途
{{LIBRECHAT_BODY_CONVERSATIONID}}header以获取唯一的对话ID - 每个对话都保持自己的工作目录状态
- LibreChat中平行对话之间不再有冲突
LibreChat配置
将此添加到您的 librechat.yaml:
LibreChat配置
将此添加到您的 librechat.yamlThe X-Conversation-ID header对于在不同聊天之间隔离文件系统状态至关重要。
mcpServers:
mcp-shell:
type: streamable-http
url: http://mcp-shell:8000/mcp
headers:
# 🎯 KEY: This enables per-conversation isolation
X-Conversation-ID: "{{LIBRECHAT_BODY_CONVERSATIONID}}"
# Optional: User context for logging
X-User-ID: "{{LIBRECHAT_USER_ID}}"
serverInstructions: |
Shell execution server with per-conversation working directories.
Each conversation maintains its own isolated file system state.
Capabilities: shell execution, file reading/writing, git cloning.
Docker编写示例
将此服务添加到您的 docker-compose.yml:
services:
mcp-shell:
container_name: mcp-shell
image: mcp-shell:latest
build: .
environment:
- WORKDIR=/home/projects
- HOST=0.0.0.0
- PORT=8000
- MCP_LOG_COMMANDS=1
volumes:
- ./projects:/home/projects
调试模式
集 MCP_LOG_COMMANDS=1 启用调试日志记录,显示:
- 上下文对象检查(所有可用属性)
- 会话ID解析逻辑
- 从标头中检测会话ID
- 工作目录分配
要在本地运行调试日志记录,请执行以下操作:
MCP_LOG_COMMANDS=1 python server.py
特性
- 会话隔离:每个LibreChat对话都有自己的工作目录。
- 文件操作:读取、写入、列出具有路径安全检查的文件。
- Shell 执行:运行shell命令(支持Python venvs检测)。
- Git支持:克隆存储库并自动切换上下文。
