Lumina Docs

Um sistema inteligente de gerenciamento de documentos estruturados projetado para grandes modelos de linguagem.

Documentação

Lumina Docs

中文 | English

Um sistema inteligente de gerenciamento de documentos estruturados que utiliza o protocolo MCP, projetado especificamente para resolver o problema de estouro de tokens em documentos de requisitos de grande porte e garantir a consistência do conteúdo.

Principais Recursos

Resolvendo o Problema Central

Sou um PM e recentemente tentei usar o Claude Code para escrever documentos de requisitos em formato Markdown. O trabalho foi razoavelmente bem executado, mas à medida que o documento crescia, surgiam problemas de estouro de Tokens e a estrutura do documento se tornava extremamente confusa. Felizmente, documentos de requisitos são documentos estruturados — ao escrevê-los, muitas vezes precisamos focar apenas na parte que está sendo editada no momento, sem a necessidade de ler o documento inteiro a cada vez. Foi com essa ideia em mente que usei o Claude Code para criar este MCP Server, que resolve os seguintes problemas:

  • ✅ Resolve o problema de estouro de tokens em documentos grandes
  • ✅ Garante consistência de conteúdo por meio de consultas estruturadas
  • ✅ Suporta gerenciamento modular de documentos
  • ✅ Referência inteligente de conteúdo e correspondência de padrões

Esta é uma solução especialmente projetada para grandes modelos de linguagem!!!!

Características Técnicas

  • Design de banco de dados leve baseado em SQLite
  • Interface padronizada do protocolo MCP
  • Gerenciamento de relacionamentos hierárquicos pai-filho
  • Suporte flexível a metadados
  • Poderosa capacidade de consulta estruturada
  • Escrito inteiramente com Claude Code

Como Usar

O Lumina Docs oferece um sistema de gerenciamento de documentos simples e fácil de usar, com suporte à integração com o Claude Desktop por meio do protocolo MCP. Do ponto de vista dos cenários de uso, ele oferece suporte ao uso de grandes modelos de linguagem para processar documentos de grande porte em três cenários: leitura, atualização e escrita do zero. Especificamente:

  1. Leitura de documentos grandes: Por meio de consultas estruturadas, localize rapidamente o conteúdo necessário, evitando carregar o documento inteiro de uma só vez. Por exemplo, para documentos de requisitos de módulos de front-end, é possível consultar diretamente todas as descrições de fluxos de negócios e regras de exibição de dados relacionadas, sem precisar navegar pelo documento inteiro.
  2. Atualização de conteúdo existente: Ao modificar um módulo funcional, é possível consultar diretamente os fluxos de negócios e regras de exibição de dados relacionados, garantindo que as alterações sigam os formatos e padrões de conteúdo existentes. Por exemplo, ao atualizar a funcionalidade de estatísticas de status do sistema, o grande modelo de linguagem pode primeiro localizar diretamente o conteúdo a ser modificado via SQL, evitando carregar todo o documento.
  3. Escrita de novo conteúdo do zero: Ao escrever novas descrições de fluxos de negócios, é possível consultar os padrões existentes para garantir que o novo conteúdo seja consistente com o conteúdo atual. Por exemplo, ao escrever uma nova descrição de fluxo de negócios, o grande modelo de linguagem pode primeiro consultar todas as descrições existentes, analisar seu formato e conteúdo, e então criar novos nós seguindo o mesmo formato e padrões de conteúdo.

Início Rápido

1. Instalar dependências

# 克隆或下载项目
git clone <repository-url>
cd lumina-docs

# 安装依赖
pip install -e .

2. Configurar variáveis de ambiente (opcional)

# 复制环境变量模板
cp .env.example .env

# 编辑配置文件(可选,使用默认配置可直接跳过)
nano .env

3. Configurar o Claude Desktop

Método 1: Instalação automática (recomendado)

# 自动配置到Claude Desktop
./install_to_claude_desktop.sh

Método 2: Configuração manual

Se a instalação automática apresentar problemas, você pode configurar manualmente. Primeiro, determine o caminho do seu Python:

