关于 Mcp Filesystem
Mcp Filesystem 是面向 AI 模型的文件系统 MCP 服务,通过预定义目录和严格路径校验限制访问范围。它提供文件与目录操作,并支持安全执行系统命令。
主要功能
- 01限制访问预定义目录
- 02严格校验文件路径
- 03读取、写入、编辑和移动文件
- 04创建、列出和搜索目录
- 05查看文件元数据
- 06校验后执行系统命令
适用场景
- 01在允许的目录内读取或修改文件
- 02浏览目录树并搜索文件
- 03让模型查看文件元数据
- 04在受控路径范围执行系统命令
MCP 相关
该 MCP 服务向 MCP 客户端开放受限的文件系统操作,以及经过校验的系统命令执行工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
16收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| path | string | 是 | 要读取的文件路径 |
| encoding | enum | 否 | 文件编码utf-8 | utf8 | base64 |
详细介绍
安全的 MCP 文件系统服务
安全的模型上下文协议(MCP)服务,可在预定义目录中提供文件系统访问能力
关于 | 技术 | 工具 | 安装 | 使用方法 | 许可证
:bookmark: 关于
MCP 文件系统服务通过模型上下文协议为 AI 模型提供安全的文件系统访问能力。它会严格验证路径,并且只允许访问预定义目录。
:computer: 技术
:wrench: 工具
:package: 安装
:heavy_check_mark: 前置条件
必须安装以下软件:
- Node.js(>=18.0.0)
- Git
- pnpm(>=8.0.0)
- Docker(可选)
- Docker Compose(可选)
:arrow_down: 克隆仓库
$ git clone https://github.com/gabrielmaialva33/mcp-filesystem.git
$ cd mcp-filesystem
:arrow_forward: 运行应用
本地开发
# Install dependencies
$ pnpm install
# Build the application
$ pnpm build
# Run the server (specify directory to allow access to)
$ pnpm start /path/to/allowed/directory
# Or use configuration file
$ pnpm start --config=config.json
使用 NPM 包
# Install globally
$ npm install -g @gabrielmaialva33/mcp-filesystem
# Run the server
$ mcp-filesystem /path/to/allowed/directory
# Or use with npx (no installation needed)
$ npx @gabrielmaialva33/mcp-filesystem /path/to/allowed/directory
# Create a sample configuration file
$ npx @gabrielmaialva33/mcp-filesystem --create-config=config.json
使用 Docker
# Build the Docker image
$ docker build -t gabrielmaialva33/mcp-filesystem .
# Run using Docker
$ docker run -i --rm -v /path/to/data:/data:ro gabrielmaialva33/mcp-filesystem /data
# Use with config file
$ docker run -i --rm -v /path/to/config.json:/app/config.json -v /path/to/data:/data gabrielmaialva33/mcp-filesystem --config=/app/config.json
使用 Docker Compose
# Create a data directory
$ mkdir -p data
# Start the server
$ docker-compose up -d
:gear: 使用方法
在 Claude Desktop 中使用
可以将 Claude Desktop 配置为使用此 MCP 服务访问文件系统。在 claude_desktop_config.json 中添加以下内容:
使用本地安装(推荐)
{
"mcpServers": {
"filesystem": {
"command": "mcp-filesystem",
"args": [
"/Users/gabrielmaia/Documents",
"/Users/gabrielmaia/Desktop",
"/Users/gabrielmaia/Downloads"
]
}
}
}
确保可执行文件可全局使用:
# Make the binary executable
chmod +x /Users/gabrielmaia/.nvm/versions/node/v22.14.0/bin/mcp-filesystem
使用 NPX
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@gabrielmaialva33/mcp-filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir"
]
}
}
}
使用 Docker
注意:使用 Docker 时,默认必须将所有目录挂载到 /projects。添加 ro 标志会将目录设为只读。
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
"--mount",
"type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
"--mount",
"type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
"gabrielmaialva33/mcp-filesystem",
"/projects"
]
}
}
}
可用工具
MCP 文件系统服务提供以下工具:
文件系统操作
- read_file:读取文件内容
- read_multiple_files:一次读取多个文件
- write_file:创建或覆盖文件
- edit_file:精准编辑并预览差异
- create_directory:递归创建目录
- list_directory:列出目录内容
- directory_tree:获取递归目录树视图
- move_file:移动或重命名文件
- search_files:查找符合模式的文件
- get_file_info:获取文件元数据
- list_allowed_directories:查看可访问的目录
系统与网络操作
- get_metrics:查看服务性能指标(v0.3.0+)
- execute_command:安全地执行系统命令(v0.3.1+)
- curl_request:向外部 API 发送 HTTP 请求(将在 v1.2.0 推出)
使用 curl_request 工具(将在 v1.2.0 推出)
curl_request 工具将允许你向外部 API 发送 HTTP 请求:
// Example: Making a GET request with authentication
curl_request({
url: 'https://api.example.com/data',
method: 'GET',
headers: {
Authorization: 'Bearer your_token_here',
},
})
// Example: POST request with JSON data
curl_request({
url: 'https://api.example.com/create',
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: '{"name":"Example","value":123}',
})
更多详细示例请参阅 docs/curl-tool-examples.md 文件。
:sparkles: 功能
核心功能
- 安全访问:严格的路径验证可防止未经授权的访问
- 文件操作:读取、写入、编辑和移动文件
- 目录操作:创建、列出、获取目录树视图并搜索目录
- 元数据访问:查看文件和目录信息
- 命令执行:通过严格验证安全地执行系统命令
- Docker 支持:使用 Docker 和 Docker Compose 轻松部署
v0.3.0 中的新功能
- 结构化日志记录:提供不同级别(debug、info、warn、error)的详细日志
- 性能指标:跟踪操作次数、错误和执行时间
- 配置管理:支持 JSON 配置文件
- 路径缓存:提升频繁访问路径的性能
- 改进的错误处理:采用带结构化信息的专用错误类型
- 文件大小验证:防止加载过大的文件
- CLI 改进:提供帮助命令、版本信息和配置生成
配置选项
你可以使用以下命令创建配置文件:
$ mcp-filesystem --create-config=config.json
配置示例:
{
"allowedDirectories": ["/path/to/allowed/dir1", "/path/to/allowed/dir2"],
"logLevel": "info",
"logFile": "/path/to/logs/mcp-filesystem.log",
"serverName": "secure-filesystem-server",
"serverVersion": "0.3.0",
"cache": {
"enabled": true,
"maxSize": 1000,
"ttlMs": 60000
},
"metrics": {
"enabled": true,
"reportIntervalMs": 60000
},
"security": {
"maxFileSize": 10485760,
"allowSymlinks": true,
"validateRealPath": true
}
}
:writing_hand: 作者
| Gabriel Maia |
许可证
© 2024-present Maia
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。