PROJECT_STRUCTURE.md•7.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.