Skip to main content
Glama

Scholarly Research MCP Server

by aringadre76
test-preferences.jsโ€ข3.84 kB
const { UserPreferencesManager } = require('../dist/preferences/user-preferences'); const fs = require('fs'); const path = require('path'); const os = require('os'); async function testPreferences() { console.log('๐Ÿงช Testing User Preferences System...\n'); try { const prefsManager = UserPreferencesManager.getInstance(); console.log('โœ… 1. Getting default preferences...'); const defaultPrefs = prefsManager.getPreferences(); console.log(` Default max results: ${defaultPrefs.search.defaultMaxResults}`); console.log(` Default sources: ${defaultPrefs.search.sources.map(s => s.name).join(', ')}`); console.log(` PubMed enabled: ${defaultPrefs.search.sources.find(s => s.name === 'pubmed')?.enabled}`); console.log(` JSTOR enabled: ${defaultPrefs.search.sources.find(s => s.name === 'jstor')?.enabled}`); console.log('\nโœ… 2. Testing source preference updates...'); prefsManager.setSourcePreference('jstor', { enabled: true, priority: 1 }); prefsManager.setSourcePreference('pubmed', { enabled: false }); const updatedPrefs = prefsManager.getPreferences(); console.log(` JSTOR now enabled: ${updatedPrefs.search.sources.find(s => s.name === 'jstor')?.enabled}`); console.log(` PubMed now enabled: ${updatedPrefs.search.sources.find(s => s.name === 'pubmed')?.enabled}`); console.log('\nโœ… 3. Testing enabled sources list...'); const enabledSources = prefsManager.getEnabledSources(); console.log(` Enabled sources: ${enabledSources.map(s => `${s.name}(p:${s.priority})`).join(', ')}`); console.log('\nโœ… 4. Testing search preferences...'); prefsManager.updateSearchPreferences({ defaultMaxResults: 30, defaultSortBy: 'citations', enableDeduplication: false }); const searchPrefs = prefsManager.getPreferences().search; console.log(` Max results: ${searchPrefs.defaultMaxResults}`); console.log(` Sort by: ${searchPrefs.defaultSortBy}`); console.log(` Deduplication: ${searchPrefs.enableDeduplication}`); console.log('\nโœ… 5. Testing display preferences...'); prefsManager.updateDisplayPreferences({ showAbstracts: false, maxAbstractLength: 500 }); const displayPrefs = prefsManager.getPreferences().display; console.log(` Show abstracts: ${displayPrefs.showAbstracts}`); console.log(` Max abstract length: ${displayPrefs.maxAbstractLength}`); console.log('\nโœ… 6. Testing export/import...'); const exported = prefsManager.exportPreferences(); console.log(` Exported JSON length: ${exported.length} characters`); prefsManager.resetToDefaults(); console.log(' Reset to defaults'); prefsManager.importPreferences(exported); console.log(' Imported preferences back'); const finalPrefs = prefsManager.getPreferences(); console.log(` Final max results: ${finalPrefs.search.defaultMaxResults}`); console.log(` Final sort by: ${finalPrefs.search.defaultSortBy}`); console.log('\nโœ… 7. Testing file persistence...'); const configPath = path.join(os.homedir(), '.mcp-scholarly-research', 'preferences.json'); const fileExists = fs.existsSync(configPath); console.log(` Config file exists: ${fileExists}`); if (fileExists) { const fileContent = fs.readFileSync(configPath, 'utf8'); const parsedContent = JSON.parse(fileContent); console.log(` File contains ${Object.keys(parsedContent).length} top-level keys`); } console.log('\n๐ŸŽ‰ All preference tests passed!'); } catch (error) { console.error('โŒ Test failed:', error.message); console.error(error.stack); process.exit(1); } } if (require.main === module) { testPreferences(); } module.exports = { testPreferences };

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aringadre76/mcp-for-research'

If you have feedback or need assistance with the MCP directory API, please join our Discord server