mcpField
M
Mcp Filesystem

Mcp Filesystem

本地服务
npmjs.com文件与存储760 周前更新

关于 Mcp Filesystem

Mcp Filesystem 是面向 AI 模型的文件系统 MCP 服务,通过预定义目录和严格路径校验限制访问范围。它提供文件与目录操作,并支持安全执行系统命令。

主要功能

  1. 01限制访问预定义目录
  2. 02严格校验文件路径
  3. 03读取、写入、编辑和移动文件
  4. 04创建、列出和搜索目录
  5. 05查看文件元数据
  6. 06校验后执行系统命令

适用场景

  1. 01在允许的目录内读取或修改文件
  2. 02浏览目录树并搜索文件
  3. 03让模型查看文件元数据
  4. 04在受控路径范围执行系统命令

MCP 相关

该 MCP 服务向 MCP 客户端开放受限的文件系统操作,以及经过校验的系统命令执行工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@gabrielmaialva33/mcp-filesystem"
]
}
}
}
启动命令npx -y @gabrielmaialva33/mcp-filesystem

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@gabrielmaialva33/mcp-filesystem

工具

16

收录的工具列表 · 更新于 3 周前

参数类型必填说明
pathstring是要读取的文件路径
encodingenum否文件编码utf-8 | utf8 | base64

详细介绍


MCP 文件系统
安全的 MCP 文件系统服务

安全的模型上下文协议(MCP)服务,可在预定义目录中提供文件系统访问能力

许可证 GitHub 主要语言 GitHub 语言数量 仓库大小 GitHub 最近提交 Maia


关于   |    技术   |    工具   |    安装   |    使用方法   |    许可证


:bookmark: 关于

MCP 文件系统服务通过模型上下文协议为 AI 模型提供安全的文件系统访问能力。它会严格验证路径,并且只允许访问预定义目录。


:computer: 技术


:wrench: 工具


:package: 安装

:heavy_check_mark: 前置条件

必须安装以下软件:


: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
Gabriel Maia

许可证

MIT 许可证

README 配图

© 2024-present Maia

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。