Labsco
MCP SERVER

Lumina Docs

by GaoZYun

Keep a large requirements document in SQLite as a node tree, so an assistant edits one section without loading the whole thing.

Team Wikis & Documentation Platforms
Summary
Query the section you are editing, not the document.

`get_nodes_by_type` is the tool that earns this its place: pulling every business-flow node at once lets a model match the format of what already exists before writing the next one. Consistency in a long document is a retrieval problem, and this treats it as one.

What it is

A structured document manager built for the problem of writing long requirements documents with an assistant: past a certain size the whole document no longer fits, and the structure falls apart. Lumina Docs stores the document as parent-child nodes in SQLite and queries them, so only the section being edited is loaded.

What you get
  • Documents — `create_document` (each in its own table), `get_documents_list`, `delete_document`
  • Markdown import — `import_markdown_file` parses the heading hierarchy automatically; `import_markdown_batch` takes wildcards
  • Nodes — `create_node`, `get_node`, `update_node`, `delete_node` (with its children), `move_node`
  • Query and export — `get_children`, `search_nodes`, `get_nodes_by_type`, `get_node_path`, `get_tree_structure`, `export_to_markdown`
  • A command-line tool alongside the server: `tree` for the structure, `by-type` to pull one node type, and `export` to write markdown out
Requirements

Python, installed from source with `pip install -e .` and launched as `python -m doc_manager`. Configuration is by environment variable: `DOC_MANAGER_DB_PATH` for the SQLite file, `DOC_MANAGER_EXPORT_DIR` for exports, `DOC_MANAGER_DATA_DIR` for the data root, plus `DOC_MANAGER_DEBUG` and `DOC_MANAGER_LOG_LEVEL`. Values can come from a `.env` file, the system environment, or the client config block.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary