项目简介:macOS MCP文件服务器 项目概述 构建一个以macOS为中心的MCP(模型上下文协议)服务器,提供智能文件系统操作。这是一个基于Swift的服务器,通过MCP协议公开文件管理功能,允许AI助手在macOS系统上执行复杂的文件操作。 核心目标
演示MCP功能:展示MCP如何与本地macOS文件系统API集成 提供实用工具:为macOS用户创建真正有用的文件管理工具 在macOS上展示Swift:利用Swift的原生macOS框架集成
目标MCP能力实施 工具(主要焦点)
文件搜索工具
按名称、内容、类型、大小、日期搜索文件 支持正则表达式模式和复杂查询 返回带有元数据的结构化结果
文件组织工具
自动对文件进行分类(按类型、日期、项目) 批量重命名操作 智能文件夹创建和组织
目录分析工具
分析磁盘使用情况和文件分布 查找重复文件 识别大文件和空间使用模式
资源
文件系统资源
将目录内容作为可订阅资源公开 文件内容作为可读资源 文件更改时的实时更新
鼓励
基于文件的提示
根据项目结构生成提示 创建文件组织建议 常见文件操作的模板提示
技术架构 框架使用
基础:核心文件系统操作(FileManager、URL) MCP Swift SDK:服务器实现和协议处理 服务生命周期:优雅的启动/关闭管理 日志记录:用于调试的全面日志记录
关键组件 源/MCPFileServer/ ├── main.swift#服务生命周期的入口点 ├── FileServer.swift#主MCP服务器设置和配置 ├── 工具/ │ ├── FileSearchTool.swift#实现文件搜索功能 │ ├── FileOrganizeTool.swift#文件组织和批量操作\ │ └── DirectoryAnalysisTool.swift#磁盘使用和分析 ├── 资源/ │ └── FileSystemResource.swift#目录和文件内容资源
├── FileMetadata.swift#文件元数据提取实用程序 └── PathUtils.swift#路径操作帮助程序 具体实施要求 MCP服务器设置
使用stdio传输进行本地子进程通信 实施适当的能力声明(工具、资源、提示) 在ServiceLifecycle中包括优雅关机 添加全面的日志记录
文件搜索工具 swift//预期的工具界面 { “name”:“search_files”, “description”:“使用各种条件搜索文件”, “inputSchema”:{ “类型”:“对象”, “属性”:{ “查询”:{“类型”:“字符串”,“描述”:“搜索查询(名称/内容)”}, “路径”:{“类型”:“字符串”,“描述”:“要搜索的根路径”}, “fileType”:{“type”:“string”,“description”:“按文件扩展名筛选”}, “maxResults”:{“type”:“integer”,“default”:50}, “includeContent”:{“type”:“boolean”,“default”:false} } } } 文件组织工具 swift//预期的工具界面\ { “name”:“organize_files”, “description”:“在目录中组织文件”, “inputSchema”:{ “类型”:“对象”, “属性”:{ “sourcePath”:{“type”:“string”,“description”:“要组织的目录”}, “策略”:{“类型”:“字符串”,“枚举”:\[“byType”,“byDate”,“bySize”\]}, “createSubfolders”:{“type”:“boolean”,“default”:true}, “dryRun”:{“type”:“boolean”,“default”:true} } } } 目录分析工具 swift//预期的工具界面 { “name”:“analyze_directory”, “description”:“分析目录结构和使用情况”, “inputSchema”:{ “类型”:“对象”, “属性”:{ “路径”:{“类型”:“字符串”,“描述”:“要分析的目录”}, “includeSubdirs”:{“type”:“boolean”,“default”:true}, “findDuplicates”:{“type”:“boolean”,“default”:false} } } } 错误处理和安全
验证所有文件路径以防止目录遍历 默认情况下为只读操作,除非明确要求 破坏性操作的干运行模式 带有上下文的正确错误消息 尊重文件权限,妥善处理访问错误
平台集成
在有利的地方使用本机macOS API(通过CoreSpotlight集成Spotlight) 尊重系统权限(不需要不必要的权限) 遵循macOS文件组织惯例 优化SSD性能(在现代Mac上很常见)
发展重点
简单开始:使用基于名称的查询进行基本文件搜索 增量添加:扩展搜索功能,然后添加组织 彻底测试:每个工具应独立工作 关注用户体验:清晰、有用的响应和错误消息
成功标准
MCP客户端可以成功调用所有已实现的工具 文件操作是安全的,并尊重用户权限 结果准确且格式正确 服务器优雅地处理错误而不会崩溃 对于典型的目录大小,性能是合理的(大多数操作小于1秒)
