Skip to main content
Glama
gcorroto

MCP N8N Webhook Server

by gcorroto
README.md
# MCP N8N Webhook Server

Servidor MCP (Model Context Protocol) para enviar datos a un webhook de n8n para almacenamiento e indexación.

## Descripción

Este servidor MCP permite a los asistentes de IA guardar información estructurada en n8n a través de webhooks. Es ideal para:

- Guardar conversaciones y logs de desarrollo
- Almacenar documentación de proyectos
- Indexar información para búsquedas posteriores
- Crear embeddings de contenido para RAG

## Instalación

```bash
npm install
npm run build
```

## Configuración

Crea un archivo `.env` basado en `config.example.env`:

```bash
cp config.example.env .env
```

Configura las variables de entorno:

- `N8N_WEBHOOK_URL`: URL base del webhook de n8n
- `N8N_WEBHOOK_ID`: ID único del webhook
- `N8N_API_KEY`: Clave de API para autenticación
- `N8N_INDEX_NAME`: Nombre del índice por defecto (opcional, default: PROJECT_CONVERSATIONS)
- `N8N_TABLE_CATEGORY`: Categoría de tabla por defecto (opcional, default: DEVELOPMENT_LOGS)

## Uso

### Modo desarrollo
```bash
npm run dev
```

### Modo inspector (para testing)
```bash
npm run inspector
```

### Modo producción
```bash
npm start
```

## Herramientas Disponibles

### `n8n_save_data`
Guarda información estructurada en el webhook de n8n.

**Parámetros:**
- `projectName` (requerido): Nombre del proyecto
- `projectCategory` (requerido): Categoría del proyecto
- `contentType` (requerido): Tipo de contenido
- `title` (requerido): Título del contenido
- `description` (requerido): Descripción del contenido
- `text` (requerido): Texto completo
- `tags` (requerido): Array de etiquetas
- `projectId` (opcional): ID del proyecto
- `projectStatus` (opcional): Estado del proyecto
- `language` (opcional): Idioma del contenido
- `indexName` (opcional): Nombre del índice
- `tableCategory` (opcional): Categoría de tabla
- `source` (opcional): Fuente de los datos

### `n8n_health_check`
Verifica la conectividad con el webhook de n8n.

## Estructura del Payload

El servidor envía datos en el siguiente formato:

```json
{
  "metadata": {
    "timestamp": "2025-07-02T10:30:00Z",
    "source": "mcp_assistant",
    "version": "1.0"
  },
  "project": {
    "id": "proj_001",
    "name": "Sistema de Embeddings",
    "category": "AI_ML",
    "status": "ACTIVE"
  },
  "content": {
    "type": "CONVERSATION",
    "title": "Implementación de almacenamiento vectorial",
    "description": "Discusión sobre la arquitectura...",
    "text": "Se está implementando un sistema...",
    "tags": ["embeddings", "vectorial", "conversaciones"],
    "language": "es"
  },
  "indexing": {
    "index_name": "PROJECT_CONVERSATIONS",
    "table_category": "DEVELOPMENT_LOGS"
  }
}
```

## Licencia

MIT

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one checks connectivity/status, while the other saves data. There is no overlap or ambiguity between these functions, making it easy for an agent to select the correct tool.

Naming Consistency5/5

Both tools follow a consistent 'n8n_verb_noun' pattern (n8n_health_check, n8n_save_data). This naming convention is uniform and predictable, enhancing readability and usability.

Tool Count2/5

With only two tools, the server feels thin for a webhook server that might require more operations like listing, updating, or deleting data. This limited scope could hinder agent workflows, indicating an under-provisioned tool surface.

Completeness2/5

The server lacks essential CRUD operations for a webhook domain; it only offers health checks and data saving. Missing tools for retrieving, updating, or managing webhook data create significant gaps that will likely cause agent failures in broader tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues