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

3.7 KiB
Raw Blame History

Todo Skill 环境配置指南

1. 安装 MySQL MCP Server

推荐使用 @benborla29/mcp-server-mysql(支持读写操作)。

QwenPaw 配置方式

在 ~/.qwenpaw/config.json 的 mcp.clients 中添加:

"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 配置方式

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:

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 状态的事项