文件系统管理服务器

一个完整的Model Context Protocol (MCP)服务器实现,提供文件系统操作和AI驱动的文件编辑功能。

  • by Niketan77
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 niketan77/mcp-filesystem-server

使用说明

MCP文件系统服务器

A完整 模型上下文协议(MCP)服务器 实现具有AI驱动的文件编辑功能的文件系统操作。

演示视频:

https://drive.google.com/file/d/18sCyVpAekMkDgUfsKi423VfPN6Rbuj9T/view?usp=drive_link

📋 描述

本项目的建设是为了满足以下要求:

已实施:

  1. 实现模型上下文协议(MCP)服务器 用于文件系统操作
  2. 创建文件管理工具 支持创建、编辑和删除操作
  3. 开发MCP客户端 使用适当的MCP协议进行通信
  4. 构建一个简单的前端应用程序 用于用户交互
  5. 启用文件夹上传功能 用于批处理文件管理
  6. 实现提示框 用于使用自然语言进行AI驱动的文件编辑

🎯 项目概述

该实施展示了一个完整的MCP生态系统:

  • 真正的MCP协议:符合JSON-RPC 2.0标准的服务器,具有正确的工具注册
  • 人工智能集成:Mixtral-8x7B-智能文件编辑指令模型
  • 现代前端:干净、响应迅速的web界面,具有专业的用户体验
  • 文件管理:完成文件系统管理的CRUD操作
  • 下载系统:单个文件下载和批量ZIP导出

🏗️ 技术架构

MCP协议实现

┌─────────────┐    ┌──────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│Web Frontend │ ←→ │ Flask Bridge │ ←→ │ MCP Client  │ ←→ │ MCP Server  │ ←→ │ AI Service  │
│             │    │              │    │             │    │             │    │             │
│File Upload  │    │ REST API     │    │JSON-RPC 2.0 │    │ File Ops    │    │ AI Editing  │
│User Actions │    │ CORS Enabled │    │ Protocol    │    │ Tool Reg.   │    │ Mixtral-8x7B│
│Notifications│    │ File Serving │    │ stdio comm  │    │ Validation  │    │ Together AI │
└─────────────┘    └──────────────┘    └─────────────┘    └─────────────┘    └─────────────┘

部件分解

  1. MCP服务器 (server/mcp_server.py)

    • 真正的JSON-RPC 2.0协议实现
    • 工具注册和能力广告
    • 带验证的文件操作处理程序
    • 人工智能集成,实现智能编辑
  2. MCP客户端 (server/mcp_client.py)

    • 符合协议的通信层
    • 具有适当错误管理的请求/响应处理
    • 通过stdio进行子进程通信
  3. 弗拉斯克大桥 (server/mcp_bridge.py)

    • 用于前端通信的REST API端点
    • 文件上传/下载处理
    • 跨源请求的CORS配置
    • 错误处理和响应格式
  4. 前端 (frontend/)

    • 现代HTML5/CSS3/JavaScript界面
    • 响应式设计,专业造型
    • 实时文件管理和通知

📁 项目结构

mcp-filesystem-server/
├── run.py                    # Main entry point
├── requirements.txt          # Dependencies
├── .env.example             # Environment configuration
├── server/
│   ├── mcp_server.py        # Core MCP server (JSON-RPC 2.0)
│   ├── mcp_client.py        # MCP protocol client
│   ├── mcp_bridge.py        # Flask bridge for frontend
│   └── tools/               # MCP tool implementations
├── frontend/                # Web interface
│   ├── index.html          # Main UI
│   ├── scripts/app.js      # Frontend logic
│   └── styles/main.css     # Styling
├── uploaded_files/          # File storage directory
└── test_mcp.py             # MCP protocol tests

🚀 快速入门指南

先决条件

  • Python 3.7+ 安装在您的系统上
  • 点 包管理器
  • 一起AI API密钥 (可选,用于AI编辑功能)

安装步骤

  1. 克隆存储库:

    git clone https://github.com/Niketan77/mcp-filesystem-server.git
    cd mcp-filesystem-server
    
  2. 创建虚拟环境(推荐):

    # Windows
    python -m venv venv
    venv\Scripts\activate
    
    # macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 设置环境变量:

    # Copy the example environment file
    cp .env.example .env
    
    # Edit .env and add your Together AI API key (optional)
    # TOGETHER_AI_API_KEY=your_api_key_here
    
  5. 运行服务器:

    python run.py
    
  6. 访问应用程序:

    • 打开浏览器并导航到: http://localhost:5000
    • 前端界面将自动加载

