使用说明
项目简介: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秒)
