Files
my-skills/todo/references/setup.md
T
wonder 14e93d2001 refactor: 完善 todo 和 wiki skill 的自包含操作指南
- todo: 明确 mysql_query MCP 工具调用方式,补充触发词和字段说明
- todo/setup: 补充 QwenPaw 和 Claude Code 两种配置方式,修正环境变量名
- wiki: 用 glob_search 替换 <skill-path> 占位符,流程更清晰
2026-09-01 20:58:53 +08:00

107 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 状态的事项