- Update documentation with directory_tree declaration
- Add excludePatterns parameter to DirectoryTreeArgsSchema
- Implement pattern exclusion in buildTree function using minimatch
- Pass excludePatterns through recursive calls
- Support both simple and glob patterns for exclusion
- Maintain consistent behavior with search_files implementation
* Add tests and fix implementation
---------
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
Co-authored-by: Adam Jones <adamj+git@anthropic.com>
Co-authored-by: Adam Jones <adamj@anthropic.com>
* fix: comprehensive Windows path handling improvements
- Add path-utils module for consistent path handling
- Handle Windows paths with spaces via proper quoting
- Support Unix-style Windows paths (/c/path)
- Support WSL paths (/mnt/c/path)
- Add comprehensive test coverage
- Fix path normalization for all path formats
Closes#447
* tested locally and working now
* Add filesystem path utils and tests
* Ensure Windows drive letters are capitalized in normalizePath
* adding test for gh pr comment
* pushing jest and windows testing config
* last commit? fixing comments on PR
* Fix bin and bump sdk
* Remove redundant commonjs version of path-utils and import from ts version
* Remove copying cjs file
* Remove copying run-server
* Remove complex args parsing and do other cleanup
* Add missing tools details to Readme
* Move utility functions from index to lib
* Add more tests and handle very small and very large files edge cases
* Finish refactoring and include original security fix comments
* On Windows, also check for drive root
* Check symlink support on restricted Windows environments
* Fix tests
* Bump SDK and package version
* Clean up
---------
Co-authored-by: olaservo <olahungerford@gmail.com>
Co-authored-by: adam jones <adamj+git@anthropic.com>
The tool description was ambiguous about subdirectory access within allowed directories.
Updated the description to explicitly state that subdirectories are also accessible.
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
The filesystem server does not actually implement MCP Resources capability
but the README incorrectly claimed it provides 'file://system' resource interface.
Fixes#399
Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
- Remove unnecessary explanatory note about JSON format
- JSON examples already demonstrate the correct format clearly
- Streamlines documentation to focus on essential information
- Maintains reference to official VS Code MCP documentation
The removed note was redundant since both configuration methods
use identical JSON structure shown in the examples.
- Add link to official VS Code MCP documentation in all server READMEs
- Enhances existing VS Code installation instructions with authoritative reference
- Provides users with comprehensive documentation for advanced configuration
- Complements the existing two-method approach with additional resources
Affects: everything, filesystem, git, memory, sequentialthinking
- Replace outdated 'Preferences: Open Settings (JSON)' instructions
- Add proper guidance for 'MCP: Open User Configuration' command
- Update JSON examples to remove mcp wrapper key
- Clarify user vs workspace configuration methods
- Fixes issue with outdated documentation across all servers
Affects: sequentialthinking, filesystem, memory, everything, git
- Add symlink resolution using fs.realpath() for security consistency
- Support home directory expansion (~/) in root URI specifications
- Improve error handling with null checks, detailed error messages, and informative logging
- Change allowedDirectories from constant to variable to support roots protocol directory management
- Extract roots processing logic from index.ts into testable roots-utils.ts module and add Test suite
- Update README to recommend MCP roots protocol for dynamic directory management
- Add support for dynamic directory updates via MCP roots protocol
- Allow clients to override command-line directories at runtime
- Maintain backwards compatibility with existing command-line args
- Add comprehensive error handling for edge cases
- Update documentation to explain both configuration methods
Fixes#401
- Fixed UNC path handling bug in normalizePath function to preserve leading double backslashes
- Added comprehensive test coverage for drive letter capitalization and UNC paths
- Removed file-operations.test.ts and core-functionality.test.ts as they were testing their own code rather than actual server functionality
- All path-utils tests now pass with 100% coverage of the actual utility functions
- Add head/tail functionality for memory-efficient file reading
- Implement new list_directory_with_sizes command with file size info
- Add formatSize utility for human-readable file sizes
following config throws error
```
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"~"
]
},
```
```
Error accessing directory ~: Error: ENOENT: no such file or directory, stat '~'
at async Object.stat (node:internal/fs/promises:1032:18)
at async file:///Users/USER_NAME/.npm/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:33:23━━━━━━━━━━━━━━━━━
at async Promise.all (index 0)
at async file:///Users/USER_NAME/.npm/_npx/a3241bba59c344f5/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js:31:1 {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '~'
}
```
this commit fixes error and allows to set ~ as allowed directory