关于 Model Context Protocol (MCP) Server - Filesystem Implementation
这是一个用 Go 编写的教育用途 MCP 服务,可通过 MCP 向客户端开放本地文件系统。它提供目录列出、文件读写和删除工具,以及文件与目录资源;README 提醒,未加强安全措施前不应投入生产使用。
主要功能
- 01列出目录内容
- 02读取和写入文件
- 03删除文件和目录
- 04提供文件与目录资源
- 05基础路径清理
适用场景
- 01了解教育用途的 MCP 服务实现
- 02让 MCP 客户端执行文件系统操作
MCP 相关
该服务向 MCP 客户端开放文件系统工具以及文件和目录资源。其端点支持能力发现、工具调用和资源加载。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
模型上下文协议(MCP)服务 - 文件系统实现
这是一个使用 Echo 框架以 Go 编写的模型上下文协议(MCP)服务教学实现。该服务通过 MCP 协议提供对本地文件系统的访问。
概述
模型上下文协议(MCP)是一项开放标准,支持开发者在数据源与 AI 驱动的工具之间建立安全的双向连接。此实现演示了如何创建一个提供本地文件系统访问能力的 MCP 服务。
功能
- 文件系统提供程序:通过 MCP 工具和资源提供对本地文件系统的访问
- 工具:
filesystem.list:列出目录内容filesystem.read:读取文件内容filesystem.write:将内容写入文件filesystem.delete:删除文件或目录
- 资源:
filesystem.file:表示文件系统中的一个文件filesystem.directory:表示文件系统中的一个目录
安全注意事项
此实现包含基本的路径清理功能,以防止目录遍历攻击,但仅供教学使用。在生产环境中,还需要采取其他安全措施,例如:
- 用户身份验证和授权
- 更完善的输入验证
- 速率限制
- 审计日志记录
- 沙箱隔离
入门指南
前置条件
- Go 1.24 或更高版本
安装
- 克隆仓库
- 安装依赖项:
go mod tidy - 运行服务:
go run main.go
服务默认会在 8080 端口启动。你可以通过设置 PORT 环境变量来更改端口。
API 端点
GET /:服务信息POST /v1/discover:发现服务功能POST /v1/call-tool:调用工具POST /v1/load-resource:加载资源
使用示例
发现服务功能
curl -X POST http://localhost:8080/v1/discover
列出目录内容
curl -X POST http://localhost:8080/v1/call-tool \
-H "Content-Type: application/json" \
-d '{
"tool_id": "filesystem.list",
"request_id": "req-123",
"params": {
"arguments": {
"path": "."
}
}
}'
读取文件内容
curl -X POST http://localhost:8080/v1/call-tool \
-H "Content-Type: application/json" \
-d '{
"tool_id": "filesystem.read",
"request_id": "req-123",
"params": {
"arguments": {
"path": "README.md"
}
}
}'
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
免责声明
此实现仅供教学使用,未经适当的安全审查和加固,不应在生产环境中使用。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。