Skip to main content
Glama

Scholarly Research MCP Server

by aringadre76
PROJECT_STRUCTURE.md7.25 kB
# Clean Project Structure ## Overview This document shows the cleaned and organized project structure after removing unnecessary files and consolidating the MCP tools. ## Directory Structure ``` mcp-for-research/ ├── 📁 src/ # Source code │ ├── 📄 index.ts # Main consolidated MCP server (5 tools) │ ├── 📁 adapters/ # Data source connectors │ │ ├── 📄 pubmed.ts # PubMed API integration │ │ ├── 📄 google-scholar.ts # Google Scholar web scraping │ │ ├── 📄 google-scholar-firecrawl.ts # Firecrawl integration │ │ ├── 📄 arxiv.ts # ArXiv integration │ │ ├── 📄 unified-search.ts # Basic multi-source search │ │ ├── 📄 enhanced-unified-search.ts # Advanced multi-source search │ │ └── 📄 preference-aware-unified-search.ts # User preference integration │ └── 📁 preferences/ # User preference management │ └── 📄 user-preferences.ts # Preference storage and retrieval ├── 📁 docs/ # Documentation │ ├── 📄 API_REFERENCE.md # Complete API documentation │ ├── 📄 ARCHITECTURE.md # Technical system design │ ├── 📄 DATA_MODELS.md # Data structure definitions │ ├── 📄 DEVELOPMENT.md # Developer setup guide │ └── 📄 TROUBLESHOOTING.md # Problem-solving guide ├── 📁 tests/ # Test files │ ├── 📄 test-preferences.js # Preference system tests │ ├── 📄 test-all-tools-simple.sh # Bash test runner (recommended) │ ├── 📄 test_all_tools.py # Python test runner │ ├── 📄 test-all-tools.js # JavaScript test runner │ ├── 📄 test-arxiv-*.js # ArXiv-specific tests │ ├── 📄 test-google-scholar-*.js # Google Scholar tests │ ├── 📄 test-firecrawl-*.js # Firecrawl integration tests │ ├── 📄 test-unified-*.js # Unified search tests │ ├── 📄 test-build.js # Build verification tests │ ├── 📄 test-citations.js # Citation tests │ ├── 📄 jest.setup.js # Jest configuration │ ├── 📄 README.md # Test documentation │ └── 📄 run-arxiv-tests.sh # ArXiv test runner script ├── 📁 scripts/ # Build and utility scripts │ ├── 📄 test-mcp-tool.js # MCP tool testing utility │ ├── 📄 publish-both.js # Publishing script │ └── 📄 version.js # Version management script ├── 📁 .github/ # GitHub configuration ├── 📁 .cursor/ # Cursor editor configuration (gitignored) ├── 📁 dist/ # Built output (gitignored) ├── 📁 node_modules/ # Dependencies (gitignored) ├── 📄 .gitignore # Git ignore rules (includes .cursor/) ├── 📄 .npmrc # NPM configuration ├── 📄 .npmignore # NPM ignore rules ├── 📄 package.json # Project configuration and dependencies ├── 📄 package-lock.json # Locked dependency versions ├── 📄 tsconfig.json # TypeScript configuration ├── 📄 README.md # Main project documentation ├── 📄 README-consolidated.md # Consolidated approach documentation ├── 📄 TOOL_CONSOLIDATION.md # Tool consolidation reference ├── 📄 PROJECT_STRUCTURE_CLEAN.md # This file ├── 📄 PROJECT_STRUCTURE.md # Legacy structure documentation ├── 📄 CHANGELOG.md # Version history and changes └── 📄 LICENSE # MIT license ``` ## What Was Cleaned Up ### ❌ Removed Files - `ion` - Unrelated file (appeared to be a man page) - `cholarly-research-mcp version` - Git log output file - `test-search_arxiv-1756073254017.js` - Temporary test file with timestamp - `src/index-consolidated.ts` - Merged into main index.ts ### ✅ Added to .gitignore - `.cursor/` - Cursor editor configuration files - `*.cursor` - Any cursor-specific files ### 🔄 Consolidated Tools - **Before**: 24 individual MCP tools - **After**: 5 powerful, multi-functional tools - **Reduction**: 80% fewer tools to manage ## Key Benefits of Clean Structure ### **Organization** - Clear separation of concerns - Logical grouping of related files - Consistent naming conventions ### **Maintainability** - Easier to find specific functionality - Reduced code duplication - Centralized tool definitions ### **User Experience** - Fewer tools to remember - More powerful functionality - Consistent interface patterns ### **Development** - Simpler testing setup - Easier debugging - Better error handling ## File Purposes ### **Core Source Files** - `src/index.ts` - Main MCP server with 5 consolidated tools - `src/adapters/` - Database and API connectors - `src/preferences/` - User preference management ### **Documentation** - `README.md` - Main project overview and setup - `README-consolidated.md` - Detailed consolidation explanation - `TOOL_CONSOLIDATION.md` - Quick reference for tool mapping - `docs/` - Technical documentation ### **Testing** - `tests/` - Comprehensive test suite - `test-all-tools-simple.sh` - Recommended test runner - Multiple test runners for different environments ### **Configuration** - `package.json` - Project metadata and scripts - `tsconfig.json` - TypeScript compilation settings - `.gitignore` - Version control exclusions ## Development Workflow ### **Building** ```bash npm run build # Compile TypeScript to JavaScript npm run dev # Development mode with hot reload npm start # Run production build ``` ### **Testing** ```bash npm run test:all-tools-bash # Run all tests (recommended) npm run test:all-tools-python # Python test runner npm run test:all-tools-js # JavaScript test runner ``` ### **Version Management** ```bash npm run version:patch # Increment patch version npm run version:minor # Increment minor version npm run version:major # Increment major version ``` ## Future Improvements ### **Planned Enhancements** - Plugin system for new data sources - Advanced caching and optimization - Better error handling and logging - Enhanced user preference system ### **Extensibility** - Modular adapter system - Custom tool definitions - API versioning support - Backward compatibility ## Conclusion The cleaned project structure provides a much more maintainable and user-friendly codebase. The consolidation from 24 tools to 5 powerful tools reduces complexity while maintaining all functionality. The organized directory structure makes it easier for developers to contribute and for users to understand the system.

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