Model Context Protocol (MCP) Server - Filesystem Implementation

Model Context Protocol (MCP) Server - Filesystem Implementation

site icon
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或更高版本。

安装教程

  1. 克隆仓库。
  2. 安装依赖:go mod tidy
  3. 运行服务器: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"
      }
    }
  }'

许可证

该项目遵循 MIT 开源许可条款。