md-todo-hub
把本地多个项目里散落在 Markdown 中的待办项,索引成一个共享的小型数据库(SQLite), 通过 MCP 提供给大模型使用:跨项目查进度、按优先级排下一步、把完成状态写回原文档。
- Markdown 是唯一事实来源,索引只是查询层;所有写操作双写数据库与原文件。
- 支持表格行(
| P1-1 | 标题 | 来源 | 影响 | ⏳ |)与清单(- [ ] 文本)两种格式。 - 索引库默认在
~/.md-todo/index.db,可用MD_TODO_HOME改位置。 - 已发布 PyPI:md-todo-hub(当前
0.3.1)。
安装与启动(MCP)
# 直接运行 MCP server(stdio)
uvx --from md-todo-hub md-todo-hub
# 可选:启用语义检索 / 语义查重
uvx --from "md-todo-hub[semantic]" md-todo-hub
MCP 客户端配置示例:
{
"mcpServers": {
"md-todo-hub": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "md-todo-hub", "md-todo-hub"],
"env": { "PYTHONUTF8": "1" }
}
}
}
命令行(同一套索引)
uvx --from md-todo-hub mdtodo register ~/project/foo # 登记并索引一个项目
uvx --from md-todo-hub mdtodo overview # 跨项目进度总览
uvx --from md-todo-hub mdtodo next --limit 5 # 下一步该做什么
uvx --from md-todo-hub mdtodo search "登录" # 全文检索
uvx --from md-todo-hub mdtodo status P1-1 done # 标记完成(写回 Markdown)
主要 MCP 工具
| 工具 | 作用 |
|---|---|
register_project / unregister_project / list_projects |
项目注册表 |
index_projects |
增量 / 全量刷新索引 |
get_overview |
跨项目进度仪表盘 |
get_next_actions |
按优先级排序的待办队列 |
search_all |
structured / fts / semantic / hybrid 检索 |
locate_item |
定位 ID 所在项目与文件 |
update_status |
改状态并双写 Markdown |
sync_from_md / reconcile |
Markdown 与索引对账 |
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
MD_TODO_HOME |
索引库目录 | ~/.md-todo |
MD_TODO_DOCS |
默认 Markdown 根目录 | <cwd>/docs |
MD_TODO_LEGACY_DB |
设为 1 回到 v0.2 的单项目库模式 |
关闭 |
EMBEDDING_API_KEY / EMBEDDING_BASE_URL / EMBEDDING_MODEL |
可选语义检索 | 未配置则用 FTS5 |
上架状态
| 资产 | 包 | 状态 |
|---|---|---|
| 专家 | dist/release/md-todo-steward-expert-1.0.0.zip |
已提交审核(2026-10-22) |
| 连接器 | dist/connector/md-todo-hub/ |
暂缓(bash scripts/build_release.sh connector) |
| 技能 | dist/skill/md-todo-hub/ |
暂缓(专家包已内嵌同一份 SKILL.md) |
| PyPI | md-todo-hub 0.3.1 | 已发布,专家的运行依赖 |
| 付费资产 | 另一项目 kb-todo-expert(知栈,¥19.9 买断) |
免费版不发,待微信签约后直接付费首发 |
zip 顶层目录即包名,解压直接看到 .codebuddy-plugin/plugin.json。
重新生成:bash scripts/build_release.sh [expert|connector|skill|all]。
开发
python -m pytest docs_mcp/tests/ -v
MIT License.
Metadata
Release files for md-todo-hub 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| md_todo_hub-0.3.2.tar.gz | 37.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| md_todo_hub-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.6 kB
Release files / md_todo_hub-0.3.2.tar.gz
| Download URL | md_todo_hub-0.3.2.tar.gz |
|---|---|
| Size | 37.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01a43218bd1e1c69a8ec9014f120d9be42d57a2c22fdee20037e78453c315d14
|
|
BLAKE2b-256 checksum How to use checksums |
74428a71999873679cdc6d47d0b714ddd5ac355707808779cd993f8d8faceb75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / md_todo_hub-0.3.2-py3-none-any.whl
| Download URL | md_todo_hub-0.3.2-py3-none-any.whl |
|---|---|
| Size | 46.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd324da29bcc300ae643531419a26c5eb70f8da7699d698ff096876d43ef0fc8
|
|
BLAKE2b-256 checksum How to use checksums |
445fe19d9e3bcd57953ba95411359394fba9d134135340437780c065bcadaf8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for md-todo-hub 0.3.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.