# 查找 Python 路径
which python3
# 或者如果使用 conda
which python

Em seguida, edite o arquivo de configuração do Claude Desktop:

{
  "mcpServers": {
    "lumina-docs": {
      "command": "/usr/bin/python3",
      "args": ["-m", "doc_manager"],
      "cwd": "/path/to/lumina-docs",
      "env": {
        "PYTHONPATH": "/path/to/lumina-docs/src",
        "DOC_MANAGER_DB_PATH": "/path/to/lumina-docs/database/documents.db",
        "DOC_MANAGER_EXPORT_DIR": "/path/to/exports",
        "DOC_MANAGER_DATA_DIR": "/path/to/lumina-docs",
        "LUMINA_DOCS_SERVER_NAME": "lumina-docs",
        "DOC_MANAGER_DEBUG": "false",
        "DOC_MANAGER_LOG_LEVEL": "INFO"
      }
    }
  }
}

6. Usar a ferramenta de linha de comando

# 查看文档树结构
python -m doc_manager.cli tree

# 搜索特定类型的节点
python -m doc_manager.cli by-type business_flow

# 导出为Markdown
python -m doc_manager.cli export --output requirements.md

Instruções de Configuração

Configuração de Variáveis de Ambiente

O Lumina Docs suporta configuração por meio de variáveis de ambiente, tornando o projeto mais flexível e adequado a diferentes ambientes de implantação.

Itens de Configuração Principais

Variável de AmbienteValor PadrãoDescrição
DOC_MANAGER_DB_PATH<data_dir>/database/documents.dbCaminho do arquivo do banco de dados SQLite
DOC_MANAGER_EXPORT_DIR~/DesktopDiretório de salvamento de arquivos exportados
DOC_MANAGER_DATA_DIR~/.lumina-docsDiretório raiz dos arquivos de dados
LUMINA_DOCS_SERVER_NAMElumina-docsNome do servidor MCP
DOC_MANAGER_DEBUGfalseInterruptor do modo de depuração
DOC_MANAGER_LOG_LEVELINFONível de registro de log

Métodos de Configuração

Método 1: Usar arquivo .env

# 复制模板文件
cp .env.example .env

# 编辑配置
DOC_MANAGER_DB_PATH=/path/to/your/database.db
DOC_MANAGER_EXPORT_DIR=/path/to/exports
DOC_MANAGER_DEBUG=true

Método 2: Variáveis de ambiente do sistema

export DOC_MANAGER_DB_PATH="/var/lib/doc-manager/documents.db"
export DOC_MANAGER_EXPORT_DIR="/home/user/Documents/exports"

Método 3: Configuração do Claude Desktop

{
  "mcpServers": {
    "lumina-docs": {
      "command": "/usr/bin/python3",
      "args": ["-m", "doc_manager"],
      "cwd": "/path/to/lumina-docs",
      "env": {
        "PYTHONPATH": "/path/to/lumina-docs/src",
        "DOC_MANAGER_DB_PATH": "/path/to/lumina-docs/database/documents.db",
        "DOC_MANAGER_EXPORT_DIR": "/path/to/exports",
        "DOC_MANAGER_DATA_DIR": "/path/to/lumina-docs",
        "LUMINA_DOCS_SERVER_NAME": "lumina-docs",
        "DOC_MANAGER_DEBUG": "false",
        "DOC_MANAGER_LOG_LEVEL": "INFO"
      }
    }
  }
}

Observação: Use o caminho real do Python no seu sistema, como /usr/bin/python3, /usr/local/bin/python3 ou o caminho completo do ambiente conda.

Verificação da Configuração

Após a configuração, você pode verificar das seguintes formas:

  1. Reiniciar o Claude Desktop
  2. Verificar o arquivo de log, confirmando que não há erros
  3. Testar no Claude Desktop:
    请获取当前所有文档列表
    
  4. Verificar as ferramentas disponíveis:
    document-manager 有哪些可用的工具?
    

Modelos de Arquivos de Configuração

