# Todo Skill 环境配置指南 ## 1. 安装 MySQL MCP Server 推荐使用 `@benborla29/mcp-server-mysql`(支持读写操作)。 ### QwenPaw 配置方式 在 `~/.qwenpaw/config.json` 的 `mcp.clients` 中添加: ```json "mysql": { "name": "mysql", "description": "MySQL MCP for todo skill", "enabled": true, "transport": "stdio", "command": "npx", "args": ["-y", "@benborla29/mcp-server-mysql"], "env": { "MYSQL_HOST": "<主机地址>", "MYSQL_PORT": "<端口,默认 3306>", "MYSQL_USER": "<用户名>", "MYSQL_PASS": "<密码>", "MYSQL_DB": "<数据库名>", "ALLOW_INSERT_OPERATION": "true", "ALLOW_UPDATE_OPERATION": "true", "ALLOW_DELETE_OPERATION": "true", "SCHEMA_DDL_PERMISSIONS": "<数据库名>:true" } } ``` > **注意**:环境变量名是 `MYSQL_PASS`(不是 `MYSQL_PASSWORD`)和 `MYSQL_DB`(不是 `MYSQL_DATABASE`)。 ### Claude Code 配置方式 ```bash claude mcp add mysql \ -e MYSQL_HOST="<主机地址>" \ -e MYSQL_PORT="<端口>" \ -e MYSQL_USER="<用户名>" \ -e MYSQL_PASS="<密码>" \ -e MYSQL_DB="<数据库名>" \ -e ALLOW_INSERT_OPERATION="true" \ -e ALLOW_UPDATE_OPERATION="true" \ -e ALLOW_DELETE_OPERATION="true" \ -e SCHEMA_DDL_PERMISSIONS="<数据库名>:true" \ -- npx -y @benborla29/mcp-server-mysql ``` ### 验证 MCP 可用 配置完成后重启客户端,然后尝试: - 列出数据库中的表 - 执行一条简单查询 如果 MCP 工具可用,会看到 `mysql_query` 工具。 --- ## 2. 创建 todos 表 在目标数据库中执行以下 SQL: ```sql CREATE TABLE IF NOT EXISTS todos ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, title VARCHAR(500) NOT NULL COMMENT '任务标题', description TEXT COMMENT '任务描述', status ENUM('pending', 'in_progress', 'done', 'archived') NOT NULL DEFAULT 'pending' COMMENT '状态: pending-待办, in_progress-进行中, done-已完成, archived-已归档', priority ENUM('low', 'medium', 'high', 'urgent') NOT NULL DEFAULT 'medium' COMMENT '优先级: low-低, medium-中, high-高, urgent-紧急', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', last_accessed_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后访问时间(LRU 淘汰依据)', access_count INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '访问次数', INDEX idx_status (status), INDEX idx_lru (last_accessed_at), INDEX idx_priority_status (priority, status), INDEX idx_created (created_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='待办事项表,支持 LRU 淘汰策略'; ``` ### 字段说明 | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT UNSIGNED | 自增主键 | | title | VARCHAR(500) | 任务标题,必填 | | description | TEXT | 任务描述,可选 | | status | ENUM | pending / in_progress / done / archived | | priority | ENUM | low / medium / high / urgent | | created_at | DATETIME | 创建时间,自动填充 | | updated_at | DATETIME | 更新时间,自动刷新 | | last_accessed_at | DATETIME | 最后访问时间,LRU 依据 | | access_count | INT UNSIGNED | 访问计数,每次 +1 | --- ## 3. LRU 淘汰策略 基于 `last_accessed_at` 字段实现 LRU(Least Recently Used)淘汰: - 每次查看、更新 todo 时刷新 `last_accessed_at` 和 `access_count` - 待办总数超过 100 条时自动归档 - 先归档最久未访问的 `done` 事项,再归档 `pending` 事项 - 不归档 `in_progress` 状态的事项