内容
# MCP Desktop DVR
一个模型上下文协议(Model Context Protocol,MCP)服务器,为macOS提供桌面视频捕获和分析功能。该工具使Claude Code能够通过智能视频捕获分析桌面活动,具有30分钟的滚动缓冲区。
## 特性
- **连续桌面录制**:使用硬件加速编码捕获您的屏幕
- **30分钟滚动缓冲区**:保持最近30分钟的桌面活动
- **按需分析**:从缓冲区中提取和分析任何时间窗口
- **低资源使用**:优化以最小化CPU和内存影响
- **macOS原生**:使用原生macOS API构建,以获得最佳性能
## 当前状态
⚠️ **该项目处于早期开发阶段**。MCP服务器框架已实现,但核心功能尚未完成:
### 已完成的功能:
- ✅ 基本的MCP服务器设置和工具定义
- ✅ 开发环境和构建配置
- ✅ TypeScript、ESLint和Prettier设置
### 尚未实现的功能:
- ❌ **桌面捕获**:用于屏幕录制的Aperture集成
- ❌ **循环缓冲区**:30分钟滚动缓冲区系统
- ❌ **视频分析**:视频片段的提取和分析
- ❌ **权限处理**:macOS屏幕录制权限请求
- ❌ **测试**:单元测试和集成测试
所有工具当前返回“not_implemented”状态。请参阅[实施路线图](#implementation-roadmap)部分以了解计划的开发阶段。
## 需求
- macOS 10.15或更高版本
- Node.js 18或更高版本
- 系统偏好设置中的屏幕录制权限
## 安装
1. 克隆代码库:
```bash
git clone https://github.com/yourusername/mcp-desktop-dvr.git
cd mcp-desktop-dvr
```
2. 安装依赖:
```bash
npm install
```
3. 构建项目:
```bash
npm run build
```
## 使用
### 运行MCP服务器
用于开发:
```bash
npm run dev
```
用于生产:
```bash
npm start
```
### 配置Claude Desktop
将以下内容添加到您的Claude Desktop配置文件中:
```json
{
"mcpServers": {
"desktop-dvr": {
"command": "node",
"args": ["/path/to/mcp-desktop-dvr/dist/index.js"]
}
}
}
```
### 可用工具
#### `analyze-desktop-now`
提取并分析最近N秒的桌面活动。
参数:
- `duration_seconds`(数字,1-300):要分析的秒数(默认:30)
- `analysis_type`(字符串):分析类型 - "ui_elements"、"mouse_activity"或"full_analysis"(默认:"full_analysis")
#### `start-continuous-capture`
开始连续桌面录制。
参数:
- `fps`(数字,1-60):每秒帧数(默认:30)
- `quality`(数字,1-100):视频质量(默认:70)
#### `stop-capture`
停止桌面录制。
#### `get-capture-status`
获取当前捕获状态和统计信息。
## 开发
### 项目结构
```
mcp-desktop-dvr/
├── src/
│ ├── index.ts # MCP服务器入口点
│ ├── capture/ # 桌面捕获实现
│ ├── buffer/ # 循环缓冲区系统
│ ├── analysis/ # 视频分析工具
│ └── types/ # TypeScript类型定义
├── tests/ # 测试文件
├── package.json
├── tsconfig.json
└── README.md
```
### 脚本
```bash
# 在开发模式下运行并支持热重载
npm run dev
# 将TypeScript构建为JavaScript
npm run build
# 运行测试
npm test
# 代码检查
npm run lint
# 类型检查
npm run typecheck
# 格式化代码
npm run format
```
### 架构
该系统使用混合方法实现30分钟滚动缓冲区:
- **热层**:最后5分钟保存在RAM中以便快速访问
- **冷层**:剩余25分钟保存在内存映射文件中
- **片段大小**:30秒的块以优化查找
视频编码使用H.264和VideoToolbox硬件加速,以最小化CPU使用。
## 性能
目标性能指标:
- CPU使用率:< 15% 持续
- 内存:< 1.5GB 总分配
- 捕获延迟:< 100ms
- 提取时间:< 2秒用于30秒片段
## 隐私与安全
- 需要明确的屏幕录制权限
- 所有录制内容都存储在本地
- 不会通过网络传输任何数据
- 录制内容会根据滚动缓冲区自动清理
## 故障排除
### 屏幕录制权限
如果您看到权限错误,请确保已启用屏幕录制:
1. 打开系统偏好设置 > 安全性与隐私
2. 点击隐私标签
3. 选择屏幕录制
4. 为您的终端或IDE启用权限
### 高CPU使用率
如果CPU使用率高于预期:
- 降低FPS设置(例如,从30降到15)
- 降低质量设置(例如,从70降到50)
- 检查其他资源密集型应用程序
## 实施路线图
基于INITIAL_RESEARCH.md中的研究:
### 阶段1:基本捕获MCP
- [ ] 集成Aperture进行屏幕录制
- [ ] 实现基本的基于文件的捕获
- [ ] 处理macOS权限
- [ ] 测试与Claude Desktop的集成
### 阶段2:循环缓冲区系统
- [ ] 实现内存中的循环缓冲区
- [ ] 添加内存映射文件支持
- [ ] 创建提取机制
- [ ] 优化片段边界
### 阶段3:分析功能
- [ ] 添加鼠标/键盘事件捕获
- [ ] 实现UI元素检测
- [ ] 创建分析模式
- [ ] 添加性能指标
### 阶段4:生产优化
- [ ] 资源监控和限制
- [ ] 配置管理
- [ ] 错误处理
- [ ] 性能分析
## 贡献
欢迎贡献!请随时提交Pull Request。
## 许可证
ISC许可证
## 致谢
构建于:
- [MCP SDK](https://github.com/anthropics/model-context-protocol) 由Anthropic提供
- [Aperture](https://github.com/wulkano/aperture) 用于macOS屏幕录制
- TypeScript和Node.js
连接信息
猜你喜欢
everything-claude-code
完整的 Claude Code 配置集合 - agents、skills、hooks、commands、rules、MCPs。来自 Anthropic...
MarkItDown
将文件和办公文档转换为Markdown的Python工具。
awesome-claude-skills
一份精心整理的 Claude Skills、资源和工具列表,用于定制 Claude AI 工作流程
friday-studio
🤖 AI 代理运行时 — 可共享的工作空间、MCP 工具、技能、内存和 cron/webhook 自动化的自托管和透明运行。
Train-in-Silence
首款任务感知MCP服务器和LLM微调自动VRAM计算器。立即在10多个云服务提供商中选择最便宜、最快的GPU。
vnstock-agent
MCP 服务器和 CLI,用于越南股票市场数据 (vnstock)