O projeto fornece vários modelos de arquivos de configuração, que podem ser escolhidos de acordo com seu ambiente:

  • claude_desktop_config.example.json - Modelo genérico
  • claude_desktop_config.macos.json - Configuração do Python do sistema macOS
  • claude_desktop_config.conda.json - Configuração do ambiente Conda
  • claude_desktop_config.multi.json - Exemplo de configuração com múltiplos servidores MCP

Como usar:

# 复制合适的模板
cp claude_desktop_config.macos.json ~/Library/Application\ Support/Claude/claude_desktop_config.json

# 编辑路径
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json

Conceitos Principais

Tipos de Nós de Documento

  • document_root: Nó raiz do documento
  • section: Seção (como visão geral do projeto, descrição de requisitos)
  • module: Módulo funcional (como módulo de visão geral, módulo de monitoramento do sistema)
  • feature: Funcionalidade específica (como funcionalidade de estatísticas de status do sistema)
  • business_flow: Descrição do fluxo de negócios
  • data_display_rules: Regras de exibição de dados
  • permission_rules: Regras de controle de permissão
  • architecture_design: Design de arquitetura

Relacionamento Hierárquico

智能运维系统需求文档 (document_root)
├── 项目概述 (section)
├── 功能模块 (section)
│   ├── 总览模块 (module)
│   │   ├── 系统状态统计功能 (feature)
│   │   │   ├── 业务流程说明 (business_flow)
│   │   │   └── 数据展示规则 (data_display_rules)
│   │   └── 我关注的系统功能 (feature)
│   └── 系统监控模块 (module)
└── 权限设计 (section)

Cenários de Uso

1. Importação rápida de documentos existentes

# 通过Claude直接使用MCP工具导入单个文档
import_markdown_file("项目需求.md", "project_requirements")

# 批量导入文档目录
import_markdown_batch(["docs/*.md", "guides/**/*.md"])

2. Consulta estruturada para garantir consistência

# 查询所有【业务流程说明】作为新内容的参考
nodes = db.get_nodes_by_type("business_flow")

# 查询特定模块的所有【数据展示规则】
results = db.search_nodes(
    node_type="data_display_rules",
    metadata_filter={"module": "overview"}
)

2. Verificação de consistência ao escrever novo conteúdo

# 使用一致性检查工具
cd examples
python consistency_checker.py

3. Exportação de documentos sob demanda

# 导出完整文档
python -m doc_manager.cli export --output complete.md

# 只导出功能模块部分
python -m doc_manager.cli export --parent-id 3 --output modules.md

Lista de Ferramentas MCP

Ferramentas de Gerenciamento de Documentos

Nome da FerramentaDescrição da Função
create_documentCriar novo documento (tabela independente)
get_documents_listObter lista de todos os documentos
delete_documentExcluir documento e suas tabelas de dados

Ferramentas de Importação Markdown

Nome da FerramentaDescrição da Função
import_markdown_fileImportar um único arquivo Markdown, com análise automática da estrutura hierárquica
import_markdown_batchImportar vários arquivos Markdown em lote, com suporte a correspondência por curingas

Ferramentas de Gerenciamento de Nós

Nome da FerramentaDescrição da Função
create_nodeCriar novo nó de documento
get_nodeObter detalhes de um nó específico
update_nodeAtualizar nó existente
delete_nodeExcluir nó e seus subnós
move_nodeMover nó para nova posição

Ferramentas de Consulta e Exportação

Nome da FerramentaDescrição da Função
get_childrenObter lista de subnós
search_nodesBuscar nós com múltiplas condições
get_nodes_by_typeObter nós por tipo (análise de consistência)
get_node_pathObter caminho completo do nó
get_tree_structureObter estrutura em árvore
export_to_markdownExportar no formato Markdown

Ferramenta de Linha de Comando

Operações Básicas

# 创建节点
python -m doc_manager.cli create "新功能" "feature" --parent-id 5 --content "功能描述"

# 查看节点
python -m doc_manager.cli get 1

