Skip to main content

A configurable MCP Server for Filesystem operations in Windows/Linux/MacOS, supporting stdio, streamable-http and SSE transports.

Project description

mcp_filesystem

一个可配置的MCP服务器,用于文件系统操作,支持stdio、streamable-http和SSE传输协议。

功能特性

  • 完整的文件系统操作(创建、读取、更新、删除文件和目录)
  • 跨平台支持(Windows、Linux、macOS)
  • 可配置的传输协议(stdio、streamable-http、SSE)
  • 无第三方依赖(仅使用Python标准库)
  • 深度适配uv工具,简化安装和使用

快速开始

安装uv

# Linux/macOS
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装mcp-filesystem

# 使用uv直接从PyPI安装
uv tool install mcp-filesystem

# 或者从源码安装
git clone https://github.com/yangjiacheng1996/mcp_filesystem.git
cd mcp_filesystem
uv sync

使用方法

使用stdio传输协议(由MCP客户端自动管理)

stdio传输协议不需要手动启动服务器。MCP客户端(如Cherry Studio)会在需要时自动启动和管理服务器进程。

配置方式(在MCP客户端中配置):

  • 类型: stdio
  • 命令: mcp-filesystem
  • 参数: --stdio
  • 举例:安装Chatbox,创建自定义MCP,填入命令:D:/mcp_filesystem/.venv/Scripts/mcp-filesystem --stdio

注意: 以下命令仅用于测试和调试目的,会启动一个前台进程占用命令行:

mcp-filesystem --stdio

使用streamable-http传输协议

mcp-filesystem --streamable-http --host 0.0.0.0 --port 8000

使用SSE传输协议

mcp-filesystem --sse --host 0.0.0.0 --port 8000

命令行参数说明

  • --config: 配置文件路径(默认:自动查找config.toml)
  • --stdio: 使用stdio传输协议
  • --streamable-http: 使用streamable-http传输协议
  • --sse: 使用SSE传输协议
  • --host: HTTP服务器主机地址(默认:从配置文件或0.0.0.0)
  • --port: HTTP服务器端口(默认:从配置文件或8000)

传输协议

1. stdio

  • 通过标准输入输出与MCP客户端通信
  • 适用于本地集成和命令行工具
  • 最简单的配置方式

2. streamable-http

3. SSE (Server-Sent Events)

在Cherry Studio中配置

对于stdio类型(推荐配置):

  • 类型: stdio
  • 命令: mcp-filesystem
  • 参数: --stdio

注意: 这是正确的配置方式,Cherry Studio会在需要时自动启动和管理服务器进程,无需手动运行命令。

对于streamable-http类型:

对于SSE类型:

开发指南

从源码开发

# 克隆项目
git clone https://github.com/yangjiacheng1996/mcp_filesystem.git
cd mcp_filesystem

# 安装依赖
uv sync

# 运行测试
uv run test

# 运行开发服务器
uv run dev

可用脚本

  • uv run test: 运行测试套件
  • uv run test-cov: 运行测试并生成覆盖率报告
  • uv run dev: 启动开发服务器(stdio模式)

Python版本要求

当前支持 Python >= 3.11

项目结构

mcp_filesystem/
├── src/
│   └── mcp_filesystem/
│       ├── __init__.py          # 主程序入口
│       ├── system_information.py
│       ├── path_exist.py
│       ├── directory_*.py       # 各种目录操作模块
│       └── file_*.py           # 各种文件操作模块
├── tests/                       # 测试文件
├── docs/                       # 文档
├── pyproject.toml              # 项目配置
├── config.toml                 # 服务器配置
├── uv.lock                     # uv依赖锁文件
└── README.md                   # 项目说明

发布到PyPI

项目已配置为可发布到PyPI:

# 构建包
uv build

# 发布到PyPI
uv publish --token <你的PyPI账号token>

故障排除

常见问题

  1. 权限错误: 确保有足够的权限访问目标文件和目录
  2. 端口冲突: 如果端口被占用,尝试使用不同的端口号
  3. 依赖问题: 使用 uv sync 重新同步依赖

获取帮助

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

贡献

欢迎贡献代码!请阅读贡献指南并提交Pull Request。

更新日志

v0.3.0

  • 添加SSE传输协议支持
  • 优化项目结构以支持PyPI打包
  • 深度适配uv工具
  • 更新文档和配置

v0.2.0

  • 初始版本发布
  • 支持stdio和streamable-http传输协议
  • 完整的文件系统操作功能

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_filesystem-0.3.0.tar.gz (51.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_filesystem-0.3.0-py3-none-any.whl (79.6 kB view details)

Uploaded Python 3

File details

Details for the file mcp_filesystem-0.3.0.tar.gz.

File metadata

  • Download URL: mcp_filesystem-0.3.0.tar.gz
  • Upload date:
  • Size: 51.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for mcp_filesystem-0.3.0.tar.gz
Algorithm Hash digest
SHA256 bd665e7e1cb1f4569b97815725c28574b3bcf527301bdf3e8450ec15f4b5f01b
MD5 9a541a41508dcced2f80cbb5d0cc7454
BLAKE2b-256 4db5775fbe473faab49af377b3a68a0dc6f18c40a9c631b1316e375177fd8f58

See more details on using hashes here.

File details

Details for the file mcp_filesystem-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_filesystem-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0970f8d8461a1f2915677aa26cf09b0a2a92bbe9c8d045d0adf6a6811c799f4
MD5 792a7b6c74f7660d05e3a9c1434c26ed
BLAKE2b-256 0bb746d3b4f5a0a643f1da6ae4fdc781039c3ee979a760c25c68002d7b25d17c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page