使用说明
MCP文件系统服务器
一种用于文件系统操作的模型上下文协议(MCP)服务器实现,具有基于web的前端界面。
特性
- MCP服务器:完成文件系统操作(创建、读取、编辑、删除文件和目录)
- MCP客户端:JavaScript客户端与服务器通信
- Web前端:具有拖放支持的文件管理交互式界面
- 命令处理:用于文件操作的自然语言命令
项目结构
mcp-filesystem-server/
├── src/
│ ├── server.js # MCP server implementation
│ ├── client.js # MCP client implementation
│ └── frontend.html # Web interface
├── package.json # Dependencies and scripts
├── README.md # This file
└── workspace/ # Default working directory (created automatically)
先决条件
- Node.js(v16或更高版本)
- npm或纱线
安装
-
克隆或创建项目目录:
mkdir mcp-filesystem-server cd mcp-filesystem-server -
初始化项目:
npm init -y -
安装依赖项:
npm install @modelcontextprotocol/sdk npm install --save-dev nodemon -
创建项目结构:
mkdir src mkdir workspace -
复制提供的文件:
- 复制
server.js向src/server.js - 复制
client.js向src/client.js - 复制
frontend.html向src/frontend.html - 更新
package.json使用提供的配置
- 复制
用法
运行MCP服务器
# Start the server
npm start
# Or for development with auto-reload
npm run dev
使用Web界面
- 打开
src/frontend.html在网络浏览器中 - 接口将自动模拟与MCP服务器的连接
- 使用拖放或文件选择器上传文件夹
- 使用命令提示符执行操作
可用命令
create file filename.txt with content Hello World!read file filename.txtedit file filename.txt with content Updated contentdelete file filename.txtlist files
MCP客户端使用(程序化)
import { FilesystemMCPClient } from './src/client.js';
const client = new FilesystemMCPClient();
await client.connect();
// Create a file
await client.createFile('./workspace/test.txt', 'Hello World!');
// Read a file
const result = await client.readFile('./workspace/test.txt');
console.log(result);
// Process natural language commands
const response = await client.processPrompt('create file hello.txt with content Hello MCP!');
MCP服务器工具
服务器实现了以下MCP工具:
- 创建文件:使用指定内容创建新文件
- read_file:读取现有文件的内容
- edit_file:通过替换现有文件的内容来编辑该文件
- 删除文件:删除文件
- 列表文件:列出目录中的所有文件
- create_directory:创建新目录
api参考
服务器端点
所有工具均遵循MCP协议规范:
{
"method": "tools/call",
"params": {
"name": "create_file",
"arguments": {
"filepath": "path/to/file.txt",
"content": "File content here"
}
}
}
错误处理
该服务器包括全面的错误处理功能,用于:
- 找不到文件错误
- 权限错误
- 文件路径无效
- 网络连接问题
发展
添加新工具
要向MCP服务器添加新工具,请执行以下操作:
- 在中添加工具定义
ListToolsRequestSchema处理器 - 在中实现工具逻辑
CallToolRequestSchema处理器 - 在中添加相应的客户端方法
FilesystemMCPClient
扩展前端
前端是用vanilla HTML/CSS/JavaScript构建的,可以扩展为:
- 其他命令类型
- 文件预览功能
- 语法突出显示
- 实时协作功能
安全考虑
- 服务器仅在指定的工作目录中运行
- 验证文件路径以防止目录遍历攻击
- 不允许访问网络文件
- 所有操作都记录在案,以供审计之用
故障排除
常见问题
- 连接失败:启动客户端之前,请确保MCP服务器正在运行
- 文件权限错误:检查工作区目录是否具有正确的读/写权限
- 端口冲突:服务器使用stdio传输,因此不应发生端口冲突
调试模式
通过设置环境变量启用调试日志记录:
DEBUG=mcp:* npm start
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
作业提交说明
该项目展示了:
- 完成MCP服务器实施:所有必需的文件系统操作
- MCP客户端集成:正确使用SDK和连接处理
- 前端接口:具有文件上传和命令处理功能的交互式web应用程序
- 错误处理:整个堆栈的全面错误管理
- 文档:完整的设置和使用说明
测试演示命令
create file demo.txt with content This is a demo file
read file demo.txt
edit file demo.txt with content This file has been updated
list files
delete file demo.txt
该实现展示了对MCP协议、客户端-服务器架构和现代web开发实践的理解。
