使用说明
MCP文件系统服务器
A完整 模型上下文协议(MCP)服务器 实现具有AI驱动的文件编辑功能的文件系统操作。
演示视频:
https://drive.google.com/file/d/18sCyVpAekMkDgUfsKi423VfPN6Rbuj9T/view?usp=drive_link
📋 描述
本项目的建设是为了满足以下要求:
已实施:
- 实现模型上下文协议(MCP)服务器 用于文件系统操作
- 创建文件管理工具 支持创建、编辑和删除操作
- 开发MCP客户端 使用适当的MCP协议进行通信
- 构建一个简单的前端应用程序 用于用户交互
- 启用文件夹上传功能 用于批处理文件管理
- 实现提示框 用于使用自然语言进行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 │
└─────────────┘ └──────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
部件分解
-
MCP服务器 (
server/mcp_server.py)- 真正的JSON-RPC 2.0协议实现
- 工具注册和能力广告
- 带验证的文件操作处理程序
- 人工智能集成,实现智能编辑
-
MCP客户端 (
server/mcp_client.py)- 符合协议的通信层
- 具有适当错误管理的请求/响应处理
- 通过stdio进行子进程通信
-
弗拉斯克大桥 (
server/mcp_bridge.py)- 用于前端通信的REST API端点
- 文件上传/下载处理
- 跨源请求的CORS配置
- 错误处理和响应格式
-
前端 (
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编辑功能)
安装步骤
-
克隆存储库:
git clone https://github.com/Niketan77/mcp-filesystem-server.git cd mcp-filesystem-server -
创建虚拟环境(推荐):
# Windows python -m venv venv venv\Scripts\activate # macOS/Linux python3 -m venv venv source venv/bin/activate -
安装依赖项:
pip install -r requirements.txt -
设置环境变量:
# 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 -
运行服务器:
python run.py -
访问应用程序:
- 打开浏览器并导航到:
http://localhost:5000 - 前端界面将自动加载
- 打开浏览器并导航到:
Getting Together AI API密钥(可选)
- 访问 一起AI 并注册
- 导航到仪表板并生成API密钥或(https://api.together.ai/settings/api-keys)
- 创建密钥并复制它
- 将密钥添加到您的
.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协议合规性
- ✅ 错误处理和边缘情况
手动测试
- 上传测试:上传各种文件类型和文件夹结构
- 编辑测试:使用AI提示修改文件
- 下载测试:测试个人和批量下载
- 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/ |
🤝 贡献
我们欢迎捐款!以下是如何开始:
开发设置
- 分叉存储库
- 克隆你的叉子:
git clone https://github.com/Niketan77/mcp-filesystem-server.git - 创建虚拟环境:
python -m venv venv - 安装依赖项:
pip install -r requirements.txt - 创建要素分支:
git checkout -b feature-name
进行更改
- 后端:修改中的文件
server/目录 - 前端:更新中的文件
frontend/目录 - 测试:添加新功能的测试
- 文档:如果需要,请更新README
拉取请求流程
- 运行测试:
python test_mcp.py - 提交更改:
git commit -m "Add feature description" - 推叉:
git push origin feature-name - 创建带有详细描述的拉取请求
代码的风格
- Python代码遵循PEP 8
- 使用有意义的变量名
- 为复杂逻辑添加注释
- 保持一致的压痕
⭐ 如果你觉得这个项目很有帮助,请考虑在GitHub上给它一颗星!
