返回 MCP 目录
public公开dns本地运行

model-context-protocol-(mcp)-server-filesystem-implementation

这是一个基于Go语言和Echo框架的教育性MCP服务器实现,提供通过MCP协议访问本地文件系统的功能,包含文件列表、读写等工具和资源。

article

README

🚀 模型上下文协议(MCP)服务器 - 文件系统实现

这是一个使用Go语言和Echo框架实现的教育性质的模型上下文协议(MCP)服务器,通过MCP协议提供对本地文件系统的访问,为数据源与AI工具间的通信搭建安全桥梁。

🚀 快速开始

先决条件

  • Go 1.24或更高版本

安装

  1. 克隆仓库
  2. 安装依赖项:go mod tidy
  3. 运行服务器:go run main.go

服务器默认在8080端口启动,您可通过设置PORT环境变量更改端口。

✨ 主要特性

文件系统提供者

通过MCP工具和资源提供对本地文件系统的访问。

工具

  • filesystem.list:列出目录内容
  • filesystem.read:读取文件内容
  • filesystem.write:向文件写入内容
  • filesystem.delete:删除文件或目录

资源

  • filesystem.file:表示文件系统中的一个文件
  • filesystem.directory:表示文件系统中的一个目录

📚 详细文档

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",
    # 此处原文档未完整,保持原样
  }'

🔧 技术细节

模型上下文协议(MCP)是一个开放标准,使开发者能够构建安全的双向连接,用于数据源与AI工具之间的通信。此实现演示了如何创建一个提供本地文件系统访问权限的MCP服务器。

⚠️ 安全注意事项

此实现包含基本的路径清理功能,以防止目录遍历攻击,但仅用于教育目的。生产环境中需要额外的安全措施,例如:

  • 用户身份验证和授权
  • 更强大的输入验证
  • 速率限制
  • 审计日志记录
  • 隔离沙盒
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端