{"_id":"@ai-capabilities-suite/mcp-filesystem","_rev":"10-6af7b12fb9c47f894efd07c6e138f360","name":"@ai-capabilities-suite/mcp-filesystem","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.0":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.0","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.0","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-filesystem#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"9bb7f792443a057f834ce8dabc2c5fd441b71d12","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.0.tgz","fileCount":116,"integrity":"sha512-h7KZ006DIMVKE4pmfkyoCQ6ZDilYUudQWZvgu+t+TeI64PuIgbedyIGOfFN5/f9s5/DIYwiLii7QTDH02z7HVQ==","signatures":[{"sig":"MEQCIE8Xs+Ydum3OQz19YvxeiROlvoDMpxk9e9X/1loSCRyEAiAb+2LMLD46qQhu/4//nHQ/qUt9LjTngZmNssHd5a1oLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456677},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-filesystem"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.0_1765259422866_0.40023925157174434","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.1","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.1","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-filesystem#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"450ebbadbff08da591a043454f5af8e9000ef03d","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.1.tgz","fileCount":116,"integrity":"sha512-W3/95BY5czt5KB5FNT0V+haiskFJmCBnNoR6L+0yxRDM0cNy7puYxvO7CyoS6bEFX9S8hkVsLyzaXORihIvTTg==","signatures":[{"sig":"MEUCIQCzEo/hj8y1morD8Tnsz8eRvckfPBLgHK0Ej9M30I03SgIgEJsUv2LlANwOBzLV/bDp7Jvdz7sYpxFCaifkIb8nZPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":454440},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.1_1765261244212_0.6091990311972346","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.2","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.2","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"0caa8a24fd12d58a32d40462aa3c82f311a2f702","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.2.tgz","fileCount":116,"integrity":"sha512-f/ICyv20I+LYi6pjnbb5qXKh7d+AZ81eoBZIt8/MXSzD0cEQno+IIZ8H6oPBSNNdxCWTw7ae39sdqjLPH0jNLg==","signatures":[{"sig":"MEUCIQDYHAvyIL9QiVqzTWx5bdukASgEV/mof210Wjso21Qg+AIgeeF+/BZq8HNC8EoVMqieaUq8rlJMIj3gKeQ6n9jYzZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":454392},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.2_1765266323580_0.7194952647954027","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.3","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.3","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"5658fa36a933708a1e0bebe2e85b7036440d9e9f","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.3.tgz","fileCount":116,"integrity":"sha512-twQHUtpWVKdbVKn63/5dveZZ2gDO+ESwkqmls4+WLQVvciYYp9io2ieqjXG6X6O84ZOYdHYnQfwHE+YO786FWg==","signatures":[{"sig":"MEUCIQCGuxzaws17Sj/++8Y5eIZApg5o+q5TPA9VQo5dgiF2zAIgXJo210uKLAYDewBgOIdnAJMBfk1NYHZ1YLNtV8v2mrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456423},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.3_1765400342304_0.5858597816706954","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.4","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.4","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"115252d35a625785f205fcdb9078ef5fef4679c1","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.4.tgz","fileCount":116,"integrity":"sha512-eg1fiR/5AyIfVEyFOh9xkT54YW687+Yop1oSwwt7unwhb8jO4RAVmXf45fEOPKtNi5pZF/V8JaRoJ97yDi6Spg==","signatures":[{"sig":"MEQCIEHtEYYYkBm+f9mDePygIsGErAboQ7QMWwqvlQkASeIwAiBXbI3TrhQGtQb+b5v93iCRYaw6Z4ljXAt99l7bj48rFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456423},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.4_1765403702760_0.11217942746033249","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.5","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.5","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"b309f9fe439104f530a94d0948bb124f930f1faa","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.5.tgz","fileCount":116,"integrity":"sha512-Np2Uowb8md2JCzDGmY+ksUNwP6pcCDwdTIoo6HdQeyvcW5URC6lm/z6dC6uDDdWANwsjZ/cpskeurZyVARP8+w==","signatures":[{"sig":"MEUCIQC37uo2arzLicX5oSMZ6hGs90VBYXxXa+Hq8JjYWZvU4wIgNQecovpExJ0nxrT2wQbDt3VsHnZyKt/Kcgv6QJnCfW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456423},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.5_1765559190483_0.4226268594377316","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.6","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.6","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"3e08f2b145351521777ceb1dded02ca24c6d0b3f","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.6.tgz","fileCount":116,"integrity":"sha512-rrkMg+yDI3bl4IyDzXCuDieZNmG5qop7AOfmSJZLob6YkI1mCx+1Lpj6dmM6P914l6yF3yQugolnjJJQ2Zjuvw==","signatures":[{"sig":"MEQCIE72tiBnrmnKO2hvIyQ1JDi5gQ0SQVTAFck+DFUc/0dGAiBmTWlDdoLKGkecuQxrI1C0QrcQgj0WW3Na2BmJphD9KQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458722},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.6_1765560590871_0.9266855967466563","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.7","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.7","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"d0cc908583c59ca2d5dc82216bdca6b875846ebb","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.7.tgz","fileCount":116,"integrity":"sha512-aOKCLgxA4JQFMc/gGXwV9pcTeTmvi4H8UPb2EXUZGHH2cbuSRzms3/6uOAFv0/I3uWWnSZQ3Xh+cmy1waj8b4A==","signatures":[{"sig":"MEUCIDzDx7zoKB7pWoc7g+Vf8q49QhZxt7iX+4WMGh7tr6k1AiEAuh4pcRWXvzLkueDLpCMFNvDu9MRQVVtVCcZt+OIC9PA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458722},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.7_1765562088829_0.7214191704823907","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.8","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-filesystem@0.1.8","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/Digital-Defiance/mcp-filesystem","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"bin":{"mcp-filesystem":"dist/cli.js"},"mcp":{"server":{"args":[],"name":"mcp-filesystem","tools":12,"command":"mcp-filesystem","version":"0.1.0","categories":["filesystem","file-management","security","development-tools"],"description":"Advanced filesystem operations with strict security boundaries","capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"]}},"dist":{"shasum":"c175595cf8f4e6c61e0cba34932e98821c181fb1","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.8.tgz","fileCount":116,"integrity":"sha512-0LUaMNHJ/ZqR5Pqr9u0aVhU6pXqTRevMULeGZizDKBQXV98IyYVGDnCa4cCMF0lY8MG7d35Q5qkuV5nW+WUEjA==","signatures":[{"sig":"MEQCIBhMm5nmtAhIEgO8PzHb6bNNe53C9v13SqNRlapqKnt/AiA7g+wuKcqbuKhITvK6+MuALYQzwBvUO9XCai61CcU1eA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458736},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@ts-mcp/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-filesystem","scripts":{"lint":"eslint src","test":"jest --maxWorkers=1 --forceExit","build":"tsc -p tsconfig.lib.json","clean":"rm -rf dist","docker:run":"docker-compose up -d","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","test:watch":"jest --watch","docker:logs":"docker-compose logs -f","docker:stop":"docker-compose down","docker:test":"bash scripts/docker-test.sh","docker:build":"docker build -t mcp-filesystem:local .","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git","type":"git"},"_npmVersion":"11.6.3","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","lunr":"^2.3.9","uuid":"^8.3.2","chokidar":"^4.0.3","fast-glob":"^3.3.2","minimatch":"^10.1.1","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","fast-check":"^4.3.0","typescript":"^5.3.3","@types/lunr":"^2.3.7","@types/node":"^20.10.6","@types/uuid":"^10.0.0","@swc/helpers":"^0.5.17","@types/minimatch":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-filesystem_0.1.8_1765563392573_0.4622612161226909","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@ai-capabilities-suite/mcp-filesystem","version":"0.1.9","mcpName":"io.github.Digital-Defiance/mcp-filesystem","packageManager":"yarn@4.12.0","description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"mcp-filesystem":"dist/cli.js"},"exports":{"./package.json":"./package.json",".":{"@ts-mcp/source":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.lib.json","test":"jest --maxWorkers=1 --forceExit","test:coverage":"jest --coverage --maxWorkers=1 --forceExit","test:watch":"jest --watch","test:debug":"node --inspect-brk node_modules/.bin/jest --runInBand","lint":"eslint src","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test","publish:public":"npm publish --access public","docker:build":"docker build -t mcp-filesystem:local .","docker:test":"bash scripts/docker-test.sh","docker:run":"docker-compose up -d","docker:stop":"docker-compose down","docker:logs":"docker-compose logs -f"},"keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"author":{"name":"Digital Defiance","email":"info@digitaldefiance.org","url":"https://digitaldefiance.org"},"license":"MIT","homepage":"https://github.com/Digital-Defiance/mcp-filesystem","repository":{"type":"git","url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git"},"bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"engines":{"node":">=18.0.0","npm":">=8.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"mcp":{"server":{"name":"mcp-filesystem","description":"Advanced filesystem operations with strict security boundaries","version":"0.1.0","command":"mcp-filesystem","args":[],"capabilities":["batch-operations","directory-watching","file-search","file-indexing","checksums","symlinks","disk-usage-analysis","security-boundaries"],"tools":12,"categories":["filesystem","file-management","security","development-tools"]}},"type":"commonjs","dependencies":{"@modelcontextprotocol/sdk":"^1.23.0","chokidar":"^4.0.3","fast-glob":"^3.3.2","lunr":"^2.3.9","minimatch":"^10.1.1","uuid":"^8.3.2","zod":"^4.1.13"},"devDependencies":{"@swc/core":"^1.15.3","@swc/helpers":"^0.5.17","@swc/jest":"^0.2.39","@types/lunr":"^2.3.7","@types/minimatch":"^6.0.0","@types/node":"^20.10.6","@types/uuid":"^10.0.0","fast-check":"^4.3.0","jest":"^29.7.0","typescript":"^5.3.3"},"_id":"@ai-capabilities-suite/mcp-filesystem@0.1.9","_nodeVersion":"22.21.1","_npmVersion":"11.6.3","dist":{"integrity":"sha512-mXPMdH0NGKShp/XiZyNxaQw+VS5ZhL0MGLaO04AiRnh4wRtQcsW781q6fi5lD/aH+kFiz3K5B8De55THVZYE8A==","shasum":"3112d1e1c219841f5759a8c0e3ed604a7245736d","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-filesystem/-/mcp-filesystem-0.1.9.tgz","fileCount":116,"unpackedSize":458736,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIQDN06E/e1Phuxe3WDmP346KyS3XyOmiLGe8nRw8jCHakgIfTM3bldn58Z4FxzHn1Nzo6SsdTV3jVPlI3BWjYv1tiw=="}]},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"directories":{},"maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-filesystem_0.1.9_1765566938000_0.8382964987145656"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-09T05:50:22.757Z","modified":"2025-12-12T19:15:38.373Z","0.1.0":"2025-12-09T05:50:23.045Z","0.1.1":"2025-12-09T06:20:44.364Z","0.1.2":"2025-12-09T07:45:23.743Z","0.1.3":"2025-12-10T20:59:02.456Z","0.1.4":"2025-12-10T21:55:02.916Z","0.1.5":"2025-12-12T17:06:30.634Z","0.1.6":"2025-12-12T17:29:51.043Z","0.1.7":"2025-12-12T17:54:49.038Z","0.1.8":"2025-12-12T18:16:32.745Z","0.1.9":"2025-12-12T19:15:38.144Z"},"bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"author":{"name":"Digital Defiance","email":"info@digitaldefiance.org","url":"https://digitaldefiance.org"},"license":"MIT","homepage":"https://github.com/Digital-Defiance/mcp-filesystem","keywords":["mcp","model-context-protocol","filesystem","file-operations","batch-operations","directory-watching","file-search","file-indexing","security","ai-agent","nodejs","chokidar","lunr","checksums","symlinks","permissions","ai-capabilities"],"repository":{"type":"git","url":"git+https://github.com/Digital-Defiance/mcp-filesystem.git"},"description":"MCP server for advanced filesystem operations with strict security boundaries. Batch operations, directory watching, file search/indexing, and permission management - all within secure, configurable boundaries.","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"readme":"# MCP Filesystem Server\n\n[![npm version](https://badge.fury.io/js/@ai-capabilities-suite%2Fmcp-filesystem.svg)](https://www.npmjs.com/package/@ai-capabilities-suite/mcp-filesystem)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAdvanced filesystem operations for AI agents with strict security boundaries. Part of the [AI Capabilities Suite](https://github.com/Digital-Defiance/ai-capabilities-suite).\n\n## 🔗 Repository\n\nThis package is maintained in the [AI Capabilities Suite](https://github.com/Digital-Defiance/ai-capabilities-suite) monorepo.\n\n## Overview\n\nThe MCP Filesystem Server provides AI agents with advanced file operations beyond basic read/write, including:\n\n- **Batch Operations**: Execute multiple file operations atomically with rollback support\n- **Directory Watching**: Monitor filesystem changes in real-time with event filtering\n- **File Search & Indexing**: Fast full-text search with metadata filtering\n- **Checksum Operations**: Compute and verify file integrity (MD5, SHA-1, SHA-256, SHA-512)\n- **Symlink Management**: Create and manage symbolic links within workspace boundaries\n- **Disk Usage Analysis**: Analyze directory sizes and identify large files\n- **Directory Operations**: Recursive copy, sync, and atomic file replacement\n\nAll operations are confined within strict security boundaries to prevent unauthorized access.\n\n## 🚨 Security First\n\n**CRITICAL**: This server implements defense-in-depth security with 10 layers of path validation. All operations are confined to a configured workspace root. See [SECURITY.md](./SECURITY.md) for complete security documentation.\n\n## Installation\n\n### NPM\n\n```bash\nnpm install -g @ai-capabilities-suite/mcp-filesystem\n```\n\n### Yarn\n\n```bash\nyarn global add @ai-capabilities-suite/mcp-filesystem\n```\n\n### Docker\n\n```bash\ndocker pull ghcr.io/digital-defiance/mcp-filesystem:latest\n```\n\nSee [DOCKER.md](./DOCKER.md) for Docker deployment guide.\n\n## Quick Start\n\n### 1. Create Configuration File\n\nCreate a `mcp-filesystem-config.json` file:\n\n```json\n{\n  \"workspaceRoot\": \"/path/to/your/workspace\",\n  \"blockedPaths\": [\".git\", \".env\", \"node_modules\"],\n  \"blockedPatterns\": [\"*.key\", \"*.pem\", \"*.env\"],\n  \"maxFileSize\": 104857600,\n  \"maxBatchSize\": 1073741824,\n  \"maxOperationsPerMinute\": 100,\n  \"enableAuditLog\": true,\n  \"readOnly\": false\n}\n```\n\n### 2. Start the Server\n\n```bash\nmcp-filesystem --config ./mcp-filesystem-config.json\n```\n\n### 3. Configure in Your MCP Client\n\nAdd to your MCP client configuration (e.g., Claude Desktop, Kiro):\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"mcp-filesystem\",\n      \"args\": [\"--config\", \"/path/to/mcp-filesystem-config.json\"]\n    }\n  }\n}\n```\n\n## Available Tools\n\nThe server exposes 12 MCP tools for filesystem operations:\n\n### 1. fs_batch_operations\n\nExecute multiple filesystem operations atomically with rollback support.\n\n**Parameters:**\n\n- `operations`: Array of operations (copy, move, delete)\n- `atomic`: Boolean (default: true) - rollback all on failure\n\n**Example:**\n\n```typescript\n{\n  \"operations\": [\n    { \"type\": \"copy\", \"source\": \"file1.txt\", \"destination\": \"backup/file1.txt\" },\n    { \"type\": \"move\", \"source\": \"temp.txt\", \"destination\": \"archive/temp.txt\" },\n    { \"type\": \"delete\", \"source\": \"old.txt\" }\n  ],\n  \"atomic\": true\n}\n```\n\n### 2. fs_watch_directory\n\nMonitor a directory for filesystem changes.\n\n**Parameters:**\n\n- `path`: Directory to watch\n- `recursive`: Boolean - watch subdirectories\n- `filters`: Array of glob patterns to filter events\n\n**Returns:** Session ID for retrieving events\n\n**Example:**\n\n```typescript\n{\n  \"path\": \"src\",\n  \"recursive\": true,\n  \"filters\": [\"*.ts\", \"*.js\"]\n}\n```\n\n### 3. fs_get_watch_events\n\nRetrieve accumulated events from a watch session.\n\n**Parameters:**\n\n- `sessionId`: Watch session ID from fs_watch_directory\n\n**Returns:** Array of filesystem events (create, modify, delete, rename)\n\n### 4. fs_stop_watch\n\nStop a directory watch session and clean up resources.\n\n**Parameters:**\n\n- `sessionId`: Watch session ID to stop\n\n### 5. fs_search_files\n\nSearch for files by name, content, or metadata.\n\n**Parameters:**\n\n- `query`: Search query string\n- `searchType`: \"name\", \"content\", or \"both\"\n- `fileTypes`: Array of file extensions to filter\n- `minSize`, `maxSize`: Size constraints in bytes\n- `modifiedAfter`: ISO date string\n- `useIndex`: Boolean - use file index for faster search\n\n**Example:**\n\n```typescript\n{\n  \"query\": \"TODO\",\n  \"searchType\": \"content\",\n  \"fileTypes\": [\".ts\", \".js\"],\n  \"useIndex\": true\n}\n```\n\n### 6. fs_build_index\n\nBuild a searchable index of files for fast searching.\n\n**Parameters:**\n\n- `path`: Directory to index\n- `includeContent`: Boolean - index file contents (text files only)\n\n**Returns:** Index statistics (file count, total size, index size)\n\n### 7. fs_create_symlink\n\nCreate a symbolic link within the workspace.\n\n**Parameters:**\n\n- `linkPath`: Path where symlink will be created\n- `targetPath`: Path the symlink points to (must be within workspace)\n\n### 8. fs_compute_checksum\n\nCompute file checksum for integrity verification.\n\n**Parameters:**\n\n- `path`: File path\n- `algorithm`: \"md5\", \"sha1\", \"sha256\", or \"sha512\"\n\n**Returns:** Checksum hex string\n\n### 9. fs_verify_checksum\n\nVerify a file's checksum matches expected value.\n\n**Parameters:**\n\n- `path`: File path\n- `checksum`: Expected checksum hex string\n- `algorithm`: Hash algorithm used\n\n**Returns:** Boolean verification result\n\n### 10. fs_analyze_disk_usage\n\nAnalyze disk usage and identify large files/directories.\n\n**Parameters:**\n\n- `path`: Directory to analyze\n- `depth`: Maximum depth to traverse\n- `groupByType`: Boolean - group results by file extension\n\n**Returns:** Usage report with sizes, largest files, and type breakdown\n\n### 11. fs_copy_directory\n\nRecursively copy a directory with options.\n\n**Parameters:**\n\n- `source`: Source directory\n- `destination`: Destination directory\n- `preserveMetadata`: Boolean - preserve timestamps and permissions\n- `exclusions`: Array of glob patterns to exclude\n\n**Returns:** Copy statistics (files copied, bytes transferred, duration)\n\n### 12. fs_sync_directory\n\nSync directories by copying only newer or missing files.\n\n**Parameters:**\n\n- `source`: Source directory\n- `destination`: Destination directory\n- `exclusions`: Array of glob patterns to exclude\n\n**Returns:** Sync statistics (files copied, files skipped, bytes transferred)\n\n## Configuration Reference\n\n### Required Configuration\n\n- **workspaceRoot**: Absolute path to workspace directory (REQUIRED)\n  - All operations are confined to this directory\n  - Cannot be changed after server starts\n\n### Security Configuration\n\n- **allowedSubdirectories**: Array of subdirectories within workspace (optional)\n\n  - If specified, operations are further restricted to these paths\n  - Example: `[\"src\", \"tests\", \"docs\"]`\n\n- **blockedPaths**: Array of paths to block (relative to workspace)\n\n  - Example: `[\".git\", \".env\", \"node_modules\", \".ssh\"]`\n\n- **blockedPatterns**: Array of regex patterns to block\n  - Example: `[\"*.key\", \"*.pem\", \"*.env\", \"*secret*\", \"*password*\"]`\n\n### Resource Limits\n\n- **maxFileSize**: Maximum file size in bytes (default: 100MB)\n- **maxBatchSize**: Maximum total size for batch operations (default: 1GB)\n- **maxOperationsPerMinute**: Rate limit per agent (default: 100)\n\n### Operational Settings\n\n- **enableAuditLog**: Enable operation logging (default: true)\n- **requireConfirmation**: Require confirmation for destructive operations (default: true)\n- **readOnly**: Enable read-only mode (default: false)\n\n## Security Features\n\n### Multi-Layer Security Architecture\n\nThe server implements 10 layers of path validation:\n\n1. **Absolute Path Resolution**: Prevents relative path tricks\n2. **Workspace Boundary Check**: Ensures path is within workspace\n3. **Path Traversal Detection**: Blocks `..` and `./` sequences\n4. **System Path Blocklist**: Hardcoded system directories (cannot be overridden)\n5. **Sensitive Pattern Blocklist**: Hardcoded sensitive files (cannot be overridden)\n6. **Subdirectory Restrictions**: Optional allowlist within workspace\n7. **User Blocklist**: Custom blocked paths\n8. **User Pattern Blocklist**: Custom blocked patterns\n9. **Read-Only Mode**: Prevents write/delete operations\n10. **Symlink Validation**: Validates symlink targets are within workspace\n\n### Hardcoded Security (Cannot Be Disabled)\n\n**System Paths (Always Blocked):**\n\n- `/etc`, `/sys`, `/proc`, `/dev`, `/boot`, `/root`\n- `C:\\Windows`, `C:\\Program Files`\n- `/System`, `/Library`, `/Applications` (macOS)\n- `/bin`, `/sbin`, `/usr/bin`, `/usr/sbin`\n\n**Sensitive Patterns (Always Blocked):**\n\n- `.ssh/`, `.aws/`, `.kube/`\n- `id_rsa`, `*.pem`, `*.key`, `*.p12`, `*.pfx`\n- Files containing: `password`, `secret`, `token`\n- `.env` files\n\n### Audit Logging\n\nAll operations are logged with:\n\n- Timestamp\n- Operation type\n- Paths involved\n- Result (success/failure)\n- Security violations logged separately\n\n## Usage Examples\n\n### Example 1: Batch File Operations\n\n```typescript\n// Copy multiple files atomically\nconst result = await mcpClient.callTool(\"fs_batch_operations\", {\n  operations: [\n    { type: \"copy\", source: \"src/file1.ts\", destination: \"backup/file1.ts\" },\n    { type: \"copy\", source: \"src/file2.ts\", destination: \"backup/file2.ts\" },\n    { type: \"copy\", source: \"src/file3.ts\", destination: \"backup/file3.ts\" },\n  ],\n  atomic: true, // All succeed or all rollback\n});\n```\n\n### Example 2: Watch Directory for Changes\n\n```typescript\n// Start watching\nconst watchResult = await mcpClient.callTool(\"fs_watch_directory\", {\n  path: \"src\",\n  recursive: true,\n  filters: [\"*.ts\", \"*.tsx\"],\n});\n\nconst sessionId = watchResult.sessionId;\n\n// Later, get events\nconst events = await mcpClient.callTool(\"fs_get_watch_events\", {\n  sessionId,\n});\n\n// Stop watching\nawait mcpClient.callTool(\"fs_stop_watch\", { sessionId });\n```\n\n### Example 3: Search Files with Indexing\n\n```typescript\n// Build index first\nawait mcpClient.callTool(\"fs_build_index\", {\n  path: \"src\",\n  includeContent: true,\n});\n\n// Fast search using index\nconst results = await mcpClient.callTool(\"fs_search_files\", {\n  query: \"TODO\",\n  searchType: \"content\",\n  fileTypes: [\".ts\", \".js\"],\n  useIndex: true,\n});\n```\n\n### Example 4: Verify File Integrity\n\n```typescript\n// Compute checksum\nconst checksumResult = await mcpClient.callTool(\"fs_compute_checksum\", {\n  path: \"important-file.zip\",\n  algorithm: \"sha256\",\n});\n\n// Later, verify integrity\nconst verifyResult = await mcpClient.callTool(\"fs_verify_checksum\", {\n  path: \"important-file.zip\",\n  checksum: checksumResult.checksum,\n  algorithm: \"sha256\",\n});\n```\n\n### Example 5: Sync Directories\n\n```typescript\n// Sync only newer/missing files\nconst syncResult = await mcpClient.callTool(\"fs_sync_directory\", {\n  source: \"src\",\n  destination: \"backup\",\n  exclusions: [\"*.test.ts\", \"node_modules/**\"],\n});\n\nconsole.log(\n  `Copied: ${syncResult.filesCopied}, Skipped: ${syncResult.filesSkipped}`\n);\n```\n\n## Troubleshooting\n\n### Error: \"Path traversal detected - path outside workspace\"\n\n**Cause**: Attempting to access files outside the configured workspace root.\n\n**Solution**:\n\n- Verify your `workspaceRoot` configuration is correct\n- Ensure all paths are relative to the workspace root\n- Check for `..` sequences in paths\n\n### Error: \"Cannot access system directories\"\n\n**Cause**: Attempting to access hardcoded system paths.\n\n**Solution**: These paths are always blocked for security. Configure your workspace to avoid system directories.\n\n### Error: \"Cannot access sensitive files\"\n\n**Cause**: Attempting to access files matching sensitive patterns (`.ssh/`, `*.key`, etc.).\n\n**Solution**: These patterns are always blocked. If you need to access these files, they must be renamed or moved outside sensitive patterns.\n\n### Error: \"Rate limit exceeded\"\n\n**Cause**: Too many operations in a short time period.\n\n**Solution**:\n\n- Increase `maxOperationsPerMinute` in configuration\n- Batch operations together using `fs_batch_operations`\n- Add delays between operations\n\n### Error: \"File size exceeds maximum\"\n\n**Cause**: File size exceeds `maxFileSize` configuration.\n\n**Solution**: Increase `maxFileSize` in configuration or split large files.\n\n### Watch Events Not Appearing\n\n**Cause**: Events may be filtered or watch session not active.\n\n**Solution**:\n\n- Verify watch session is active with correct `sessionId`\n- Check `filters` parameter - ensure patterns match your files\n- Ensure files are within watched directory (check `recursive` setting)\n\n### Search Returns No Results\n\n**Cause**: Index may be outdated or search parameters too restrictive.\n\n**Solution**:\n\n- Rebuild index with `fs_build_index`\n- Check `fileTypes` filter isn't excluding your files\n- Verify `query` matches file content/names\n- Try with `useIndex: false` for filesystem search\n\n### Symlink Creation Fails\n\n**Cause**: Symlink target is outside workspace.\n\n**Solution**: All symlink targets must be within the workspace root. This is a security requirement and cannot be disabled.\n\n## Performance Tips\n\n1. **Use Indexing for Large Codebases**: Build an index with `fs_build_index` for faster searches\n2. **Batch Operations**: Use `fs_batch_operations` instead of individual operations\n3. **Filter Watch Events**: Use specific glob patterns to reduce event volume\n4. **Limit Search Scope**: Use `fileTypes` and size filters to narrow search results\n5. **Incremental Sync**: Use `fs_sync_directory` instead of full copy when possible\n\n## Development\n\n### Building from Source\n\n```bash\ngit clone https://github.com/Digital-Defiance/ai-capabilities-suite.git\ncd ai-capabilities-suite/packages/mcp-filesystem\nyarn install\nyarn build\n```\n\n### Running Tests\n\n```bash\nyarn test              # Run all tests\nyarn test:coverage     # Run with coverage\nyarn test:watch        # Watch mode\n```\n\n### Running Locally\n\n```bash\nyarn build\nnode dist/cli.js --config ./config.json\n```\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](../../CONTRIBUTING.md) in the root repository.\n\n## License\n\nMIT License - see [LICENSE](./LICENSE) for details.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/Digital-Defiance/ai-capabilities-suite/issues)\n- **Email**: <info@digitaldefiance.org>\n- **Documentation**: [Full Documentation](https://github.com/Digital-Defiance/ai-capabilities-suite/tree/main/packages/mcp-filesystem)\n\n## Related Projects\n\n- [MCP ACS Debugger](../mcp-debugger-server) - Debug Node.js applications via MCP\n- [MCP ACS Process](../mcp-process) - Process management via MCP\n- [MCP ACS Screenshot](../mcp-screenshot) - Screenshot capture via MCP\n\n## Acknowledgments\n\nBuilt with:\n\n- [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)\n- [Chokidar](https://github.com/paulmillr/chokidar) - File watching\n- [Lunr](https://lunrjs.com/) - Full-text search\n- [fast-glob](https://github.com/mrmlnc/fast-glob) - Fast file pattern matching\n","readmeFilename":"README.md"}