Getting Together AI API密钥(可选)

  1. 访问 一起AI 并注册
  2. 导航到仪表板并生成API密钥或(https://api.together.ai/settings/api-keys)
  3. 创建密钥并复制它
  4. 将密钥添加到您的 .env 文件:
    TOGETHER_AI_API_KEY=your_actual_api_key_here
    

🔧 MCP工具可用

服务器实现了这些MCP工具:

工具 说明 参数
create_file 创建新文件 filename, content
edit_file 编辑文件(手动或人工智能) filename, content/prompt, use_ai
delete_file 删除文件 filename
read_file 读取文件内容 filename

🧪 测试与验证

自动化测试

运行全面的MCP协议测试套件:

python test_mcp.py

该测试验证:

  • ✅ MCP服务器启动和初始化
  • ✅ 工具发现和注册(5个工具)
  • ✅ 文件创建、读取、编辑和删除
  • ✅ AI驱动的编辑功能
  • ✅ JSON-RPC 2.0协议合规性
  • ✅ 错误处理和边缘情况

手动测试

  1. 上传测试:上传各种文件类型和文件夹结构
  2. 编辑测试:使用AI提示修改文件
  3. 下载测试:测试个人和批量下载
  4. UI测试:验证通知、响应式设计和用户流

预期测试输出

🔬 MCP Filesystem Server Test Suite
🧪 Testing MCP Filesystem Server...
==================================================
1. Starting MCP server... ✅
2. Testing tool discovery... ✅ Found 5 tools
3. Testing file creation... ✅
4. Testing file reading... ✅
5. Testing file listing... ✅
6. Testing manual file editing... ✅
7. Testing AI-powered editing... ✅
8. Testing file deletion... ✅
9. Verifying file deletion... ✅
==================================================
🎉 All MCP tests passed successfully!

� 如何使用

1.上传文件

  • 文件夹上传:点击“点击选择文件夹”上传整个目录结构
  • 单个文件:对特定文件使用“单击以选择单个文件”
  • 拖放:只需将文件或文件夹拖动到上传区域即可

2.文件管理

  • 浏览文件:在文件浏览器中查看所有上传的文件
  • 文件计数:查看标题中的文件总数
  • 删除文件:删除单个文件或一次删除所有文件

3.使用AI编辑文件

  • 点击 “编辑” 在任何文件上打开编辑器
  • 输入a 自然语言提示 描述您想要的更改:
    • “向此代码添加注释”
    • “修复任何语法错误”
    • “将此转换为TypeScript”
    • “优化此功能以提高性能”
  • 点击 “应用AI编辑” 看着AI修改你的文件
  • 查看并保存 变化

4.手动文件编辑

  • 在编辑器中打开任何文件
  • 直接在文本区域修改内容
  • 点击 “保存” 应用更改

5.下载文件

  • 单个文件:单击下载图标(📥) 任何文件旁边
  • 批量下载:使用“📦 下载全部为ZIP”以获取ZIP存档中的所有文件
  • 当前文件:从编辑器下载当前打开的文件

🎨 功能展示

文件操作

  • 智能上传:处理文件夹和单个文件
  • 文件类型支持:文本文件、代码文件、配置文件等
  • 尺寸验证:可配置的文件大小限制(默认值:10MB)
  • 进度反馈:实时上传和运行状态

人工智能集成

  • 自然语言编辑:用简明的英语描述变化
  • 混音模型:由Mixtral-8x7B-Instruct提供支持,可获得高质量的结果
  • 上下文感知:AI理解文件类型并提供适当的修改

支持的文件类型

该应用程序支持基于文本的文件,包括:

类别 扩展
代码文件 .py, .js, .ts, .html, .css, .java, .cpp, .c, .h, .php, .rb, .go, .rs
数据文件 .txt, .md, .csv, .json, .xml, .yaml, .yml, .toml
配置文件 .ini, .cfg, .conf, .env, .gitignore, .dockerignore
脚本 .sh, .bat, .ps1, .fish, .zsh
文档 .rst, .tex, .wiki
日志 .log, .out, .err

配置限制

设置 默认值 说明
文件大小 10MB 最大单个文件大小
上传限制 无限 文件数量无限制
AI超时 30s AI操作的最长时间
会话存储 本地 存储在中的文件 uploaded_files/

🤝 贡献

我们欢迎捐款!以下是如何开始:

开发设置

  1. 分叉存储库
  2. 克隆你的叉子: git clone https://github.com/Niketan77/mcp-filesystem-server.git
  3. 创建虚拟环境: python -m venv venv
  4. 安装依赖项: pip install -r requirements.txt
  5. 创建要素分支: git checkout -b feature-name

进行更改

  1. 后端:修改中的文件 server/ 目录
  2. 前端:更新中的文件 frontend/ 目录
  3. 测试:添加新功能的测试
  4. 文档:如果需要,请更新README

拉取请求流程

  1. 运行测试: python test_mcp.py
  2. 提交更改: git commit -m "Add feature description"
  3. 推叉: git push origin feature-name
  4. 创建带有详细描述的拉取请求

代码的风格

  • Python代码遵循PEP 8
  • 使用有意义的变量名
  • 为复杂逻辑添加注释
  • 保持一致的压痕

⭐ 如果你觉得这个项目很有帮助,请考虑在GitHub上给它一颗星!