feat(mcp): add all 4 note types, translate N8N docs to English, add N8N workflow examples
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 55s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 55s
- tools.js: expose type enum ['text','markdown','richtext','checklist'] in create_note & update_note - default changed from 'text' to 'richtext' (matches Prisma schema) - isMarkdown marked as deprecated in favour of type='markdown' - N8N-CONFIG.md: full French → English translation - N8N-WORKFLOWS.md: full French → English translation - N8N-EXAMPLES.md: new comprehensive examples for all 22 MCP tools + workflow patterns - n8n-workflow-mcp-reminder-bot.json: cron → get_due_reminders → Telegram → mark done - n8n-workflow-mcp-email-to-note.json: IMAP → create_note → urgent Slack alert - n8n-workflow-mcp-daily-digest.json: 8AM cron → notes + reminders digest → save + Slack - n8n-workflow-mcp-webhook-to-note.json: universal webhook → create_note → respond - notebooks-list.tsx: fix truncated notebook names (pe-24→pe-14), replace hover overlay with Tooltip
This commit is contained in:
@@ -1,34 +1,34 @@
|
||||
# Configuration N8N - Memento MCP Server
|
||||
# N8N Configuration — Memento MCP Server
|
||||
|
||||
## Configuration MCP Client dans N8N
|
||||
## MCP Client Setup in N8N
|
||||
|
||||
Le serveur MCP utilise le transport **Streamable HTTP** (remplace l'ancien SSE).
|
||||
The MCP server uses **Streamable HTTP** transport (replaces the legacy SSE transport).
|
||||
|
||||
### 1. Generer une cle API
|
||||
### 1. Generate an API Key
|
||||
|
||||
Dans Memento : **Parametres > MCP > Generer une cle**
|
||||
In Memento: **Settings > MCP > Generate a key**
|
||||
|
||||
La cle a le format `mcp_sk_...` et est associee a votre compte utilisateur. Seules vos notes seront accessibles.
|
||||
The key has the format `mcp_sk_...` and is scoped to your user account. Only your notes will be accessible.
|
||||
|
||||
### 2. Configurer le noeud MCP Client dans N8N
|
||||
### 2. Configure the MCP Client Node in N8N
|
||||
|
||||
1. Ajouter un noeud **MCP Client** dans votre workflow
|
||||
2. **Server Transport** : `Streamable HTTP`
|
||||
3. **MCP Endpoint URL** : `http://memento-mcp:3001/mcp` (Docker) ou `http://VOTRE_IP:3001/mcp`
|
||||
4. **Authentication** : Header Auth
|
||||
- Header Name : `x-api-key`
|
||||
- Header Value : votre cle API (`mcp_sk_...`)
|
||||
1. Add an **MCP Client** node to your workflow
|
||||
2. **Server Transport**: `Streamable HTTP`
|
||||
3. **MCP Endpoint URL**: `http://memento-mcp:3001/mcp` (Docker) or `http://YOUR_IP:3001/mcp`
|
||||
4. **Authentication**: Header Auth
|
||||
- Header Name: `x-api-key`
|
||||
- Header Value: your API key (`mcp_sk_...`)
|
||||
|
||||
### Alternative : curl
|
||||
### Alternative: curl
|
||||
|
||||
```bash
|
||||
# Health check
|
||||
curl -H "x-api-key: mcp_sk_votrecle" http://localhost:3001/
|
||||
curl -H "x-api-key: mcp_sk_yourkey" http://localhost:3001/
|
||||
|
||||
# Lister les outils
|
||||
# List available tools
|
||||
curl -X POST http://localhost:3001/mcp \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "x-api-key: mcp_sk_votrecle" \
|
||||
-H "x-api-key: mcp_sk_yourkey" \
|
||||
-d '{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
@@ -36,10 +36,10 @@ curl -X POST http://localhost:3001/mcp \
|
||||
"params": {}
|
||||
}'
|
||||
|
||||
# Creer une note
|
||||
# Create a note
|
||||
curl -X POST http://localhost:3001/mcp \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "x-api-key: mcp_sk_votrecle" \
|
||||
-H "x-api-key: mcp_sk_yourkey" \
|
||||
-d '{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 2,
|
||||
@@ -47,72 +47,81 @@ curl -X POST http://localhost:3001/mcp \
|
||||
"params": {
|
||||
"name": "create_note",
|
||||
"arguments": {
|
||||
"title": "Ma note",
|
||||
"content": "Contenu de la note"
|
||||
"title": "My note",
|
||||
"content": "Note content here"
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## Outils disponibles (22)
|
||||
## Available Tools (22)
|
||||
|
||||
### Notes (11)
|
||||
|
||||
| Outil | Description |
|
||||
|-------|-------------|
|
||||
| `create_note` | Creer une note |
|
||||
| `get_notes` | Lister les notes |
|
||||
| `get_note` | Recuperer une note par ID |
|
||||
| `update_note` | Modifier une note |
|
||||
| `delete_note` | Supprimer une note |
|
||||
| `search_notes` | Rechercher par mot-cle |
|
||||
| `move_note` | Deplacer vers un notebook |
|
||||
| `toggle_pin` | Epingler/Depingler |
|
||||
| `toggle_archive` | Archiver/Desarchiver |
|
||||
| `export_notes` | Exporter en JSON |
|
||||
| `import_notes` | Importer depuis JSON |
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_note` | Create a note |
|
||||
| `get_notes` | List notes |
|
||||
| `get_note` | Get a note by ID |
|
||||
| `update_note` | Update a note |
|
||||
| `delete_note` | Delete a note |
|
||||
| `search_notes` | Search by keyword |
|
||||
| `move_note` | Move to a notebook |
|
||||
| `toggle_pin` | Pin / unpin |
|
||||
| `toggle_archive` | Archive / unarchive |
|
||||
| `export_notes` | Export as JSON |
|
||||
| `import_notes` | Import from JSON |
|
||||
|
||||
#### Note Types
|
||||
|
||||
| `type` value | Description |
|
||||
|--------------|-------------|
|
||||
| `richtext` | Rich text editor — **default** |
|
||||
| `markdown` | Markdown rendered (use instead of `isMarkdown`) |
|
||||
| `text` | Plain text |
|
||||
| `checklist` | Interactive checklist with `checkItems` |
|
||||
|
||||
### Notebooks (6)
|
||||
|
||||
| Outil | Description |
|
||||
|-------|-------------|
|
||||
| `create_notebook` | Creer un notebook |
|
||||
| `get_notebooks` | Lister les notebooks |
|
||||
| `get_notebook` | Details d'un notebook |
|
||||
| `update_notebook` | Modifier un notebook |
|
||||
| `delete_notebook` | Supprimer un notebook |
|
||||
| `reorder_notebooks` | Reordonner |
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_notebook` | Create a notebook |
|
||||
| `get_notebooks` | List all notebooks |
|
||||
| `get_notebook` | Get notebook details |
|
||||
| `update_notebook` | Update a notebook |
|
||||
| `delete_notebook` | Delete a notebook |
|
||||
| `reorder_notebooks` | Reorder notebooks |
|
||||
|
||||
### Labels (4)
|
||||
|
||||
| Outil | Description |
|
||||
|-------|-------------|
|
||||
| `create_label` | Creer un label |
|
||||
| `get_labels` | Lister les labels |
|
||||
| `update_label` | Modifier un label |
|
||||
| `delete_label` | Supprimer un label |
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `create_label` | Create a label |
|
||||
| `get_labels` | List labels |
|
||||
| `update_label` | Update a label |
|
||||
| `delete_label` | Delete a label |
|
||||
|
||||
### Rappels (1)
|
||||
### Reminders (1)
|
||||
|
||||
| Outil | Description |
|
||||
|-------|-------------|
|
||||
| `get_due_reminders` | Recuperer les rappels dus |
|
||||
| Tool | Description |
|
||||
|------|-------------|
|
||||
| `get_due_reminders` | Get due reminders |
|
||||
|
||||
## Endpoints HTTP
|
||||
## HTTP Endpoints
|
||||
|
||||
| Endpoint | Methode | Description |
|
||||
|----------|---------|-------------|
|
||||
| Endpoint | Method | Description |
|
||||
|----------|--------|-------------|
|
||||
| `/` | GET | Health check |
|
||||
| `/mcp` | GET/POST | Endpoint MCP principal |
|
||||
| `/sse` | GET/POST | Legacy (redirige vers `/mcp`) |
|
||||
| `/sessions` | GET | Sessions actives |
|
||||
| `/mcp` | GET/POST | Main MCP endpoint |
|
||||
| `/sse` | GET/POST | Legacy (redirects to `/mcp`) |
|
||||
| `/sessions` | GET | Active sessions |
|
||||
|
||||
## Securite
|
||||
## Security
|
||||
|
||||
- **Authentification obligatoire** en production (`MCP_REQUIRE_AUTH=true` dans Docker)
|
||||
- Les cles API sont gerees depuis **Parametres > MCP** dans Memento
|
||||
- Chaque cle est scopee a un utilisateur : seules ses notes sont accessibles
|
||||
- Les cles sont hashees en base (SHA256), seul le raw key est montre a la creation
|
||||
- **Authentication required** in production (`MCP_REQUIRE_AUTH=true` in Docker)
|
||||
- API keys are managed from **Settings > MCP** in Memento
|
||||
- Each key is scoped to a single user: only their notes are accessible
|
||||
- Keys are hashed in the database (SHA256); the raw key is only shown once at creation
|
||||
|
||||
## Ports
|
||||
|
||||
|
||||
Reference in New Issue
Block a user