smart-thinking-mcp 7.0.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,13 +1,23 @@
1
1
  # Smart-Thinking
2
2
 
3
+ [![smithery badge](https://smithery.ai/badge/@Leghis/smart-thinking)](https://smithery.ai/server/@Leghis/smart-thinking)
3
4
  [![npm version](https://img.shields.io/npm/v/smart-thinking-mcp.svg)](https://www.npmjs.com/package/smart-thinking-mcp)
4
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.1.6-blue)](https://www.typescriptlang.org/)
7
+ [![Platform: Windows](https://img.shields.io/badge/Platform-Windows-blue)](https://github.com/Leghis/smart-thinking-mcp)
8
+ [![Platform: macOS](https://img.shields.io/badge/Platform-macOS-blue)](https://github.com/Leghis/smart-thinking-mcp)
9
+ [![Platform: Linux](https://img.shields.io/badge/Platform-Linux-blue)](https://github.com/Leghis/smart-thinking-mcp)
10
+
11
+ <a href="https://glama.ai/mcp/servers/@Leghis/Smart-Thinking">
12
+ <img width="380" height="200" src="https://glama.ai/mcp/servers/@Leghis/Smart-Thinking/badge" alt="Smart-Thinking MCP server" />
13
+ </a>
6
14
 
7
15
  ## Vue d'ensemble
8
16
 
9
17
  Smart-Thinking est un serveur MCP (Model Context Protocol) sophistiqué qui fournit un cadre de raisonnement multi-dimensionnel, adaptatif et auto-vérifiable pour les assistants IA comme Claude. Contrairement aux approches de raisonnement linéaire, Smart-Thinking utilise une architecture basée sur des graphes qui permet des connexions complexes entre les pensées, offrant ainsi une capacité de raisonnement plus nuancée et plus proche de la cognition humaine.
10
18
 
19
+ Smart-Thinking est entièrement compatible avec toutes les plateformes (Windows, macOS, Linux) et s'intègre parfaitement avec de nombreux clients MCP, notamment Claude Desktop, Cline, Windsurf et d'autres applications compatibles MCP.
20
+
11
21
  ## Caractéristiques clés
12
22
 
13
23
  ### Architecture cognitive avancée
@@ -30,9 +40,77 @@ Smart-Thinking est un serveur MCP (Model Context Protocol) sophistiqué qui four
30
40
  - Collaboration multi-agents pour le travail d'équipe
31
41
  - Intégration transparente avec l'écosystème d'outils MCP
32
42
 
43
+ ### Compatibilité cross-plateforme
44
+ - Fonctionne de manière identique sur Windows, macOS et Linux
45
+ - Compatible avec NVM (Node Version Manager) sur toutes les plateformes
46
+ - Gestion automatique des chemins de fichiers selon la plateforme
47
+ - Configuration simplifiée pour chaque environnement
48
+ - Résolution automatique des problèmes spécifiques à chaque OS
49
+
50
+ ## Installation
51
+
52
+ ### Option 1: Installation globale (recommandée)
53
+
54
+ ```bash
55
+ # Sur macOS/Linux
56
+ npm install -g smart-thinking-mcp
57
+
58
+ # Sur Windows (depuis PowerShell ou CMD)
59
+ npm install -g smart-thinking-mcp
60
+ ```
61
+
62
+ ### Option 2: Installation via Smithery
63
+
64
+ Pour installer Smart-Thinking automatiquement via [Smithery](https://smithery.ai/server/@Leghis/smart-thinking):
65
+
66
+ ```bash
67
+ npx -y @smithery/cli install @Leghis/smart-thinking --client claude
68
+ ```
69
+
70
+ ### Option 3: Utilisation via npx (sans installation)
71
+
72
+ ```bash
73
+ # Sur macOS/Linux
74
+ npx -y smart-thinking-mcp
75
+
76
+ # Sur Windows (moins recommandé, préférez l'installation globale)
77
+ npx -y smart-thinking-mcp
78
+ ```
79
+
80
+ ### Option 4: Installation depuis le code source
81
+
82
+ ```bash
83
+ # Cloner le dépôt
84
+ git clone https://github.com/votre-utilisateur/Smart-Thinking.git
85
+ cd Smart-Thinking
86
+
87
+ # Installer les dépendances
88
+ npm install
89
+
90
+ # Compiler le projet
91
+ npm run build
92
+
93
+ # Créer un lien npm global
94
+ npm link
95
+ ```
96
+
33
97
  ## Configuration avec Claude Desktop
34
98
 
35
- Ajoutez cette configuration à votre fichier `claude_desktop_config.json` :
99
+ ### Configuration sur macOS
100
+
101
+ Ajoutez cette configuration à votre fichier `~/Library/Application Support/Claude/claude_desktop_config.json` :
102
+
103
+ ```json
104
+ {
105
+ "mcpServers": {
106
+ "smart-thinking": {
107
+ "command": "smart-thinking-mcp"
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ OU via npx:
36
114
 
37
115
  ```json
38
116
  {
@@ -45,6 +123,73 @@ Ajoutez cette configuration à votre fichier `claude_desktop_config.json` :
45
123
  }
46
124
  ```
47
125
 
126
+ ### Configuration sur Windows
127
+
128
+ Ajoutez cette configuration à votre fichier `%APPDATA%\Claude\claude_desktop_config.json` :
129
+
130
+ ```json
131
+ {
132
+ "mcpServers": {
133
+ "smart-thinking": {
134
+ "command": "C:/Users/VotreNom/AppData/Roaming/npm/smart-thinking-mcp.cmd"
135
+ }
136
+ }
137
+ }
138
+ ```
139
+
140
+ OU avec le chemin complet vers Node.js (recommandé pour Windows):
141
+
142
+ ```json
143
+ {
144
+ "mcpServers": {
145
+ "smart-thinking": {
146
+ "command": "C:/Program Files/nodejs/node.exe",
147
+ "args": ["C:/Users/VotreNom/AppData/Roaming/npm/node_modules/smart-thinking-mcp/build/index.js"]
148
+ }
149
+ }
150
+ }
151
+ ```
152
+
153
+ **Important**:
154
+ - Remplacez `VotreNom` par votre nom d'utilisateur Windows.
155
+ - Utilisez des forward slashes (`/`) dans les chemins Windows, même si l'OS utilise des backslashes (`\`).
156
+
157
+ Pour des instructions d'installation détaillées, consultez le [Guide d'installation](./GUIDE_INSTALLATION.md).
158
+
159
+ ## Système de fichiers cross-plateforme
160
+
161
+ Smart-Thinking implémente une gestion avancée du système de fichiers compatible avec toutes les plateformes:
162
+
163
+ ### Fonctionnalités du système de fichiers
164
+
165
+ - **Normalisation automatique des chemins**: Conversion transparente entre les séparateurs de chemin Windows (`\`) et Unix (`/`)
166
+ - **Détection de plateforme intégrée**: Adaptation automatique selon l'OS (Windows, macOS, Linux)
167
+ - **Gestion des chemins spéciaux**: Support pour les chemins UNC Windows, WSL et les chemins avec espaces
168
+ - **Répertoire de données auto-configuré**: Création et gestion automatique du répertoire de données
169
+ - **Fallback intelligent**: Création automatique d'un répertoire alternatif en cas de problème d'accès
170
+ - **Chemins de configuration spécifiques à la plateforme**: Localisation correcte des fichiers de configuration selon l'OS
171
+
172
+ ### Configuration du répertoire de données
173
+
174
+ Par défaut, Smart-Thinking crée et utilise un dossier `data` dans son répertoire de travail. Vous pouvez également spécifier un répertoire personnalisé avec la variable d'environnement `SMART_THINKING_DATA_DIR`:
175
+
176
+ ```json
177
+ {
178
+ "mcpServers": {
179
+ "smart-thinking": {
180
+ "command": "smart-thinking-mcp",
181
+ "env": {
182
+ "SMART_THINKING_DATA_DIR": "/chemin/absolu/vers/data"
183
+ }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ ### Support pour NVM (Node Version Manager)
190
+
191
+ Smart-Thinking détecte automatiquement si Node.js est installé via NVM et adapte les chemins en conséquence, offrant une compatibilité parfaite sur toutes les plateformes, y compris Windows avec NVM.
192
+
48
193
  ## Utilisation
49
194
 
50
195
  ### Paramètres principaux
@@ -69,17 +214,17 @@ Utilise l'outil Smart-Thinking pour analyser les avantages et inconvénients des
69
214
 
70
215
  #### Avec vérification automatique
71
216
  ```
72
- Utilise Smart-Thinking avec vérification pour évaluer les affirmations suivantes sur le changement climatique.
217
+ Utilise Smart-Thinking avec vérification (requestVerification=true) pour évaluer les affirmations suivantes sur le changement climatique.
73
218
  ```
74
219
 
75
220
  #### Avec visualisation
76
221
  ```
77
- Utilise Smart-Thinking avec visualisation pour développer une stratégie marketing multicouche.
222
+ Utilise Smart-Thinking avec visualisation (generateVisualization=true) pour développer une stratégie marketing multicouche.
78
223
  ```
79
224
 
80
225
  #### Analyse collaborative
81
226
  ```
82
- Utilise Smart-Thinking en mode collaboratif pour analyser ce problème complexe d'optimisation.
227
+ Utilise Smart-Thinking avec un identifiant de session (sessionId="projet-innovation") pour analyser ce problème complexe d'optimisation.
83
228
  ```
84
229
 
85
230
  ## Système de vérification
@@ -113,11 +258,12 @@ Les seuils et les scores ont été optimisés par simulation pour garantir une c
113
258
 
114
259
  Smart-Thinking propose plusieurs types de visualisations du graphe de pensée :
115
260
 
116
- - Chronologique : Organisation temporelle des pensées
117
- - Thématique : Clusters par thèmes similaires
118
- - Hiérarchique : Structure arborescente
119
- - Force : Disposition basée sur les forces d'attraction/répulsion
120
- - Radiale : Cercles concentriques autour d'une pensée centrale
261
+ - **Graphe standard**: Disposition standard du réseau de pensées
262
+ - **Chronologique**: Organisation temporelle des pensées
263
+ - **Thématique**: Clusters par thèmes similaires
264
+ - **Hiérarchique**: Structure arborescente
265
+ - **Force**: Disposition basée sur les forces d'attraction/répulsion
266
+ - **Radiale**: Cercles concentriques autour d'une pensée centrale
121
267
 
122
268
  Les visualisations peuvent être filtrées selon :
123
269
  - Types de pensées
@@ -134,7 +280,19 @@ Smart-Thinking implémente un système robuste de persistance des données qui s
134
280
  - Les métriques calculées pour analyse et amélioration
135
281
  - Les préférences utilisateur pour personnalisation
136
282
 
137
- Les données sont stockées dans des fichiers JSON structurés sur le système de fichiers, garantissant la persistance entre les sessions.
283
+ Les données sont stockées de manière compatible cross-plateforme dans des fichiers JSON structurés sur le système de fichiers, garantissant la persistance entre les sessions.
284
+
285
+ ## Compatibilité avec les clients MCP
286
+
287
+ Smart-Thinking est compatible avec de nombreux clients MCP, dont :
288
+
289
+ - **Claude Desktop App**: Support complet des outils, ressources et prompts
290
+ - **Cline**: Support pour les outils et ressources
291
+ - **Continue**: Support complet pour toutes les fonctionnalités MCP
292
+ - **5ire**: Support pour les outils
293
+ - **Cursor**: Support pour les outils
294
+ - **Windsurf Editor**: Support pour les outils AI Flow
295
+ - **Et plus encore...**
138
296
 
139
297
  ## Comparaison avec Sequential-Thinking
140
298
 
@@ -150,6 +308,7 @@ Les données sont stockées dans des fichiers JSON structurés sur le système d
150
308
  | Personnalisation | Limitée | Adaptative à l'utilisateur |
151
309
  | Auto-apprentissage | Non | Oui |
152
310
  | Métriques | Basiques | Contextuelle et multi-facteurs |
311
+ | Compatibilité plateforme | Limitée | Complète (Windows, macOS, Linux) |
153
312
 
154
313
  ## API et intégration
155
314
 
@@ -175,6 +334,45 @@ console.log(result.qualityMetrics);
175
334
  console.log(result.verificationStatus);
176
335
  ```
177
336
 
337
+ ## Résolution des problèmes
338
+
339
+ ### Vérification rapide du fonctionnement
340
+
341
+ Pour vérifier que Smart-Thinking fonctionne correctement:
342
+
343
+ ```bash
344
+ # Sur macOS/Linux
345
+ smart-thinking-mcp
346
+
347
+ # Sur Windows
348
+ smart-thinking-mcp.cmd
349
+ ```
350
+
351
+ Vous devriez voir le message de démarrage du serveur.
352
+
353
+ ### Consulter les logs
354
+
355
+ Si vous rencontrez des difficultés, consultez les logs de Claude Desktop :
356
+
357
+ - Sur macOS : `~/Library/Logs/Claude/mcp*.log`
358
+ - Sur Windows : `%USERPROFILE%\AppData\Local\Claude\logs\mcp*.log`
359
+ - Sur Linux : `~/.local/share/Claude/logs/mcp*.log`
360
+
361
+ ### Problèmes courants et solutions
362
+
363
+ | Problème | Solution |
364
+ |----------|----------|
365
+ | Smart-Thinking n'apparaît pas dans Claude | Vérifiez les chemins dans la configuration, redémarrez Claude Desktop |
366
+ | Erreurs d'accès aux fichiers | Vérifiez les permissions du répertoire de données |
367
+ | Problèmes de connexion sur Windows | Utilisez des chemins complets et absolus avec forward slashes |
368
+ | Erreurs avec NVM sur Windows | Utilisez le chemin complet vers la version active de Node.js |
369
+
370
+ Pour les problèmes spécifiques à Windows et NVM, consultez la section dédiée dans le [Guide d'installation](./GUIDE_INSTALLATION.md).
371
+
372
+ ## Contribution
373
+
374
+ Les contributions sont les bienvenues ! Consultez notre [Guide de contribution](./CONTRIBUTING.md) pour plus d'informations.
375
+
178
376
  ## Licence
179
377
 
180
- MIT
378
+ [MIT](./LICENSE)
package/build/config.d.ts CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * config.ts
3
- *
4
- * Fichier de configuration centralisé pour Smart-Thinking
5
- * Contient les seuils, paramètres et constantes utilisés dans tout le système
6
- */
7
1
  /**
8
2
  * Configuration pour les seuils de vérification et similarité
9
3
  */
@@ -45,3 +39,30 @@ export declare const SystemConfig: {
45
39
  MAX_THOUGHT_LENGTH: number;
46
40
  MAX_CONNECTIONS: number;
47
41
  };
42
+ /**
43
+ * Configuration spécifique à la plateforme
44
+ * Détecte automatiquement l'environnement d'exécution et ajuste les paramètres
45
+ */
46
+ export declare const PlatformConfig: {
47
+ IS_WINDOWS: boolean;
48
+ IS_MAC: boolean;
49
+ IS_LINUX: boolean;
50
+ /**
51
+ * Obtient le répertoire de configuration selon la plateforme
52
+ */
53
+ getConfigPath: () => string;
54
+ /**
55
+ * Obtient le répertoire temporaire selon la plateforme
56
+ */
57
+ getTempPath: () => string;
58
+ /**
59
+ * Vérifie si Node.js est installé via NVM
60
+ * Utile pour ajuster les chemins sur Windows avec NVM
61
+ */
62
+ isNvmEnvironment: () => boolean;
63
+ /**
64
+ * Obtient le chemin de base de NVM si applicable
65
+ * Important pour les configurations sur Windows avec NVM
66
+ */
67
+ getNvmBasePath: () => string | null;
68
+ };
package/build/config.js CHANGED
@@ -1,12 +1,47 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PlatformConfig = exports.SystemConfig = exports.EmbeddingConfig = exports.VerificationConfig = void 0;
2
37
  /**
3
38
  * config.ts
4
39
  *
5
40
  * Fichier de configuration centralisé pour Smart-Thinking
6
41
  * Contient les seuils, paramètres et constantes utilisés dans tout le système
7
42
  */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.SystemConfig = exports.EmbeddingConfig = exports.VerificationConfig = void 0;
43
+ const os_1 = require("os");
44
+ const path = __importStar(require("path"));
10
45
  /**
11
46
  * Configuration pour les seuils de vérification et similarité
12
47
  */
@@ -51,4 +86,65 @@ exports.SystemConfig = {
51
86
  MAX_THOUGHT_LENGTH: 10000, // Longueur maximale d'une pensée en caractères
52
87
  MAX_CONNECTIONS: 50 // Nombre maximum de connexions par pensée
53
88
  };
89
+ /**
90
+ * Configuration spécifique à la plateforme
91
+ * Détecte automatiquement l'environnement d'exécution et ajuste les paramètres
92
+ */
93
+ exports.PlatformConfig = {
94
+ IS_WINDOWS: (0, os_1.platform)() === 'win32',
95
+ IS_MAC: (0, os_1.platform)() === 'darwin',
96
+ IS_LINUX: (0, os_1.platform)() === 'linux',
97
+ /**
98
+ * Obtient le répertoire de configuration selon la plateforme
99
+ */
100
+ getConfigPath: () => {
101
+ if ((0, os_1.platform)() === 'win32') {
102
+ return process.env.APPDATA
103
+ ? path.join(process.env.APPDATA, 'Smart-Thinking')
104
+ : path.join(process.env.USERPROFILE || '', 'AppData', 'Roaming', 'Smart-Thinking');
105
+ }
106
+ else if ((0, os_1.platform)() === 'darwin') {
107
+ return path.join(process.env.HOME || '', 'Library', 'Application Support', 'Smart-Thinking');
108
+ }
109
+ else {
110
+ return path.join(process.env.HOME || '', '.smart-thinking');
111
+ }
112
+ },
113
+ /**
114
+ * Obtient le répertoire temporaire selon la plateforme
115
+ */
116
+ getTempPath: () => {
117
+ return path.join((0, os_1.platform)() === 'win32' ? (process.env.TEMP || 'C:/Temp') : '/tmp', 'smart-thinking');
118
+ },
119
+ /**
120
+ * Vérifie si Node.js est installé via NVM
121
+ * Utile pour ajuster les chemins sur Windows avec NVM
122
+ */
123
+ isNvmEnvironment: () => {
124
+ const nodePath = process.execPath.toLowerCase();
125
+ return nodePath.includes('nvm') ||
126
+ ((0, os_1.platform)() === 'win32' && nodePath.includes('appdata\\roaming\\nvm'));
127
+ },
128
+ /**
129
+ * Obtient le chemin de base de NVM si applicable
130
+ * Important pour les configurations sur Windows avec NVM
131
+ */
132
+ getNvmBasePath: () => {
133
+ if (!exports.PlatformConfig.isNvmEnvironment()) {
134
+ return null;
135
+ }
136
+ if ((0, os_1.platform)() === 'win32') {
137
+ const nvmPath = process.execPath.split('\\node.exe')[0];
138
+ return nvmPath;
139
+ }
140
+ else {
141
+ // Pour Unix, essayer de détecter le chemin NVM
142
+ const nvmDir = process.env.NVM_DIR;
143
+ if (nvmDir) {
144
+ return nvmDir;
145
+ }
146
+ }
147
+ return null;
148
+ }
149
+ };
54
150
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,2CAA2C;IAC3C,UAAU,EAAE;QACV,iBAAiB,EAAE,GAAG,EAAS,oEAAoE;QACnG,qBAAqB,EAAE,GAAG,EAAM,gEAAgE;QAChG,eAAe,EAAE,IAAI,EAAW,wCAAwC;QACxE,cAAc,EAAE,GAAG,CAAa,wCAAwC;KACzE;IAED,uDAAuD;IACvD,UAAU,EAAE;QACV,WAAW,EAAE,IAAI,EAAe,2DAA2D;QAC3F,eAAe,EAAE,IAAI,EAAW,wFAAwF;QACxH,iBAAiB,EAAE,IAAI,EAAS,qGAAqG;QACrI,cAAc,EAAE,IAAI,EAAY,6FAA6F;QAC7H,UAAU,EAAE,IAAI,CAAgB,kFAAkF;KACnH;IAED,6CAA6C;IAC7C,MAAM,EAAE;QACN,cAAc,EAAE,IAAI,EAAY,yCAAyC;QACzE,gBAAgB,EAAE,OAAO,EAAO,8DAA8D;QAC9F,mBAAmB,EAAE,QAAQ,CAAG,8CAA8C;KAC/E;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B,KAAK,EAAE,yBAAyB,EAAG,gCAAgC;IACnE,UAAU,EAAE,iBAAiB,EAAO,wCAAwC;IAC5E,UAAU,EAAE,EAAE,EAAsB,yDAAyD;IAC7F,cAAc,EAAE,CAAC,EAAmB,sCAAsC;IAC1E,WAAW,EAAE,IAAI,CAAmB,6CAA6C;CAClF,CAAC;AAEF;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,kBAAkB,EAAE,SAAS;IAC7B,kBAAkB,EAAE,KAAK,EAAW,+CAA+C;IACnF,eAAe,EAAE,EAAE,CAAiB,0CAA0C;CAC/E,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}