Skip to main content
Glama

AI Conversation Logger

by fablefang
CLAUDE-old.md9.04 kB
# AI 对话记录 MCP 服务器开发规则 ## 项目概述 我们要创建一个 MCP (Model Context Protocol) 服务器,用于记录和管理我与 AI 工具的对话历史。这个工具需要支持多个 AI 平台(Claude Code、Cursor、VS Code Copilot、IDEA Copilot)。 ## 重要说明 如果与其他地方冲突,以这里为准 - MCP的配置文件在 ~/.claude.json 的最后部分 - MCP配置说明:https://docs.anthropic.com/en/docs/claude-code/mcp - HOOK配置说明:https://docs.anthropic.com/en/docs/claude-code/hooks - 会话存储位置:各项目根目录下的 `ai-logs/` 文件夹 - MCP服务器自动检测当前工作目录来确定项目位置 ## 核心功能需求 ### 1. 对话记录功能 - 记录用户指令和 AI 回复的主要内容 - 记录 AI 执行的具体操作 - 按项目和时间自动组织存储 - 支持自定义总结和标签 ### 2. 历史检索功能 - 按项目、时间范围、关键词搜索历史记录 - 智能推荐相关的历史上下文 - 支持模糊搜索和语义搜索 ### 3. 上下文管理功能 - 在新对话中方便地调取历史记录作为上下文 - 自动识别当前对话的项目和主题 - 提供上下文建议和推荐 ## 技术架构要求 ### MCP 服务器规格 - **语言**: TypeScript/Node.js - **框架**: @modelcontextprotocol/sdk - **存储**: 本地文件系统(Markdown 格式) - **位置**: 各项目根目录下的 `ai-logs/` 目录 - **检测机制**: 基于当前工作目录自动识别项目 ### 支持的工具 (Tools) #### 1. log_conversation ```typescript interface LogConversationParams { project: string; // 项目名称 userInput: string; // 用户输入 aiResponse: string; // AI完整回复 platform?: string; // 平台标识 (claude-code, cursor, vscode, idea) customSummary?: string; // 自定义总结 tags?: string[]; // 标签数组 actions?: string[]; // AI执行的操作列表 } ``` #### 2. search_conversations ```typescript interface SearchParams { project?: string; // 项目过滤 keywords?: string[]; // 关键词搜索 timeRange?: { // 时间范围 start?: string; end?: string; }; days?: number; // 最近N天 platform?: string; // 平台过滤 tags?: string[]; // 标签过滤 limit?: number; // 结果数量限制 } ``` #### 3. get_context_suggestions ```typescript interface ContextSuggestionsParams { currentInput: string; // 当前用户输入 project?: string; // 当前项目 maxSuggestions?: number; // 最大建议数量 } ``` #### 4. list_projects ```typescript interface ListProjectsParams { includeStats?: boolean; // 是否包含统计信息 } ``` #### 5. export_conversations ```typescript interface ExportParams { project?: string; // 导出特定项目 format?: 'markdown' | 'json'; // 导出格式 timeRange?: DateRange; // 时间范围 } ``` ## 文件组织结构 ### 项目根目录结构 ``` project-root/ ├── src/ ├── package.json ├── README.md └── ai-logs/ ├── 2025-08-03.md ├── 2025-08-04.md ├── config.json └── index.json ``` ### MCP服务器配置目录 ``` ~/.ai-conversation-logger/ ├── templates/ │ ├── conversation-template.md │ └── daily-log-template.md ├── global-index/ │ ├── projects-registry.json │ └── search-index.json └── config/ └── settings.json ``` ## Markdown 文件格式规范 ### 日常对话记录格式 ```markdown # AI对话记录 - [日期] > 项目: [自动检测的项目名] > 日期: [YYYY-MM-DD] > 工作目录: [项目根目录路径] > 总对话数: [当天数量] --- ## [HH:MM:SS] - [平台] - [标签] ### 用户指令 [用户输入的完整内容] ### AI执行操作 - [操作1: 文件路径:行号] - [操作2: 命令执行] - [操作3: 工具调用] ### AI回复要点 [AI回复的关键内容总结,避免完整复制] ### 生成/修改代码 ```[语言] // 文件: [相对路径] [关键代码片段] ``` ### 学习要点 - [技术要点1] - [解决方案2] ### 相关文件 - [src/component.tsx:123] - [package.json] --- ``` ## 开发阶段规划 ### 阶段 1: 基础 MCP 服务器 (优先级: 高) - [ ] 创建 TypeScript 项目结构 - [ ] 实现基础的 MCP 服务器框架 - [ ] 实现 `log_conversation` 工具(支持项目根目录存储) - [ ] 实现工作目录检测和项目识别逻辑 - [ ] 实现基础文件存储逻辑(ai-logs文件夹) - [ ] 测试与 Claude Code 的集成 ### 阶段 2: 搜索和检索功能 (优先级: 高) - [ ] 实现 `search_conversations` 工具 - [ ] 实现 `list_projects` 工具 - [ ] 添加关键词搜索功能 - [ ] 实现时间范围过滤 ### 阶段 3: 智能化功能 (优先级: 中) - [ ] 实现 `get_context_suggestions` 工具 - [ ] 添加自动标签识别 - [ ] 实现智能分类功能 - [ ] 添加相关性推荐算法 ### 阶段 4: 高级功能 (优先级: 低) - [ ] 实现导出功能 - [ ] 添加统计分析 - [ ] 实现配置管理 - [ ] 添加数据备份功能 ## 代码质量要求 ### TypeScript 编码规范 - 使用严格的 TypeScript 配置 - 所有函数必须有类型注解 - 使用 async/await 处理异步操作 - 实现适当的错误处理 ### 文件操作规范 - 使用 `fs/promises` 进行文件操作 - 实现原子性文件写入 - 添加适当的错误恢复机制 - 确保跨平台兼容性 ### MCP 集成规范 - 严格遵循 MCP 协议规范 - 提供清晰的工具描述和参数说明 - 实现适当的输入验证 - 返回结构化的响应 ## 测试要求 ### 单元测试 - 测试所有核心功能模块 - 测试文件操作的边界情况 - 测试搜索算法的准确性 ### 集成测试 - 测试与 Claude Code 的集成 - 测试多项目并发操作 - 测试大量数据的性能 ## 部署和配置 ### 开发环境设置 ```json { "name": "ai-conversation-logger-mcp", "version": "1.0.0", "type": "module", "scripts": { "build": "tsc", "start": "node dist/index.js", "dev": "tsx src/index.ts", "test": "jest" } } ``` ### Claude Code 配置示例 ```json { "mcpServers": { "conversation-logger": { "command": "node", "args": ["/path/to/ai-conversation-logger-mcp/dist/index.js"] } } } ``` ## 期望的使用体验 ### 记录对话示例 ``` 用户在项目根目录下使用 Claude Code: "帮我实现一个 React 登录组件" AI 自动检测当前工作目录为项目根目录, 回复后自动调用 log_conversation 工具记录到 ./ai-logs/2025-08-04.md ``` ### 检索上下文示例 ``` 用户在同一项目下开始新对话: "我需要修改之前的登录组件" 用户可以说: "搜索之前关于登录组件的对话记录" 系统在当前项目的 ai-logs/ 目录中搜索相关记录 ``` ## 成功标准 1. **功能完整性**: 所有核心工具都能正常工作 2. **易用性**: 用户可以通过简单命令完成所有操作 3. **可靠性**: 数据不会丢失,操作不会出错 4. **性能**: 搜索和记录操作在 3 秒内完成 5. **可扩展性**: 容易添加新功能和支持新平台 ## 注意事项 - 确保处理中文字符和特殊字符 - 实现适当的并发控制 - 考虑大文件的性能优化 - 预留未来 Obsidian 集成的接口 - 考虑团队协作的需求 --- # 🎯 项目当前状态 (2025-08-07) ## ✅ 已完成重大优化 ### 纯保存模式架构 - **移除所有自动提取功能** - 代码块、文件路径、学习要点不再自动识别 - **AI完全控制内容** - MCP只做格式化和保存,内容完全由AI决定 - **简化记录格式** - 专注于AI操作历史,便于后续追溯 ### 自动化配置完善 - **Hooks自动记录** - 通过`~/.claude/settings.json`配置Stop Hook - **所有项目自动覆盖** - 每次对话结束自动记录到对应项目ai-logs/ - **手动记录补充** - AI可通过log_conversation工具记录重要内容 ### 技术改进 - **本地时区日期** - 修复UTC时间问题,使用本地日期创建文件 - **移除文件锁** - 简化单用户场景,提升性能 - **防记录覆盖** - 修复文件追加逻辑,确保历史记录不丢失 - **项目自动检测** - project参数可选,自动识别当前项目 ## 🔧 当前配置状态 ### MCP服务器: ✅ 已配置 ``` ~/.claude.json -> mcpServers.conversation-logger ``` ### 自动记录Hook: ✅ 已配置 ``` ~/.claude/settings.json -> hooks.Stop -> /scripts/auto-log-hook.js ``` ### 记录目标: ✅ 项目级存储 ``` 每个项目/ai-logs/YYYY-MM-DD.md ``` ## 📋 工作模式 1. **自动记录**: 每次对话结束自动触发记录 2. **手动记录**: AI主动调用工具记录重要内容 3. **搜索历史**: 通过search_conversations搜索过往记录 4. **项目管理**: 通过list_projects查看所有项目 **结论**: 系统已实现全自动对话记录到所有项目,无需用户干预。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fablefang/ai-conversation-logger-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server