Dialogoi

Un servidor MCP diseñado para asistir en la escritura de novelas, configurable mediante archivos de proyecto JSON.

Documentación

Dialogoi - Servidor MCP de Soporte para Escritura de Novelas

CI

Servidor MCP (Model Context Protocol) con RAG integrado para apoyar la escritura de novelas.

Características

  • Búsqueda RAG: Búsqueda por similitud semántica con Qdrant + multilingual-e5-small
  • Búsqueda de texto completo: Búsqueda rápida de texto con soporte de expresiones regulares
  • Búsqueda por tipo de archivo: Búsqueda que distingue entre archivos de configuración y archivos de contenido
  • Monitoreo en tiempo real: Actualización automática del índice al modificar archivos
  • Integración con Claude Desktop: Integración completa mediante el protocolo MCP

Instalación

Requisitos previos

  • Node.js 20.0.0 o superior
  • Docker (si se utiliza la función de búsqueda RAG)

Configuración

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

Uso

1. Preparación del proyecto de novela

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

Ejemplo de novel.json:

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

2. Integración con Claude Desktop

Agregar a claude_desktop_config.json:

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

Ubicación del archivo de configuración:

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

3. Argumentos principales de línea de comandos

node dist/index.js [オプション]
  • --project-root <PATH>: Directorio raíz del proyecto de novela
  • --qdrant-url <URL>: URL del servidor Qdrant (si no se configura, Docker se inicia automáticamente)
  • --docker-enabled <true|false>: Habilitar/deshabilitar el inicio automático de Docker

API MCP

Gestión de proyectos

  • list_novel_projects: Obtener la lista de proyectos
  • get_novel_settings/content/instructions: Obtener el contenido de un archivo
  • add_novel_setting/content: Crear un nuevo archivo

Funciones de búsqueda

  • search_novel_text: Búsqueda de texto integrada (con soporte de expresiones regulares)
  • search_rag: Búsqueda RAG (búsqueda por similitud semántica)

Ambas búsquedas permiten filtrar mediante el parámetro fileType:

  • content: Solo archivos de contenido
  • settings: Solo archivos de configuración
  • both: Ambos (predeterminado)

Características de la búsqueda RAG

  • multilingual-e5-small: Soporte multilingüe mediante vectores de 384 dimensiones
  • Qdrant: Motor de búsqueda vectorial de alta velocidad
  • Prefiltrado: Filtrado rápido en el lado de Qdrant
  • Fragmentación inteligente: Preservación del contexto con superposición del 20%
  • Repliegue automático: Guía de errores detallada cuando Qdrant no está disponible

Desarrollo

Comandos básicos

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

Arquitectura

  • Patrón de repositorio: Abstracción de la capa de acceso a datos
  • Patrón de servicio: Capa de lógica de negocio
  • Patrón de backend: Abstracción del motor de búsqueda
  • Inyección de dependencias: Basada en constructor

Licencia

Licencia MIT