本地文件访问服务

一个提供安全访问本地文件的模型上下文协议(MCP)服务器,支持文件列表、内容读取及安全验证功能。

  • by AliceLynxx
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 alicelynxx/localfiles-mcp-server

使用说明

本地文件MCP服务器

一种模型上下文协议(MCP)服务器,提供从指定目录对本地文件的安全访问。

特性

  • 列出已配置目录中的文件
  • 读取文件内容(文本和二进制)
  • 文件大小和扩展名过滤
  • 安全路径验证
  • 通过.env文件或环境变量进行配置

配置

方法1:.env文件(推荐)

创建一个 .env 文件与位于同一目录中 app.py:

# Comma-separated list of allowed directories
ALLOWED_DIRECTORIES=/home/user/documents,/home/user/projects,/path/to/your/files

# Maximum file size in bytes (default: 10MB)
MAX_FILE_SIZE=10485760

# Allowed file extensions (comma-separated)
ALLOWED_EXTENSIONS=.txt,.md,.py,.js,.json,.yaml,.yml,.csv,.xml,.html,.css

方法2:环境变量

直接设置环境变量:

export ALLOWED_DIRECTORIES="/home/user/documents,/home/user/projects"
export MAX_FILE_SIZE=10485760
export ALLOWED_EXTENSIONS=".txt,.md,.py,.js,.json,.yaml,.yml,.csv,.xml,.html,.css"

用法

启动服务器

python app.py

可用工具

  1. lf_list_files -列出允许目录中的文件
  2. lf_read_file -读取特定文件的内容
  3. lf_get_config -获取当前服务器配置

安全

  • 仅限于已配置的文件 ALLOWED_DIRECTORIES 可以访问
  • 文件大小限制可防止读取过大的文件
  • 文件扩展名筛选限制对指定文件类型的访问
  • 所有路径都经过解析和验证,以防止目录遍历攻击

故障排除

“未配置允许的目录”错误

以下情况下会发生此错误:

  1. 不存在.env文件 -创建一个 .env 提交 ALLOWED_DIRECTORIES 设置
  2. 空允许_目录 -确保该值不为空
  3. 工作目录错误 -服务器正在查找 .env 首先在脚本目录中,然后在当前目录中
  4. 未设置环境变量 -如果不使用.env,请确保环境变量设置正确

调试配置

使用 lf_get_config 用于检查服务器实际使用的配置的工具:

# This will show the current configuration
lf_get_config()

示例.env文件

# Example configuration for a development environment
ALLOWED_DIRECTORIES=/home/alice/projects,/home/alice/documents,/tmp/safe-files
MAX_FILE_SIZE=52428800
ALLOWED_EXTENSIONS=.txt,.md,.py,.js,.json,.yaml,.yml,.csv,.xml,.html,.css,.log

需求

  • Python 3.7+
  • fastmcp库
  • pathlib(内置)

安装

pip install fastmcp