LabscoMCP early access ↗
GaoZYunMCP SERVER

Lumina Docs

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

by GaoZYun ↗Team Wikis & Documentation PlatformsCommunity

LABSCO 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 — git clone https://github.com/GaoZYun/lumina-docs.git