Dialogoi

Um servidor MCP projetado para auxiliar na escrita de romances, configurável por meio de arquivos JSON de projeto.

Documentação

Dialogoi - Servidor MCP de Apoio à Escrita de Romances

CI

Servidor MCP (Model Context Protocol) com RAG para apoiar a escrita de romances.

Recursos

  • Busca RAG: Busca por similaridade semântica com Qdrant + multilingual-e5-small
  • Busca de texto completo: Busca rápida com suporte a expressões regulares
  • Busca por tipo de arquivo: Busca diferenciada entre arquivos de configuração e arquivos de texto
  • Monitoramento em tempo real: Atualização automática do índice ao alterar arquivos
  • Integração com Claude Desktop: Integração completa via protocolo MCP

Instalação

Pré-requisitos

  • Node.js 20.0.0 ou superior
  • Docker (para usar o recurso de busca RAG)

Configuração

git clone https://github.com/cedretaber/dialogoi
cd dialogoi
npm install
npm run build

Como usar

1. Preparação do projeto de romance

novels/
├── my_novel/
│   ├── novel.json          # プロジェクト設定
│   ├── settings/           # 設定ファイル
│   │   ├── characters.md
│   │   └── world.md
│   └── contents/           # 本文ファイル
│       ├── chapter1.md
│       └── chapter2.md

Exemplo de novel.json:

{
  "title": "私の小説",
  "author": "作者名",
  "description": "小説の説明",
  "settingsDirectories": ["settings"],
  "contentDirectories": ["contents"],
  "instructionFiles": ["DIALOGOI.md"]
}

2. Integração com Claude Desktop

Adicione em claude_desktop_config.json:

{
  "mcpServers": {
    "dialogoi": {
      "command": "node",
      "args": ["/path/to/dialogoi/dist/index.js", "--project-root", "/path/to/novels"],
      "cwd": "/path/to/dialogoi"
    }
  }
}

Localização do arquivo de configuração:

  • Windows: %APPDATA%\\Claude\\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

3. Principais argumentos de linha de comando

node dist/index.js [オプション]
  • --project-root <PATH>: Diretório raiz do projeto de romance
  • --qdrant-url <URL>: URL do servidor Qdrant (se não definido, o Docker inicia automaticamente)
  • --docker-enabled <true|false>: Ativar/desativar a inicialização automática do Docker

API MCP

Gerenciamento de projetos

  • list_novel_projects: Obtém a lista de projetos
  • get_novel_settings/content/instructions: Obtém o conteúdo de um arquivo
  • add_novel_setting/content: Cria um novo arquivo

Recursos de busca

  • search_novel_text: Busca de texto integrada (com suporte a expressões regulares)
  • search_rag: Busca RAG (busca por similaridade semântica)

Ambas as buscas permitem filtrar pelo parâmetro fileType:

  • content: Somente arquivos de texto
  • settings: Somente arquivos de configuração
  • both: Ambos (padrão)

Recursos da busca RAG

  • multilingual-e5-small: Suporte multilíngue com vetores de 384 dimensões
  • Qdrant: Mecanismo de busca vetorial de alta velocidade
  • Pré-filtragem: Filtragem rápida no lado do Qdrant
  • Chunking inteligente: Preservação de contexto com sobreposição de 20%
  • Fallback automático: Orientação detalhada de erros quando o Qdrant não está disponível

Desenvolvimento

Comandos básicos

npm run dev          # 開発モード
npm run build        # ビルド
npm test             # ユニットテスト
npm run test:integration  # 統合テスト
npm run lint         # ESLint
npm run typecheck    # TypeScript型チェック

Arquitetura

  • Padrão Repository: Abstração da camada de acesso a dados
  • Padrão Service: Camada de lógica de negócios
  • Padrão Backend: Abstração do mecanismo de busca
  • Injeção de dependência: Baseada em construtor

Licença

Licença MIT