这是一个使用Go语言和Echo框架实现的教育性质的模型上下文协议(MCP)服务器,通过MCP协议提供对本地文件系统的访问,为数据源与AI工具间的通信搭建安全桥梁。
go mod tidy
go run main.go
服务器默认在8080端口启动,您可通过设置PORT
环境变量更改端口。
通过MCP工具和资源提供对本地文件系统的访问。
filesystem.list
:列出目录内容filesystem.read
:读取文件内容filesystem.write
:向文件写入内容filesystem.delete
:删除文件或目录filesystem.file
:表示文件系统中的一个文件filesystem.directory
:表示文件系统中的一个目录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",
# 此处原文档未完整,保持原样
}'
模型上下文协议(MCP)是一个开放标准,使开发者能够构建安全的双向连接,用于数据源与AI工具之间的通信。此实现演示了如何创建一个提供本地文件系统访问权限的MCP服务器。
此实现包含基本的路径清理功能,以防止目录遍历攻击,但仅用于教育目的。生产环境中需要额外的安全措施,例如: