
Model Context Protocol (MCP) Server - Filesystem Implementation

2025.04.17
0
Go文件系统管理教育实现文件管理
这是一个基于Go语言和Echo框架实现的Model Context Protocol (MCP)服务器,专门用于通过MCP协议访问本地文件系统。该项目主要用于教育目的,展示了如何创建一个MCP服务器来提供对本地文件系统的访问。
View on GitHub
Overview
基本能力
产品定位
该MCP服务器是一个教育性质的实现,旨在通过MCP协议提供对本地文件系统的访问。
核心功能
- 文件系统提供者:通过MCP工具和资源提供对本地文件系统的访问。
- 工具:
filesystem.list
:列出目录内容。filesystem.read
:读取文件内容。filesystem.write
:写入内容到文件。filesystem.delete
:删除文件或目录。- 资源:
filesystem.file
:表示文件系统中的文件。filesystem.directory
:表示文件系统中的目录。
适用场景
- 教育目的:学习如何实现MCP服务器。
- 本地文件系统管理:通过MCP协议管理本地文件。
常见问题解答
- 安全性:该项目包含基本的路径清理以防止目录遍历攻击,但仅用于教育目的。在生产环境中需要额外的安全措施。
使用教程
使用依赖
- Go 1.24或更高版本。
安装教程
- 克隆仓库。
- 安装依赖:
go mod tidy
。 - 运行服务器:
go run main.go
。
默认情况下,服务器将在8080端口启动。可以通过设置PORT
环境变量来更改端口。
调试方式
发现服务器能力
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"
}
}
}'