Skip to main content
Glama
guillelagoria

DOOR Knowledge MCP Server

README.md
# DOOR Knowledge MCP Server

Servidor MCP (Model Context Protocol) para acceder a la base de conocimiento de soporte de DOOR.

## Características

- 📚 Documentos de support.door.com (artículos + PDFs convertidos)
- 🔍 Búsqueda rápida con índice pre-generado
- 🌐 API HTTP para acceso remoto (desplegado en Railway)
- 🔄 Sincronización incremental de contenido
- ⚡ Sin necesidad de descargar repositorio (usando cliente HTTP)

## Instalación Rápida (Recomendado)

**Para usuarios de Claude Desktop**, la forma más fácil es usar el cliente HTTP remoto:

### 1. Configurar Claude Desktop

Abre tu archivo de configuración:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

Agrega esta configuración:

```json
{
  "mcpServers": {
    "door-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-http-client", "https://knowledge-mcp-production.up.railway.app"]
    }
  }
}
```

### 2. Reinicia Claude Desktop

¡Listo! Ya puedes preguntarle a Claude sobre documentación de Door sin descargar nada.

**Ventajas de esta instalación:**
- ✅ No descargas archivos grandes
- ✅ Instalación en 30 segundos
- ✅ Siempre tienes la última versión
- ✅ Funciona en cualquier plataforma
- ✅ No necesitas conocimientos técnicos

**Cliente HTTP**: https://github.com/guillelagoria/mcp-http-client

---

## Instalación Local (Para Desarrolladores)

```bash
# Instalar dependencias
npm install

# Sincronizar artículos de support.door.com
npm run sync

# Construir índice de búsqueda
npm run build-index

# Iniciar servidor MCP local
npm start

# O iniciar servidor HTTP
npm run start-http
```

## Uso

### Servidor MCP Local (para Claude Desktop)

Si prefieres ejecutar el servidor localmente (por ejemplo, para desarrollo):

```json
{
  "mcpServers": {
    "door-knowledge": {
      "command": "node",
      "args": ["/ruta/absoluta/a/door-support-mcp/door-knowledge-mcp-server.js"]
    }
  }
}
```

**Nota**: Este método requiere descargar el repositorio completo. Para uso normal, recomendamos usar el cliente HTTP (ver arriba).

### API HTTP

El servidor HTTP está desplegado en Railway y expone los siguientes endpoints:

**Base URL**: `https://knowledge-mcp-production.up.railway.app`

- `GET /health` - Estado del servidor
- `GET /api/search?query=<term>&category=<cat>&limit=<num>` - Búsqueda de documentos
- `GET /api/document?id=<doc_id>` - Obtener documento completo
- `GET /api/categories` - Listar categorías

Ejemplos:
```bash
# Health check
curl "https://knowledge-mcp-production.up.railway.app/health"

# Buscar documentos
curl "https://knowledge-mcp-production.up.railway.app/api/search?query=installation&limit=5"

# Listar categorías
curl "https://knowledge-mcp-production.up.railway.app/api/categories"

# Obtener documento específico
curl "https://knowledge-mcp-production.up.railway.app/api/document?id=DOCUMENT_ID"
```

### Herramientas Disponibles

Una vez conectado a través de Claude Desktop, tendrás acceso a estas herramientas:

1. **`search_door_knowledge`** - Buscar documentos por query
2. **`get_door_document`** - Obtener contenido completo de un documento
3. **`list_door_categories`** - Listar todas las categorías disponibles

**Ejemplos de uso con Claude:**
- "Busca guías de instalación de Door"
- "Muéstrame todos los runbooks disponibles"
- "¿Qué categorías de documentación hay disponibles?"
- "Dame el contenido completo del documento XYZ"

## Scripts Disponibles

- `npm start` - Iniciar servidor MCP
- `npm run start-http` - Iniciar servidor HTTP
- `npm run sync` - Sincronizar artículos de Door
- `npm run build-index` - Construir índice de búsqueda
- `npm run clean` - Limpiar PDFs procesados
- `npm run reprocess` - Reprocesar todo desde cero

## Despliegue en Railway

Este proyecto está configurado para desplegarse fácilmente en Railway.app:

1. Conecta el repositorio a Railway
2. Railway detectará automáticamente el Dockerfile
3. El proyecto se construirá y desplegará automáticamente
4. El health check estará disponible en `/health`

## Estructura del Proyecto

```
door-support-mcp/
├── door_knowledge_base/     # Base de conocimiento extraída
├── door-knowledge-sync.js   # Sincronización de contenido
├── door-knowledge-mcp-server.js  # Servidor MCP
├── server-http.js            # Servidor HTTP
├── build-search-index-complete.js # Constructor de índice
├── package.json
├── Dockerfile
└── railway.json
```

## Licencia

MIT

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_door_document retrieves a specific document by ID, list_door_categories lists categories with counts, and search_door_knowledge searches for documents using keywords or categories. There is no overlap in functionality, making it easy for an agent to select the right tool.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a clear verb_noun structure (get_door_document, list_door_categories, search_door_knowledge). The naming is predictable and enhances readability across the tool set.

Tool Count3/5

With only 3 tools, the server feels thin for a knowledge base domain, as it lacks operations like creating, updating, or deleting documents or categories. While the tools cover basic retrieval and listing, the count is borderline for comprehensive coverage.

Completeness2/5

The tool surface is significantly incomplete for a knowledge base server. It only supports read operations (get, list, search) with no ability to create, update, or delete documents or categories. This will cause agent failures when full lifecycle management is needed.

Maintenance

ActivityInactive
ResponsivenessNo issues