概述
安裝
工具列表
內容詳情
替代品
什麼是Vulcan File Ops?
Vulcan File Ops是一個基於Model Context Protocol (MCP)的文件操作服務器,它充當AI助手(如Claude Desktop、ChatGPT Desktop等)與您本地文件系統之間的安全橋樑。通過這個服務器,AI助手可以像在IDE中一樣讀取、寫入、編輯和管理您的文件,但所有操作都在您設定的安全邊界內進行。如何使用Vulcan File Ops?
使用Vulcan File Ops非常簡單:首先通過npx或npm安裝服務器,然後在您的AI客戶端配置文件中添加服務器配置。啟動後,您可以指示AI助手註冊需要訪問的目錄,然後AI就可以在該目錄內執行文件操作了。整個過程您都保持完全控制權。適用場景
Vulcan File Ops特別適合以下場景: • 代碼開發和重構:讓AI助手幫助編寫、修改和優化代碼 • 文檔管理:創建、編輯和管理各種文檔(包括PDF、Word等) • 項目維護:批量重命名、移動、複製文件 • 內容搜索:在多個文件中搜索特定內容 • 自動化任務:通過shell命令執行自動化腳本主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": ["@n0zer0d4y/vulcan-file-ops"]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops"
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "./node_modules/.bin/vulcan-file-ops"
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops",
"args": ["--approved-folders", "/path/to/your/allowed/directories"]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"C:/Users/username/projects",
"C:/Users/username/documents"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops",
"args": [
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--ignored-folders",
"node_modules,dist,.git,.next"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--enabled-tool-categories",
"read,filesystem"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--enabled-tools",
"read_file,list_directory,grep_files"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"C:/Users/username/projects",
"C:/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops",
"args": [
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}🚀 Vulcan File Ops MCP 服務器
Vulcan File Ops MCP 服務器可將桌面 AI 助手轉變為強大的開發夥伴。它架起了對話式 AI 與本地文件系統之間的橋樑,讓 AI 具備如專業 AI 編程助手般強大的文件操作能力。同時,通過企業級安全控制,用戶能完全掌控 AI 助手的操作。
🚀 快速開始
本服務器需要 Node.js,可全局安裝、本地安裝,或直接使用 npx 運行。大多數用戶建議使用 npx,無需安裝即可立即執行。
快速啟動(推薦給大多數用戶)
無需安裝,直接運行:
npx @n0zer0d4y/vulcan-file-ops --help
對於想要貢獻代碼或修改代碼的開發者,請參考下面的選項 4:本地倉庫執行(適用於開發者)。
全局安裝
全局安裝以實現系統範圍的訪問:
npm install -g @n0zer0d4y/vulcan-file-ops
本地安裝
在特定項目中安裝:
npm install @n0zer0d4y/vulcan-file-ops
前提條件
系統必須安裝 Node.js(版本 14 或更高),它提供了運行此包所需的 npm 和 npx。
- 下載 Node.js:https://nodejs.org/
- 檢查安裝情況:運行
node --version和npm --version
依賴項
該服務器沒有外部服務依賴,完全在本地運行。使用 npx 時,所有必需的包會自動下載。
✨ 主要特性
- 動態目錄訪問:通過對話命令在運行時註冊目錄
- 文檔支持:讀寫 PDF、DOCX、PPTX、XLSX、ODT 等文檔,支持 HTML 到文檔的轉換
- 批量操作:可同時讀取、寫入、編輯、複製、移動或重命名多個文件
- 高級文件編輯:基於模式的修改,具有靈活的匹配和差異預覽功能
- 靈活的讀取模式:支持全量讀取、讀取文件頭部/尾部或任意行範圍
- 圖像視覺支持:附加圖像供 AI 分析和描述
- 目錄過濾:從列表中排除不需要的文件夾(如 node_modules、dist、.git)
- 選擇性工具激活:僅啟用特定的工具或工具類別
- 高性能:優化的搜索算法,具有智能遞歸檢測功能
- 安全控制:路徑驗證、訪問限制和 shell 命令審批
- 本地控制:完全本地安裝,無外部依賴
📦 安裝指南
基本配置
將其添加到 MCP 客戶端配置中(例如 claude_desktop_config.json):
選項 1:使用 npx(推薦 - 無需安裝)
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": ["@n0zer0d4y/vulcan-file-ops"]
}
}
}
選項 2:使用全局安裝
在運行 npm install -g @n0zer0d4y/vulcan-file-ops 之後:
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops"
}
}
}
選項 3:使用本地安裝
在項目中運行 npm install @n0zer0d4y/vulcan-file-ops 之後:
{
"mcpServers": {
"vulcan-file-ops": {
"command": "./node_modules/.bin/vulcan-file-ops"
}
}
}
選項 4:本地倉庫執行(適用於開發者)
如果你克隆了此倉庫並想從源代碼運行:
git clone https://github.com/n0zer0d4y/vulcan-file-ops.git
cd vulcan-file-ops
npm install
npm run build
然後配置你的 MCP 客戶端:
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops",
"args": ["--approved-folders", "/path/to/your/allowed/directories"]
}
}
}
注意:構建後,vulcan-file-ops 命令將在你的 PATH 中可用,或者你可以使用完整路徑:./dist/cli.js
高級配置
預批准文件夾
在服務器啟動時預配置特定目錄以實現立即訪問:
macOS/Linux(npx):
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents"
]
}
}
}
Windows(npx):
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"C:/Users/username/projects",
"C:/Users/username/documents"
]
}
}
}
替代方案:本地倉庫執行
對於從克隆倉庫運行的用戶(在 npm run build 之後):
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops",
"args": [
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents"
]
}
}
}
路徑格式注意事項:
- Windows:包含驅動器號(例如
C:/、D:/)。在 JSON 中使用正斜槓以避免轉義反斜槓。 - macOS/Linux:絕對路徑以
/開頭,或使用~表示主目錄。
好處:
- 即時訪問:服務器啟動時,目錄會立即驗證並準備好使用
- 安全性:僅可訪問指定的目錄(除非使用 MCP Roots 協議)
- 便利性:無需通過對話手動註冊目錄
- AI 可見性:預批准的目錄會動態嵌入到
register_directory和list_allowed_directories工具描述中,確保 AI 助手知道哪些目錄已預先批准,避免重複註冊嘗試
AI 助手如何查看預批准文件夾:
當你配置 --approved-folders 時,服務器會將此信息動態注入到 register_directory 和 list_allowed_directories 工具描述中。這確保:
- ✅ AI 助手可以看到哪些目錄已經可以訪問
- ✅ AI 知道不要重新註冊預批准的目錄或其子目錄
- ✅ 無需 AI 先調用
list_allowed_directories即可清晰可見 - ✅ 在所有 MCP 客戶端(包括 Cursor、Claude Desktop 等)上都能可靠工作
AI 在工具描述中看到的示例:
預批准目錄(已可訪問,請勿註冊這些目錄):
- C:\Users\username\projects
- C:\Users\username\documents
重要提示:這些目錄及其子目錄已可被所有文件系統工具訪問。請勿對這些路徑使用 register_directory。
注意事項:
- 路徑必須為絕對路徑:Windows 需要驅動器號(
C:/path),Unix/Mac 以/或~開頭 - 目錄以逗號分隔(除非路徑中包含空格)
- 目錄在啟動時進行驗證;如果任何路徑無效,服務器將退出
- 可與運行時的
register_directory工具一起使用以獲得額外的訪問權限 - 如果客戶端使用 MCP Roots 協議,將用工作區根目錄替換預批准的文件夾
目錄過濾
從目錄列表中排除特定文件夾:
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--ignored-folders",
"node_modules,dist,.git,.next"
]
}
}
}
工具選擇
僅啟用特定的工具類別:
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--enabled-tool-categories",
"read,filesystem"
]
}
}
}
或者啟用單個工具:
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--enabled-tools",
"read_file,list_directory,grep_files"
]
}
}
}
組合配置
所有配置選項可以組合使用:
Windows 示例(npx):
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"C:/Users/username/projects",
"C:/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}
macOS/Linux 示例(npx):
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}
替代方案:本地倉庫執行
對於從克隆倉庫運行的用戶(在 npm run build 之後):
{
"mcpServers": {
"vulcan-file-ops": {
"command": "vulcan-file-ops",
"args": [
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}
目錄註冊
要訪問特定目錄,指示 AI 代理:
"請註冊目錄 C:\path\to\your\folder 以進行訪問,然後列出其內容。"
AI 將使用 register_directory 工具獲得訪問權限,然後在該目錄內執行操作。
💻 使用示例
基礎用法
# 快速啟動示例
npx @n0zer0d4y/vulcan-file-ops --help
高級用法
{
"mcpServers": {
"vulcan-file-ops": {
"command": "npx",
"args": [
"@n0zer0d4y/vulcan-file-ops",
"--approved-folders",
"/Users/username/projects",
"/Users/username/documents",
"--ignored-folders",
"node_modules,dist,.git",
"--approved-commands",
"npm,node,git,ls,pwd,cat,echo",
"--enabled-tool-categories",
"read,filesystem,shell",
"--enabled-tools",
"read_file,attach_image,read_multiple_files,write_file,write_multiple_files,edit_file,make_directory,list_directory,move_file,file_operations,delete_files,get_file_info,register_directory,list_allowed_directories,glob_files,grep_files,execute_shell"
]
}
}
}
📚 詳細文檔
API 文檔
按類別提供的工具
讀取操作
read_file
以靈活的模式讀取文件內容(全量、頭部、尾部、範圍)
注意:此工具僅支持單文件操作。推薦:使用 read_multiple_files,它支持單文件和批量文件操作,更具靈活性。
輸入:
path(字符串):文件路徑mode(字符串,可選):讀取模式full- 讀取整個文件(默認)head- 讀取前 N 行tail- 讀取後 N 行range- 讀取任意行範圍(例如,第 50 - 100 行)
lines(數字,可選):頭部/尾部模式的行數startLine(數字,可選):範圍模式的起始行endLine(數字,可選):範圍模式的結束行
輸出:文件內容作為文本。支持文本文件和文檔(PDF、DOCX、PPTX、XLSX、ODT、ODP、ODS)
attach_image
附加圖像供 AI 視覺分析
輸入:
path(字符串 | 字符串數組):圖像文件的路徑,或用於一次附加多個圖像的路徑數組
輸出:MCP 格式的圖像內容,用於視覺模型處理。支持 PNG、JPEG、GIF、WebP、BMP、SVG
read_multiple_files
併發批量讀取多個文件
輸入:
files(數組):具有路徑和可選模式設置的文件對象列表
輸出:所有文件的內容。讀取失敗不會停止操作
寫入操作
write_file
創建或替換文件內容
注意:此工具僅支持單文件操作。推薦:使用 write_multiple_files,它支持單文件和批量文件操作,更具靈活性。
輸入:
path(字符串):文件路徑content(字符串):文件內容(文本或用於 PDF/DOCX 轉換的 HTML)
輸出:成功確認。支持 HTML 到 PDF/DOCX 的轉換,具有豐富的格式
write_multiple_files
併發創建或替換多個文件
輸入:
files(數組):具有路徑和內容的文件對象列表
輸出:每個文件的狀態。寫入失敗不會停止其他文件的操作
edit_file
對文本和代碼文件進行精確修改,具有智能匹配功能。支持單文件和多文件操作。
單文件輸入(模式:'single'):
mode(字符串,可選):設置為"single"(如果省略,為向後兼容默認為此值)path(字符串):文件路徑edits(數組):編輯操作列表,每個操作包含:oldText(字符串):要搜索的文本(包含 3 - 5 行上下文)newText(字符串):要替換的文本instruction(字符串,可選):此編輯的描述expectedOccurrences(數字,可選):預期匹配次數(默認:1)
matchingStrategy(字符串,可選):匹配策略exact- 逐字符匹配(最快、最安全)flexible- 不區分空格的匹配,保留縮進fuzzy- 基於標記的正則表達式匹配(最寬鬆)auto- 嘗試精確 → 靈活 → 模糊(默認)
dryRun(布爾值,可選):預覽更改而不寫入(默認:false)failOnAmbiguous(布爾值,可選):當匹配不明確時失敗(默認:true)
多文件輸入(模式:'multiple'):
mode(字符串):設置為"multiple"files(數組):文件編輯請求數組(最多 50 個),每個請求包含:path(字符串):文件路徑edits(數組):此文件的編輯操作列表(與上述結構相同)matchingStrategy(字符串,可選):每個文件的匹配策略dryRun(布爾值,可選):每個文件的預覽模式failOnAmbiguous(布爾值,可選):每個文件的歧義處理
failFast(布爾值,可選):在第一次失敗時停止並回滾(true,默認)或繼續(false)
特性:
- 多文件操作的併發處理
- 失敗時自動回滾的原子操作(當 failFast: true 時)
- 跨平臺行尾保留
- 帶有統計信息的詳細差異輸出
輸出:帶有統計信息的詳細差異。對於多文件操作,包括每個文件的結果和彙總統計信息,以及原子操作的回滾信息。
重要提示:在 oldText/newText 中使用實際的換行符,而不是轉義序列(如 \n)。
文件系統操作
make_directory
創建單個或多個目錄(類似於 Unix 的 mkdir -p)
輸入:
paths(字符串 | 數組):單個路徑或路徑數組
輸出:成功確認。遞歸創建父目錄,具有冪等性
list_directory
以多種輸出格式列出目錄內容
輸入:
path(字符串):目錄路徑format(字符串,可選):輸出格式simple- 基本的 [DIR]/[FILE] 列表(默認)detailed- 帶有大小、時間戳和統計信息tree- 分層文本樹視圖json- 帶有完整元數據的結構化數據
sortBy(字符串,可選):排序順序name- 按字母順序(默認)size- 從大到小
excludePatterns(數組,可選):要排除的 glob 模式(例如['*.log', 'temp*'])
輸出:指定格式的目錄列表,帶有元數據
move_file
重新定位或重命名文件和目錄
注意:此工具僅支持單文件操作。推薦:使用 file_operations,它支持移動、複製和重命名操作,適用於單文件和批量文件,更具靈活性。
輸入:
source(字符串):源路徑destination(字符串):目標路徑
輸出:成功確認
file_operations
批量文件操作(移動、複製、重命名)
輸入:
operation(字符串):操作類型move- 重新定位文件copy- 複製文件rename- 重命名文件
files(數組):源 - 目標對列表onConflict(字符串,可選):衝突解決方式skip- 跳過現有文件overwrite- 替換現有文件error- 衝突時失敗(默認)
輸出:每個操作的狀態。每次操作最多處理 100 個文件
delete_files
刪除單個或多個文件和目錄
輸入:
paths(數組):要刪除的路徑列表recursive(布爾值,可選):啟用遞歸刪除force(布爾值,可選):強制刪除只讀文件
輸出:每個刪除操作的狀態。默認情況下不進行遞歸刪除以確保安全
get_file_info
檢索文件和目錄的元數據
輸入:
path(字符串):文件或目錄路徑
輸出:大小、時間戳、權限和類型信息
register_directory
在運行時啟用對新目錄的訪問
輸入:
path(字符串):要註冊的目錄路徑
輸出:成功確認。該目錄可用於操作
list_allowed_directories
顯示當前可訪問的目錄路徑
輸入:無
輸出:所有允許的目錄列表
搜索操作
glob_files
使用 glob 模式匹配查找文件
輸入:
path(字符串):要搜索的目錄pattern(字符串):glob 模式(例如**/*.ts)excludePatterns(數組,可選):要排除的模式
輸出:匹配的文件路徑列表
grep_files
在文件中搜索文本模式
輸入:
pattern(字符串):要搜索的正則表達式模式path(字符串,可選):要搜索的目錄-i(布爾值,可選):不區分大小寫-A/-B/-C(數字,可選):匹配前後的上下文行數type(字符串,可選):文件類型過濾器(js、py、ts 等)output_mode(字符串,可選):輸出格式content- 帶有行號的匹配行(默認)files_with_matches- 僅文件路徑count- 每個文件的匹配計數
head_limit(數字,可選):限制結果
輸出:帶有上下文的匹配行、文件路徑或匹配計數
shell 操作
execute_shell
使用安全控制執行 shell 命令
輸入:
command(字符串):要執行的 shell 命令description(字符串,可選):命令目的workdir(字符串,可選):工作目錄(必須在允許的目錄內)。如果未提供,則使用 process.cwd() 並進行驗證timeout(數字,可選):超時時間(毫秒)(默認:30000)
輸出:退出代碼、標準輸出、標準錯誤和執行元數據
安全措施:
- 在執行 shell 命令之前,必須至少配置一個批准的目錄
- 工作目錄(無論是顯式的還是默認的 process.cwd())始終根據允許的目錄進行驗證
- 命令參數中的所有文件/目錄路徑都會自動提取並根據允許的目錄進行驗證
- 引用批准目錄之外路徑的命令將被阻止,防止繞過目錄限制
多文件編輯示例
跨多個文件的批量重構:
{
files: [
{
path: "src/utils.ts",
edits: [{
instruction: "更新棄用的函數調用",
oldText: "oldApi.getData()",
newText: "newApi.fetchData()"
}]
},
{
path: "src/components/Button.tsx",
edits: [{
instruction: "更新組件屬性",
oldText: "onClick={oldHandler}",
newText: "onClick={newHandler}"
}]
},
{
path: "src/hooks/useData.ts",
edits: [{
instruction: "更新鉤子實現",
oldText: "const data = oldApi.getData()",
newText: "const data = newApi.fetchData()"
}]
}
],
failFast: true // 原子操作 - 如果任何一個失敗則回滾所有操作
}
每個文件的配置:
{
files: [
{
path: "config.json",
edits: [{
oldText: '"version": "1.0.0"',
newText: '"version": "1.1.0"'
}],
matchingStrategy: "exact" // JSON 需要精確匹配
},
{
path: "src/app.py",
edits: [{
oldText: "def old_function():",
newText: "def new_function():"
}],
matchingStrategy: "flexible" // Python 縮進可能會有所不同
},
{
path: "README.md",
edits: [{
oldText: "## Old Section",
newText: "## New Section"
}],
matchingStrategy: "auto" // 讓 AI 決定最佳策略
}
],
failFast: false // 即使某些文件失敗也繼續執行
}
更多詳細的使用示例,請參閱 工具使用指南。
🔧 技術細節
模型上下文協議
模型上下文協議(MCP)使 AI 助手能夠安全地訪問外部資源和服務。此服務器實現了用於文件系統操作的 MCP,允許 AI 代理在受控目錄邊界內讀取、寫入和管理文件。
目錄訪問模型
此服務器支持多種靈活的目錄訪問方法:
- 預配置訪問:在服務器啟動時使用
--approved-folders指定目錄以實現立即訪問 - 運行時註冊:用戶可以在對話中指示 AI 代理通過
register_directory工具註冊目錄 - MCP Roots 協議:客戶端應用程序可以動態提供工作區目錄
- 靈活的權限:結合多種方法 - 從批准的文件夾開始,在運行時添加更多
- 安全邊界:無論使用何種訪問方法,所有操作都將根據註冊的目錄進行驗證
安全措施
此 MCP 服務器實現了企業級安全控制,以防範常見的文件系統漏洞。所有安全措施均基於行業最佳實踐,並針對已知的 CVE 模式進行了處理。
防範的漏洞
- 路徑遍歷和目錄繞過(CWE - 22):防範 CVE - 2025 - 54794 / CVE - 2025 - 53110 等模式,通過規範路徑驗證和路徑分隔符要求防止前綴衝突攻擊
- 命令注入(CWE - 78):防範 CVE - 2025 - 54795 等模式,通過多層驗證(包括命令替換檢測、根命令提取和危險模式匹配)來阻止危險命令
- Shell 命令目錄繞過(CWE - 22):防止通過 shell 命令中的絕對路徑繞過路徑限制,通過提取和驗證命令參數中的所有文件/目錄路徑來實現
- 符號鏈接攻擊(CWE - 59 / CWE - 61):防範 CVE - 2025 - 53109 等模式,在驗證前通過
realpath()解析所有路徑以跟蹤符號鏈接到實際目標 - 目錄遍歷:通過嚴格的路徑規範化和僅針對批准目錄的驗證來防止
../遍歷嘗試
安全控制
- 路徑驗證:規範路徑解析、路徑分隔符要求、符號鏈接解析和父目錄驗證
- 命令執行:命令白名單、模式檢測、命令替換阻止、根命令提取和路徑參數驗證
- 訪問控制:目錄白名單、運行時註冊、原子驗證和跨平臺安全處理
安全最佳實踐
- 最小化批准目錄:僅批准需要 AI 訪問的目錄
- 使用目錄過濾:從列表中排除敏感文件夾(例如
.git、node_modules) - 限制工具訪問:通過
--enabled-tools或--enabled-tool-categories僅啟用必要的工具 - 命令審批:通過
--approved-commands預先批准安全命令;其他命令需要審批 - 監控操作:審查 MCP 客戶端日誌以發現意外的訪問嘗試
- 定期更新:保持服務器更新以接收安全補丁
安全審計
此服務器已針對已知漏洞和靜態分析結果進行了全面審計:
- CVE 保護狀態:
- ✅ CVE - 2025 - 54794(路徑限制繞過) - 已修復
- ✅ CVE - 2025 - 54795(命令注入) - 已防範
- ✅ CVE - 2025 - 53109(符號鏈接攻擊) - 已防範
- ✅ CVE - 2025 - 53110(目錄包含繞過) - 已防範
- ✅ Shell 執行目錄繞過 - 2024 年 11 月已修復
- 最新安全審計報告:
- Snyk 漏洞審計報告 - 2025 年 11 月
- CVE 手動審計 - 2025 年 11 月
- Shell 命令目錄繞過審計 - 2025 年 11 月
- 安全測試覆蓋摘要
支持的文件類型
文本文件操作
讀取工具(read_file、read_multiple_files):
- 文本文件:以 UTF - 8 編碼讀取任何文件(源代碼、配置文件、markdown、JSON、XML、CSV、日誌)
- 文檔文件:自動檢測並解析 PDF、Word、PowerPoint、Excel、OpenDocument 等文檔
寫入工具(write_file、write_multiple_files、edit_file):
- 寫入 UTF - 8 編碼的文本內容
- 支持 HTML 到 PDF/DOCX 的轉換,具有豐富的格式
- 可以創建源代碼、配置文件、markdown、JSON、XML、CSV、文本文檔、從 HTML 生成的格式化 PDF/DOCX
圖像文件操作
附加圖像工具(attach_image):
- 附加圖像供 AI 視覺分析(需要具有視覺功能的 MCP 客戶端)
- 支持 PNG、JPEG、GIF、WebP、BMP、SVG 格式
- 支持批量附加圖像
- 返回 MCP 標準格式的圖像,供客戶端視覺處理
文件系統操作
文件操作工具(file_operations、move_file):
- 適用於任何文件類型(文本或二進制)
- 支持移動、複製、重命名操作
- 處理文件和目錄,操作過程中保留文件內容不變
文件編輯
編輯文件工具(edit_file):
- 智能文件修改,具有自動匹配策略(精確 → 靈活 → 模糊)
- 支持一次操作中的多個順序編輯
- 提供帶有統計信息的詳細差異輸出
- 可選的預覽模式(
dryRun: true) - 保留縮進和行尾
開發設置
# 克隆倉庫
git clone https://github.com/n0zer0d4y/vulcan-file-ops.git
cd vulcan-file-ops
# 安裝依賴
npm install
# 運行測試
npm test
# 構建項目
npm run build
# 啟動開發服務器
npm start
測試
項目包含全面的測試覆蓋。使用以下命令運行測試:
npm test
📄 許可證
本項目採用 MIT 許可證 - 詳情請參閱 LICENSE 文件。
貢獻說明
本項目暫不接受拉取請求。
歡迎通過 GitHub 問題提交 bug 報告和功能請求。請包含以下信息:
- 對於 bug:重現步驟、預期行為與實際行為的對比、環境詳細信息
- 對於功能:清晰描述你需要的功能及其使用場景
請先搜索現有問題,因為可能已有相關話題被提及。
替代品







