【技术文档摘要】:
⚠️ 重要信息:
原始的 文件系统 MCP 服务器 可以通过在配置中使用网络路径\\wsl.localhost\DistributionName来访问 WSL 文件。
示例:{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "\\\\wsl.localhost\\Debian", "C:\\path\\to\\other\\allowed\\dir" ] } } }然而,这个项目提供了一个专门针对 WSL Linux 发行版优化的替代实现。
虽然官方服务器通过递归遍历目录来使用 Node.js 的
fs模块,但此实现利用了 WSL 内部的原生 Linux 命令(如find、grep等),使得文件列表和内容搜索操作显著加快。这对于处理大型目录树或搜索性能至关重要的情况特别有用。
因此,虽然原生网络路径可能对许多用例来说更简单,但该项目仍然是一个有价值的解决方案,适用于希望获得更好性能或更多自定义控制的 WSL 用户。
这是一个使用 Node.js 实现的 Model Context Protocol (MCP),专门用于 Windows Subsystem for Linux (WSL) 中的文件系统操作。
该项目是原始 文件系统 MCP 服务器 的分支,但完全重新设计以适应 WSL 环境。
与原始项目不同,后者处理通用文件操作,而此版本专注于 Windows 和 WSL Linux 发行版之间的无缝交互。
两个项目兼容,并且可以在同一系统上并行运行。
注意:服务器仅允许在通过 args 指定的目录内进行操作。
wsl -d <distrib>:用于操作 WSL 发行版的命令read_file
path (字符串)read_file_by_parts
path (字符串)part_number (正整数:1, 2, 3 等)read_multiple_files
paths (字符串数组)write_file
path (字符串)content (字符串)edit_file
path (字符串)edits (对象数组:{ oldText, newText })dryRun (布尔值,可选)create_directory
path (字符串)list_directory
[FILE] 或 [DIR] 前缀的目录内容path (字符串)directory_tree
path (字符串)move_file
source (字符串)destination (字符串)search_files
path (字符串)pattern (字符串)excludePatterns (字符串数组,可选)search_in_files
path (字符串) - 搜索的根目录pattern (字符串) - 要查找的文本或正则表达式模式caseInsensitive (布尔值,可选) - 不区分大小写的搜索isRegex (布尔值,可选) - 将模式视为正则表达式includePatterns (字符串数组,可选) - 包含的文件模式(例如,*.js)excludePatterns (字符串数组,可选) - 排除的文件模式maxResults (数字,可选,默认值:1000) - 返回的最大结果数contextLines (数字,可选,默认值:0) - 匹配前后显示的上下文行数get_file_info
path (字符串)list_allowed_directories
list_wsl_distributions
对于 Claude Desktop 用户:
无需额外安装——只需配置您的 claude_desktop_config.json。
NPM 包:
该包可在 npm 上找到:mcp-server-wsl-filesystem
对于开发:
node --version
npm --version
在运行服务器之前,您需要构建 TypeScript 项目:
npm install
npm run build
通过指定要使用的 WSL 发行版(可选)和要公开的目录来运行服务器:
node dist/index.js [--distro=distribution_name] <allowed_directory> [additional_directories...]
如果没有指定发行版,则将使用默认的 WSL 发行版。
访问 Ubuntu-20.04 发行版:
node dist/index.js --distro=Ubuntu-20.04 /home/user/documents
使用默认发行版:
node dist/index.js /home/user/documents
在您的 claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"wsl-filesystem": {
"command": "npx",
"args": [
"-y",
"mcp-server-wsl-filesystem",
"--distro=Ubuntu-20.04",
"/home/user/documents"
]
}
}
}
{
"mcpServers": {
"wsl-filesystem": {
"command": "npx",
"args": [
"-y",
"mcp-server-wsl-filesystem",
"/home/user/documents"
]
}
}
}
在第二个示例中,系统将使用您的默认 WSL 发行版,而无需您指定。
此分支通过以下方式将原始文件系统 MCP 服务器适配到 WSL:
此项目是 Model Context Protocol 团队创建的原始 文件系统 MCP 服务器 的分支。
此 WSL 的 MCP 服务器根据 MIT 许可证授权,遵循原始项目的许可证。这意味着您可以自由地使用、修改和分发软件,但需遵守 MIT 许可证的条款和条件。详情请参阅原始项目存储库中的 LICENSE 文件。