人工智能推动了开发容器的发展
MCP服务器旨在增强DevContainer环境中的AI辅助开发。它提供文件系统操作和工具,以促进AI助手和容器化开发环境之间的无缝协作。文件系统操作基于 Anthropic的文件系统MCP服务器.
安装
要在devcontainer中开始人工智能辅助开发的最简单方法,请按照 AIBD开发容器库此存储库提供了一个预先配置的开发容器设置,其中已经集成了MCP服务器。
步骤包括:
- 克隆aibd-devcontainer存储库
- 在VS Code中打开并使用“在容器中重新打开”功能
- 配置Claude以连接到MCP服务器
- 在人工智能的帮助下开始开发
预配置的设置处理设置MCP服务器、端口转发和文件访问权限的所有细节。
特性
- 完成文件系统操作(读、写、编辑等)
- 目录树
- 文件搜索和元数据检索
- 计划和实施安全操作模式
- 允许的目录安全限制
- SSE(服务器发送事件)传输支持,非常适合停靠环境
- REST API
- 可选的shell命令执行功能(默认禁用)
API
工具
文件读取
- 读取多个文件
- 同时读取多个文件 - 输入: - paths (string\[\]):要读取的文件的路径 - 退货: - 文件内容及其路径的数组
文件写入/修改
- write_file
- 创建新文件或完全覆盖现有文件 - 输入: - path (string):写入文件的路径 - content (string):要写入文件的内容 - 退货: - 确认消息 - 备注:仅在“mcpAct”模式下可用
- edit_file
- 对文本文件进行基于行的编辑 - 输入: - path (string):要编辑的文件的路径 - edits (array):编辑操作数组 - dryRun (boolean):预览更改而不写入 - 退货: - Git风格差异显示更改 - 备注:仅在“mcpAct”模式下可用
目录操作
- create_directory
- 创建新目录或确保目录存在 - 输入: - path (string):创建路径 - 退货: - 确认消息 - 备注:仅在“mcpAct”模式下可用
- 目录树
- 获取文件和目录的递归树视图 - 输入: - path (string):根路径 - depth (数字,可选):递归的最大深度(默认值:1) - 退货: - JSON结构表示目录树
文件管理
- move_file
- 移动或重命名文件和目录 - 输入: - source (string):源路径 - destination (string):目标路径 - 退货: - 确认消息 - 备注:仅在“mcpAct”模式下可用
- 删除多个文件
- 在一次操作中删除多个文件 - 输入: - paths (string\[\]):要删除的路径 - 退货: - 成功和失败的详细报告 - 备注:仅在“mcpAct”模式下可用
公用事业
- 搜索文件
- 递归搜索与模式匹配的文件和目录 - 输入: - path (string):要搜索的根路径 - pattern (string):要搜索的模式 - excludePatterns (string\[\]):要排除的模式 - 退货: - 匹配文件路径数组
- 获取_文件_信息
- 检索有关文件或目录的详细元数据 - 输入: - path (string):获取信息的路径 - 退货: - 详细的文件元数据(大小、日期、权限等)
- list_allowed_directories
- 返回允许服务器访问的目录列表 - 输入:无 - 退货: - 允许的目录路径数组
壳牌运营
- shell-exec
- 在shell中执行命令,并将输出作为结构化数据返回 - 输入: - command (string):要执行的命令 - timeout (数字,可选):最大执行时间(毫秒)(默认值:5000) - 退货: - 具有以下属性的JSON对象: - stdout (string):命令的标准输出 - stderr (string):命令输出的标准错误 - exitCode (number):命令的退出代码(0表示成功,非零表示失败) - 备注: - 仅当服务器启动时可用 --enableShellExecTool 旗帜 - 仅在“mcpAct”模式下可用 - 具有可配置的超时,最大为300秒
模式管理
- get_mode
- 获取当前操作模式 - 输入:无 - 退货: - 当前模式(“mcpAct”或“mcpPlan”)
- set_mode
- 设置操作模式 - 输入: - mode (string):切换到的模式(“mcpAct”或“mcpPlan”) - 退货: - 确认消息
使用Claude Desktop
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"aibd": {
"command": "npx",
"args": [
"-y",
"@gergelyszerovay/mcp-server-aibd-devcontainer",
"--allowedDirectories=/your/allowed/path"
// Add "--enableShellExecTool" here if you want to enable shell command execution
]
}
}
}命令行选项
MCP server with filesystem tools.
Options
--enableHttpTransport Enable HTTP transport [default: false]
--enableStdioTransport Enable stdio transport [default: true]
--enableRestServer Enable REST API server [default: false]
--enableShellExecTool Enable shell execution tool [default: false]
--mcpHttpPort=
Port for MCP HTTP server [default: 3001]
--restHttpPort=
Port for REST HTTP server [default: 3002]
--allowedDirectories=
Allowed directories for filesystem access (multiple, required)
--initialMode= Initial operation mode: mcpAct or mcpPlan [default: mcpAct]
--help Show this help message
Examples
$ mcp-fs --allowedDirectories=. --enableHttpTransport
$ mcp-fs --allowedDirectories=/home/user/projects --mcpHttpPort=3005 --restHttpPort=3006
$ mcp-fs --allowedDirectories=/path/to/dir1 --allowedDirectories=/path/to/dir2
$ mcp-fs --allowedDirectories=. --initialMode=mcpPlan
$ mcp-fs --allowedDirectories=. --enableShellExecTool安全与部署
操作模式
服务器实现两种操作模式:
- mcpPlan模式:一种只读探索模式,允许模型在不进行更改的情况下分析环境
- mcpAct模式:授予对系统修改功能的完全访问权限的执行模式
这种分离增加了一个安全屏障,防止对文件系统进行意外修改。
目录限制
所有操作都限制在启动时明确允许的目录中。尝试访问这些目录之外的文件将导致错误。
壳牌执行安全
默认情况下,shell执行工具处于禁用状态,必须使用 --enableShellExecTool 旗帜。启用后,它提供了几个安全功能:
- 仅在“mcpAct”模式下可用,在计划模式下不可用
- 可配置超时以防止长时间运行的进程
- 输出大小限制,以防止压倒性的响应
- 使用退出代码完成命令结果报告
- 分离stdout和stderr流以获得更好的诊断
- 命令失败的错误处理
警告:启用shell执行使模型能够在您的系统上执行任意命令。在允许执行AI生成的命令之前,始终仔细检查它们。