# 更新节点
python -m doc_manager.cli update 1 --title "新标题" --content "新内容"

# 删除节点
python -m doc_manager.cli delete 1

Operações de Consulta

# 列出子节点
python -m doc_manager.cli list --parent-id 1

# 搜索节点
python -m doc_manager.cli search --query "业务流程" --type "business_flow"

# 查看树结构
python -m doc_manager.cli tree

# 按类型查找
python -m doc_manager.cli by-type data_display_rules

Operações de Exportação

# 导出完整文档
python -m doc_manager.cli export --output requirements.md

# 导出指定部分
python -m doc_manager.cli export --parent-id 3 --output modules.md

Estrutura do Projeto

doc-manager/
├── src/
│   └── doc_manager/
│       ├── __init__.py           # 模块初始化
│       ├── database.py           # SQLite数据库操作
│       ├── simple_server.py      # MCP服务器实现
│       ├── markdown_parser.py    # Markdown解析和导入模块
│       ├── cli.py                # 命令行工具
│       └── __main__.py           # 服务器启动入口
├── examples/
│   ├── sample_data.py            # 示例数据创建
│   └── consistency_checker.py    # 一致性检查工具
├── database/
│   └── documents.db              # SQLite数据库文件
├── docs/
│   └── (文档目录)
├── pyproject.toml                # 项目配置
└── README.md                     # 项目说明

Uso Avançado

1. Fluxo de trabalho para garantir consistência

Ao escrever uma nova 【Descrição de Fluxo de Negócios】:

# 1. 查询现有的业务流程说明
existing_flows = db.get_nodes_by_type("business_flow")

# 2. 分析现有模式
for flow in existing_flows:
    print(f"参考: {flow['title']}")
    print(f"格式: {flow['content'][:100]}...")

# 3. 创建新节点时遵循现有模式
new_id = db.create_node(
    title="新业务流程说明",
    node_type="business_flow", 
    content="1. 步骤一\n2. 步骤二\n3. 步骤三",  # 保持格式一致
    parent_id=parent_id
)

2. Gerenciamento orientado por metadados

# 使用元数据进行精确查询
frontend_modules = db.search_nodes(
    node_type="module",
    metadata_filter={"module_type": "frontend"}
)

high_priority_features = db.search_nodes(
    metadata_filter={"priority": "high"}
)

3. Operações em lote

# 批量更新相同类型节点的元数据
business_flows = db.get_nodes_by_type("business_flow")
for flow in business_flows:
    db.update_node(
        flow['id'],
        metadata={**flow['metadata'], "reviewed": True}
    )

Melhores Práticas

  1. Padrão de nomenclatura: Use um formato consistente para títulos de nós
  2. Gerenciamento de tipos: Defina node_type claros para diferentes tipos de conteúdo
  3. Uso de metadados: Aproveite ao máximo o campo metadata para armazenar informações adicionais
  4. Design hierárquico: Projete relacionamentos pai-filho de forma adequada, evitando aninhamentos excessivamente profundos
  5. Verificação de consistência: Execute regularmente as ferramentas de verificação de consistência

Comparação com o Método Tradicional

Método TradicionalMétodo Estruturado
Arquivo único grandeNós modulares
Tokens facilmente estouradosCarregamento de conteúdo sob demanda
Dificuldade em garantir consistênciaReferência por consulta estruturada
Alterações afetam o documento inteiroModificação precisa de nós específicos
Manutenção manual de formatosExportação e mesclagem automatizadas

Desenvolvimento e Extensão

Adicionar novos tipos de nós

  1. Adicione um novo node_type no banco de dados
  2. Atualize a definição do schema das ferramentas MCP
  3. Adicione a lógica de verificação correspondente no verificador de consistência

Personalizar formatos de exportação

  1. Herde a classe DocumentDatabase
  2. Sobrescreva o método export_tree_to_markdown
  3. Implemente sua lógica de formatação personalizada

Feedback de Problemas

Se tiver problemas ou sugestões, entre em contato com a equipe de desenvolvimento.