UNPKG

smart-thinking-mcp

Version:

Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif

99 lines 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerServerResources = registerServerResources; const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const server_metadata_1 = require("../server-metadata"); function buildAboutDocument(version) { return [ '# Smart-Thinking', '', `Version: ${version}`, '', 'Smart-Thinking est un serveur MCP local-first pour le raisonnement graphe,', 'la verification deterministe et la persistance de sessions.', '', 'Principes:', '- Zero cle API obligatoire par defaut', '- Pipeline de raisonnement reproductible', '- Compatibilite MCP multi-transports (stdio/http/sse)', ].join('\n'); } function buildRuntimeStatus(env) { const recentCount = env.memoryManager.getRecentMemories(50).length; const externalToolsEnabled = process.env.SMART_THINKING_ENABLE_EXTERNAL_TOOLS === 'true'; return JSON.stringify({ server: 'smart-thinking-mcp', version: env.version, timestamp: new Date().toISOString(), mode: externalToolsEnabled ? 'hybrid' : 'local-only', recentMemories: recentCount, capabilities: { prompts: true, resources: true, tools: ['smartthinking', 'search', 'fetch'], }, }, null, 2); } function registerServerResources(server, env) { server.registerResource('smartthinking-about', server_metadata_1.SERVER_DOCS_RESOURCE_URI, { title: 'Smart-Thinking Overview', description: 'Documentation concise du serveur et de ses principes operationnels.', mimeType: 'text/markdown', }, async () => ({ contents: [ { uri: server_metadata_1.SERVER_DOCS_RESOURCE_URI, mimeType: 'text/markdown', text: buildAboutDocument(env.version), }, ], })); server.registerResource('smartthinking-runtime-status', server_metadata_1.SERVER_RUNTIME_RESOURCE_URI, { title: 'Runtime Status', description: 'Etat runtime minimal du serveur Smart-Thinking.', mimeType: 'application/json', }, async () => ({ contents: [ { uri: server_metadata_1.SERVER_RUNTIME_RESOURCE_URI, mimeType: 'application/json', text: buildRuntimeStatus(env), }, ], })); server.registerResource('smartthinking-session-recent', new mcp_js_1.ResourceTemplate('smart-thinking://sessions/{sessionId}/recent', { list: undefined }), { title: 'Session Recent Memories', description: 'Memoires recentes d\'une session donnee.', mimeType: 'application/json', }, async (uri, { sessionId }) => { const resolvedSessionId = Array.isArray(sessionId) ? sessionId[0] : sessionId; const memories = env.memoryManager.getRecentMemories(10, resolvedSessionId); return { contents: [ { uri: uri.href, mimeType: 'application/json', text: JSON.stringify({ sessionId: resolvedSessionId, count: memories.length, memories }, null, 2), }, ], }; }); server.registerResource('smartthinking-memory-by-id', new mcp_js_1.ResourceTemplate('smart-thinking://memories/{memoryId}', { list: undefined }), { title: 'Memory By ID', description: 'Recuperation d\'une memoire unique par identifiant.', mimeType: 'application/json', }, async (uri, { memoryId }) => { const resolvedMemoryId = Array.isArray(memoryId) ? memoryId[0] : memoryId; const memory = env.memoryManager.getMemory(resolvedMemoryId); return { contents: [ { uri: uri.href, mimeType: 'application/json', text: JSON.stringify(memory ?? { error: 'Memory not found', memoryId: resolvedMemoryId }, null, 2), }, ], }; }); } //# sourceMappingURL=resource-registrations.js.map