Skip to main content
Glama
ENHANCED_CLI_MAKEFILE.md•6.03 kB
# Enhanced CLI and Makefile Implementation ## āœ… Issues Fixed and Enhancements Made ### 1. Fixed Duplicated Commands in Makefile Help **Problem**: EGW commands appeared in both "Setup & Installation" and "EGW Commands" sections. **Solution**: Enhanced the help target with proper filtering: ```makefile @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | grep -v "EGW Commands" | grep -v "^egw-" | awk 'BEGIN {FS = ":.*?## "}; {printf " $(CYAN)%-20s$(NC) %s\n", $$1, $$2}' ``` **Result**: Clean categorization with no duplicates: - **Setup & Installation**: Core project commands - **EGW Commands**: EGW-specific downloader commands - **Server Commands**: Server startup commands - **Database Commands**: Database management commands - **Workflow Commands**: Complete workflow commands ### 2. Enhanced install-cli with Multi-Package Support **Problem**: Original `install-cli` only installed the downloader package. **Solution**: Created interactive and parametrized installation system: #### Interactive Installation ```bash make install-cli ``` Shows menu: ``` EGW Writings CLI Installation Available packages: 1 - egw-downloader (Data extraction and database population) 2 - egw-api-server (Live API access MCP server) 3 - egw-local-server (Local database MCP server) 4 - all (Install all packages) Select package to install (1-4): ``` #### Parametrized Installation ```bash make install-cli PACKAGE=downloader # Install specific package make install-cli PACKAGE=api-server # Install API server make install-cli PACKAGE=local-server # Install local server make install-cli PACKAGE=all # Install all packages ``` #### Package Information Each package has proper CLI configuration: **egw-downloader** (`apps/downloader/package.json`): ```json { "bin": { "egw-downloader": "dist/index.js" } } ``` **egw-api-server** (`apps/api-server/package.json`): ```json { "bin": { "egw-api-server": "dist/server.js" } } ``` **egw-local-server** (`apps/local-server/package.json`): ```json { "bin": { "egw-local-server": "dist/server.js" } } ``` ### 3. Enhanced Uninstall Support **Matching uninstall functionality**: ```bash make uninstall-cli # Interactive uninstall make uninstall-cli PACKAGE=downloader # Uninstall specific package make uninstall-cli PACKAGE=all # Uninstall all packages ``` ### 4. Permission Handling **Problem**: `npm link` requires permissions for global installation. **Solution**: Added helpful guidance: ```bash make install-cli # Shows note about permission solutions: # - sudo make install-cli # - npm config set prefix ~/.npm-global ``` ### 5. Enhanced Documentation #### Updated README with Multiple Installation Methods ```bash # Method 1: Global NPM (when published) npm install -g @surgbc/egw-writings-downloader # Method 2: Interactive from source git clone https://github.com/gospelsounders/egw-writings-mcp.git cd egw-writings-mcp make install-cli # Choose what to install # Method 3: Specific package make install-cli PACKAGE=downloader # Method 4: All packages make install-cli PACKAGE=all ``` ## šŸŽÆ Usage Examples ### Development Workflow ```bash # See all commands (organized) make help # Setup development environment make setup-dev # Install specific CLI tools make install-cli PACKAGE=downloader make install-cli PACKAGE=api-server ``` ### End User Workflow ```bash # Clone and install everything git clone https://github.com/gospelsounders/egw-writings-mcp.git cd egw-writings-mcp make install-cli # Interactive selection # Choose option 4 (all) # Now use globally installed commands egw-downloader quick-start --zip egw-api-server --help egw-local-server --help ``` ### CI/CD Workflow ```bash # Automated installation in scripts make install-cli PACKAGE=all # All CLI tools now available globally ``` ## šŸ“Š Command Organization ### Before (Duplicated) ``` Setup & Installation: egw-help # DUPLICATE egw-languages # DUPLICATE egw-books # DUPLICATE ... install-cli # Single package only EGW Commands: egw-help # DUPLICATE egw-languages # DUPLICATE egw-books # DUPLICATE ... ``` ### After (Clean Organization) ``` Setup & Installation: help # Project help build # Build packages install-cli # Interactive/parametrized installation setup-dev # Development setup EGW Commands: egw-help # EGW downloader help egw-languages # Download languages egw-books # Download books egw-download-zips # Download ZIP files egw-parse-zips # Parse ZIP files Server Commands: server-api # Start API server server-local # Start local server server-website # Start website Database Commands: db-clean # Clean database db-backup # Backup database Workflow Commands: workflow-sample # Sample workflow workflow-zip-all # Complete ZIP workflow ``` ## šŸš€ Benefits Achieved 1. **šŸŽÆ No Duplicates**: Clean, organized help with proper categorization 2. **šŸ”§ Flexible Installation**: Choose exactly what CLI tools to install 3. **šŸ‘„ Multi-User Support**: Different users can install different combinations 4. **šŸ“‹ Interactive UX**: User-friendly installation process 5. **⚔ Automation Ready**: Supports both interactive and automated installation 6. **šŸ“š Complete Documentation**: Clear instructions for all scenarios 7. **šŸ›”ļø Error Handling**: Proper guidance for permission issues ## šŸŽ‰ Final Result The Makefile now provides a comprehensive, user-friendly interface for: - āœ… Building and setting up the project - āœ… Installing any combination of CLI tools globally - āœ… Managing development workflows - āœ… Running servers and database operations - āœ… Complete ZIP download workflows All with clear, organized help and no command duplication!

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/pythondev-pro/egw_writings_mcp_server'

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