项目简介:
'todo-mcp.nvim' 是一个 Neovim 插件,它能识别代码中的 TODO 注释,并将它们转化为一个持久化的、结构化的任务列表。除了在 Neovim 内部提供丰富的任务管理功能外,它还实现了一个 Model Context Protocol (MCP) 服务器,允许兼容的 LLM 客户端(如 Claude Desktop)通过标准协议与您的 TODO 列表进行交互。
主要功能点:
- 任务提取与管理: 自动识别代码文件中的 TODO 注释并将其作为任务进行管理。
- 持久化存储: 所有 TODO 任务都存储在本地 SQLite 数据库中,确保数据不会丢失。
- 丰富的任务属性: 支持为任务添加优先级、标签、关联文件信息和时间戳等元数据。
- 高效搜索: 提供强大的搜索和过滤功能,快速找到特定任务。
- 现代化用户界面: 在 Neovim 中提供美观且易用的任务列表界面,支持多种显示样式和任务详情预览。
- MCP 服务器功能: 提供标准的 MCP 工具(如 'list_todos', 'add_todo', 'update_todo', 'delete_todo', 'search_todos'),允许连接的 LLM 客户端读写和管理您的 TODO 任务。
- 外部集成支持: 可以通过附加的 MCP 服务器模块与 GitHub Issues, JIRA, Linear 等外部任务管理系统同步(需要额外依赖)。
安装步骤:
-
确保您已安装 Neovim (推荐 0.9+) 和系统的 SQLite3 命令。
-
如果您使用 'lazy.nvim' 作为插件管理器,请在您的 Neovim 配置中添加以下内容:
- 指定插件仓库 'thatguyinabeanie/todo-mcp.nvim'。
- 添加其依赖 'kkharji/sqlite.lua'。
- 配置插件的加载方式(例如通过 'cmd = "TodoMCP"' 命令或特定的按键绑定 'keys' 来实现懒加载)。
- 调用 'require("todo-mcp").setup({})' 来初始化插件(可以传入可选配置)。
一个典型的 'lazy.nvim' 配置片段示例如下:
-- 请将此代码放置在您的 lazy.nvim 配置中 { "thatguyinabeanie/todo-mcp.nvim", dependencies = { "kkharji/sqlite.lua", }, cmd = "TodoMCP", -- 当执行 TodoMCP 命令时加载 keys = { { "<leader>td", "<Plug>(todo-mcp-toggle)", desc = "Toggle todo list" }, -- ... 其他按键绑定 ... }, config = function() require("todo-mcp").setup({ -- 您的可选配置参数 }) end } -
运行您的 Neovim 包管理器的安装命令来下载和安装插件。
MCP 服务器配置:
要让支持 MCP 的 LLM 客户端(如 Claude Desktop)能够使用此服务器,您需要在客户端的 MCP 配置中添加一个服务器条目。这个配置告诉客户端如何启动并连接到 'todo-mcp.nvim' 的服务器。
典型的 MCP 客户端服务器配置是一个 JSON 对象数组。您需要添加一个对象来描述 'todo-mcp' 服务器。这个对象通常包含:
- 一个标识服务器的唯一名称(例如 '"todo-mcp"')。
- '"command"': 启动服务器的可执行文件路径。对于这个插件,通常是您系统中的 Lua 解释器路径(例如 '"lua"')。
- '"args"': 传递给命令的参数列表。第一个参数应该是 'todo-mcp.nvim' 插件目录下的服务器脚本路径(例如 '"/path/to/your/nvim/site/pack/packer/start/todo-mcp.nvim/mcp-server.lua"' 或者使用相对路径 '#nvim-config#/pack/packer/start/todo-mcp.nvim/mcp-server.lua' 等,具体路径取决于您的 Neovim 插件安装方式)。
- '"env"': 一个可选的对象,用于设置服务器运行时的环境变量。您可以设置 '"TODO_MCP_DB"' 环境变量来指定 TODO 数据库文件的路径(例如 '{"TODO_MCP_DB": "~/.local/share/nvim/todo-mcp.db"}')。
请查阅您的特定 LLM 客户端的文档,了解如何编辑和应用此 MCP 配置。
基本使用方法:
- 在 Neovim 中管理 TODOs:
- 使用您配置的快捷键(如默认的 '<leader>td')来打开/关闭 TODO 列表窗口。
- 在 TODO 列表中,使用 'j/k' 键移动光标,按 '<CR>' 切换任务完成状态,按 'a' 添加新任务,按 'd' 删除任务,按 '/' 进行搜索等。
- 在代码文件中,可以在注释中添加 TODO(例如 'TODO: Fix this bug'),插件会自动识别。
- 启动 MCP 服务器:
- 在终端中,使用 Lua 解释器运行插件提供的服务器脚本:
(请将 '/path/to/your/nvim/site/pack/packer/start/todo-mcp.nvim' 替换为您实际的插件安装路径)。服务器启动后会等待 MCP 客户端连接。lua /path/to/your/nvim/site/pack/packer/start/todo-mcp.nvim/mcp-server.lua
- 在终端中,使用 Lua 解释器运行插件提供的服务器脚本:
- 通过 LLM 客户端交互:
- 确保您的 LLM 客户端已按照上述步骤配置并启动了 'todo-mcp' MCP 服务器连接。
- 在 LLM 客户端中,您应该可以使用其提供的界面或指令来调用 'todo-mcp' 服务器提供的工具,例如列出所有 TODO、添加新任务、搜索特定任务等。
信息
分类
开发者工具