项目简介

OwlCore.Storage.Mcp 是一个功能强大的MCP服务器,它将多种存储协议(如本地文件系统、IPFS MFS、HTTP/HTTPS、IPFS/IPNS内容、内存存储)统一到一个简洁的接口之下。通过可扩展的插件式架构和自定义挂载系统,它为大型语言模型(LLM)应用程序提供了统一、灵活、高效的存储上下文服务。

主要功能点

  • 多协议支持: 轻松访问和管理本地文件、IPFS MFS、HTTP/HTTPS、IPFS/IPNS内容和内存存储。
  • 自定义挂载系统: 可以将任何文件夹或受支持的归档文件挂载为带有自定义协议方案的“驱动器”,方便LLM通过统一的URI访问。
  • 持久化挂载: 挂载配置会在会话之间保存和恢复,确保您的自定义存储设置始终可用。
  • 插件式架构: 易于扩展,可添加对新存储协议的支持。
  • 丰富的文件操作: 提供浏览文件夹内容、读写文件、创建/删除文件和文件夹、复制/移动项目、重命名挂载等全面功能。
  • 路径解析与别名: 支持复杂的相对路径导航,并能将长路径解析为更短的挂载别名,简化LLM交互。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Arlodotexe/OwlCore.Storage.Mcp.git
    cd OwlCore.Storage.Mcp
  2. 构建项目:
    dotnet build
    这将编译服务器的可执行文件。

服务器配置 (MCP客户端使用)

该MCP服务器设计为本地运行,通过标准输入输出 (stdio) 与MCP客户端通信。您需要配置MCP客户端以启动此服务器。

以下是为MCP客户端配置 'OwlCore.Storage.Mcp' 服务器的JSON示例:

// 请将以下配置添加到您的MCP客户端配置文件中
// (例如LM Studio的mcpServers对象或VS Code Copilot的servers对象)

"owlcore-storage": {
  // 启动MCP服务器的命令。确保您的系统中安装了 .NET SDK。
  "command": "dotnet",
  // 启动命令的参数。'--project' 指向 OwlCore.Storage.Mcp 项目的路径。
  // 请将 '/path/to/OwlCore.Storage.Mcp/' 替换为实际的项目根目录路径。
  "args": ["run", "--project", "/path/to/OwlCore.Storage.Mcp/"]
}

基本使用方法

一旦MCP客户端配置并成功连接到 'OwlCore.Storage.Mcp' 服务器,LLM即可通过调用服务器提供的工具来访问和管理存储。

  • 获取可用驱动器和协议: LLM可以通过调用 'GetAvailableDrives()' 工具来发现所有可用的驱动器(包括本地磁盘、挂载的文件夹和协议根目录),作为文件系统导航的起点。 LLM还可以调用 'GetSupportedProtocols()' 来查看支持的所有存储协议及其类型。
  • 浏览文件夹: 使用 'GetFolderItems(folderId)', 'GetFolderFiles(folderId)' 或 'GetFolderSubfolders(folderId)' 工具来列出指定文件夹中的内容。
  • 读写文件: 使用 'ReadFileTextRange(fileId, startLine, endLine, columnLimit)' 从指定文件读取文本内容。 使用 'WriteFileText(fileId, content)' 或 'WriteFileTextRange(fileId, content, startLine, endLine)' 向文件写入或修改文本内容。
  • 创建/删除项目: 使用 'CreateFolder(parentFolderId, folderName)' 和 'CreateFile(parentFolderId, fileName)' 创建新的文件夹和文件。 使用 'DeleteItem(parentFolderId, itemName)' 删除现有文件或文件夹。
  • 挂载自定义存储: 使用 'MountFolder(folderId, protocolScheme, mountName)' 工具将本地文件夹、IPFS内容或归档文件挂载为自定义协议驱动器,例如 'mydata://',LLM可以像访问本地磁盘一样访问这些内容。 使用 'UnmountFolder(protocolScheme)' 移除挂载。
  • 文件启动: 使用 'StartFile(filePath, verb)' 工具启动本地文件,例如打开文档或执行脚本。

信息

分类

数据库与文件