UNPKG

hana-cli

Version:
593 lines (426 loc) • 13.9 kB
# Implementation Phases Technical details of the MCP Server implementation across three phases. ## Overview The MCP Server was developed in three phases, each adding significant capabilities and improvements to the AI agent experience. | Phase | Focus | Major Features | Tools Added | | ----- | ----- | -------------- | ----------- | | **Phase 1** | Core Features | Discovery basics, examples, presets, error handling | 3 tools | | **Phase 2** | Guidance & Navigation | Recommendations, quick start, context-aware suggestions | 3 tools | | **Phase 3** | Advanced Capabilities | Workflows, interpretation, search, templates | 6 tools | ## Phase 1: Core Features (Discovery & Examples) ### Phase 1 Goals - Provide parameter guidance and discovery - Include real-world usage examples - Improve error messages with suggestions - Make commands self-documenting ### Phase 1 Features Implemented #### 1. Command Examples (`hana_examples`) - 40+ real-world usage scenarios - Complete parameter sets - Expected outputs - Tips and best practices **Files Created:** - `src/examples-presets.ts` (1000+ lines) **Scope:** - import (5 scenarios) - export (3 scenarios) - dataProfile (2 scenarios) - duplicateDetection (2 scenarios) - tables (2 scenarios) - compareSchema (2 scenarios) - And 10+ more commands #### 2. Parameter Presets (`hana_parameter_presets`) - Pre-configured parameter templates - Named presets for common use cases - Descriptions and use case guidance - Ready-to-use parameter sets **Presets include:** - quick-import, safe-import, large-file, streaming-mode, bulk-insert - quick-export, safe-export, format-specific - quality-check, pattern-analysis, threshold-based - And more... #### 3. Enhanced Tool Descriptions - Category and tags inline - Common use cases listed - Related commands for discovery - Links to examples and presets **Format:** ```bash hana_import: Import data from CSV/Excel/TSV file to database table. [Category: data-operations] [Tags: import, data, csv, excel, etl] **Common Use Cases:** - Data migration from external systems - Bulk data loading - ETL pipeline integration **Related Commands:** hana_export, hana_tableCopy, hana_dataValidator šŸ’” Tips: Use hana_examples for usage examples šŸ“‹ Tips: Use hana_parameter_presets for parameter templates ``` #### 4. Intelligent Error Messages - Error pattern detection - Actionable suggestions - Ready-to-run commands for recovery - Categorized causes **Error Categories:** - TABLE_NOT_FOUND - SCHEMA_NOT_FOUND - FILE_NOT_FOUND - CONNECTION_ERROR - AUTHENTICATION_ERROR - TIMEOUT - PARAMETER_ERROR - UNKNOWN_ERROR **Error Output Format:** ```bash āŒ Command Failed Error: Table not found: MY_TABLE Possible Causes: 1. Table name is case-sensitive - check capitalization 2. Table may be in different schema 3. Table may not exist yet 4. User may not have permission to see the table šŸ’” Suggestions: 1. List tables in the schema to verify the table name → Try: hana_tables with parameters: { schema: "<schema-name>" } ``` ### Phase 1 Files Modified 1. **src/index.ts** - Added tool handlers for examples and presets 2. **src/executor.ts** - Enhanced error analysis and formatting 3. **README.md** - Added features documentation ### Phase 1 Metrics - āœ… 40+ examples added - āœ… 30+ parameter presets - āœ… 8 error categories covered - āœ… 3 new MCP tools - āœ… All 150+ commands documented ## Phase 2: Discovery & Guidance ### Phase 2 Goals - Help agents find commands by intent - Provide next-step suggestions - Guide users through tasks - Enable self-service troubleshooting ### Phase 2 Features Implemented #### 1. Intent-Based Recommendations (`hana_recommend`) Natural language intent matching with confidence scoring. **Files Created:** - `src/recommendation.ts` (280 lines) **Features:** - Pattern matching (100+ intent patterns) - Confidence scoring (high/medium/low) - Example parameters for recommendations - Reasoning for matches **Scoring Algorithm:** - Direct command name match: 50 points - Intent pattern match: 25 points - Tag match: 15 points - Description match: 10 points - Use case match: 5 points **Example Recommendations:** ```json { "intent": "find duplicate rows", "recommendations": [ { "command": "duplicateDetection", "confidence": "high", "reasoning": "Designed specifically for duplicate detection" }, { "command": "dataProfile", "confidence": "medium", "reasoning": "Can identify duplicate patterns" } ] } ``` #### 2. Quick Start Guide (`hana_quickstart`) Beginner-friendly 6-step introduction. **6 Essential Commands:** 1. status - Check connection 2. version - View database version 3. schemas - List available schemas 4. tables - List tables in schema 5. inspectTable - View table structure 6. healthCheck - System health verification **Features:** - Step-by-step progression - Purpose explanation for each - Tips for success - Parameter templates included #### 3. Context-Aware Next Steps Automatic suggestions after command execution. **Files Modified:** - `src/next-steps.ts` (380 lines) **Features:** - Command-specific next steps - Output-based analysis - Reasoning for suggestions - Ready-to-run parameters **Examples:** - After `status` → suggest schemas, healthCheck, version - After `tables` → suggest inspectTable, dataProfile - After `import` → suggest dataValidator, dataProfile #### 4. Troubleshooting Guides (`hana_troubleshoot`) Command-specific troubleshooting for common issues. **Coverage:** - import (5 common issues) - export (3 common issues) - dataProfile (2 common issues) - tables (2 common issues) - status (2 common issues) - healthCheck (2 common issues) **Each guide includes:** - Issue description - Root causes - Step-by-step solutions - Prevention tips #### 5. Output-Based Tips Context-sensitive suggestions based on results. **Rules:** - Import with errors → suggest dryRun, skipWithErrors - Memory analysis with high usage → suggest optimization - Many tables → suggest filtering - Health warnings → suggest investigation ### Phase 2 Files Modified 1. **src/index.ts** - Added Phase 2 tool handlers 2. **src/executor.ts** - Integrated next-steps into results 3. **README.md** - Added Phase 2 documentation ### Phase 2 Metrics - āœ… 100+ intent patterns - āœ… 4 discovery tools - āœ… 20+ next-step mappings - āœ… 12+ troubleshooting guides - āœ… Output-aware recommendations ## Phase 3: Advanced Features & Automation ### Phase 3 Goals - Automate multi-step workflows - Provide AI-friendly result analysis - Enable comprehensive search - Create guided conversation templates ### Phase 3 Features Implemented #### 1. Workflow Template System (`hana_workflows`, `hana_workflow_by_id`, `hana_search_workflows`) Multi-step workflow templates that the AI agent orchestrates. **Files Created:** - Workflow definitions in `src/tools/content-tools.ts` **Features:** - Browse all available workflows - Get detailed steps for a specific workflow - Search by tag or purpose - Parameter templates with `<placeholder>` substitution - LLM-orchestrated execution (no simulated executor) **Built-in Workflows (20+):** - data-quality-check (5 steps) - schema-migration (6 steps) - performance-baseline (5 steps) - safe-import (5 steps) - data-cleansing (7 steps) - And 15+ more... **Workflow Template Structure:** ```json { "steps": [ { "command": "hana_command", "parameters": { "param1": "<placeholder>", "param2": "value" } } ] } ``` The AI agent reads the workflow template and executes each step individually, making decisions between steps based on the results. #### 2. Result Interpretation Engine (`hana_interpret_result`) AI-friendly analysis of command results. **Files Created:** - `src/result-interpretation.ts` (380 lines) **Features:** - Summary generation - Insight extraction - Recommendation ranking - Concern identification - Metric extraction **Command Coverage:** - dataProfile → quality issues, nulls, duplicates - memoryAnalysis → usage concentration, bottlenecks - healthCheck → issues, warnings, recommendations - expensiveStatements → performance problems - And more... **Output Structure:** ```json { "summary": "...", "insights": ["...", "..."], "recommendations": [ { "priority": "high", "action": "...", "impact": "...", "nextCommand": "..." } ], "concerns": [...], "metrics": {...} } ``` #### 3. Consolidated Search System (`hana_search`) Unified search across all resources, replacing the previous separate `hana_smart_search` and `hana_search_docs` tools. **Files Created:** - `src/tools/search-tools.ts` **Features:** - Multi-scope searching (docs, commands, workflows, examples, presets, or all) - Relevance ranking - Result type indicators - Context information - Search suggestions **Scoring Algorithm:** - Exact match: 100 points - Contains phrase: 50 points - Contains all words: 30 points - Per word match: 10 points - Start of text bonus: 20 points **Search Scope:** - 150+ commands - 20+ workflows - 40+ examples - 30+ presets #### 4. Conversation Templates (`hana_conversation_templates`, `hana_get_template`) Guided workflows for common tasks. **Files Created:** - `src/conversation-templates.ts` (450 lines) **5 Main Templates:** 1. **data-exploration** - Understand database structure 2. **troubleshooting** - Diagnose problems 3. **data-migration** - Move data safely 4. **performance-tuning** - Optimize database 5. **security-audit** - Review access control **Template Structure:** ```json { "phases": [ { "phase": 1, "title": "...", "steps": [ { "order": 1, "command": "hana_...", "purpose": "...", "expectedOutcome": "..." } ] } ], "tips": [...] } ``` #### 5. Documentation Search Integration Access to 279 documentation pages via consolidated search and MCP resources. **Files Created:** - `src/tools/search-tools.ts` (search handler) - `docs-index.json` (pre-built index) **Tools:** - `hana_search` (scope: `docs`) - Full-text search - `hana_get_doc` - Retrieve full content **Resources:** - `hana://docs/categories` - Browse categories - `hana://docs/statistics` - Index statistics **Features:** - 279 indexed pages - 9 categories - 2,285 keywords - Fast searching - Relevance ranking ### Phase 3 Files Modified 1. **src/index.ts** (+250 lines) - Phase 3 tool handlers 2. **package.json** - Added docs index build script 3. **README.md** - Phase 3 documentation 4. **scripts/build-docs-index.js** (NEW) - Index builder ### Phase 3 Build Changes **Added build scripts:** ```bash npm run build:docs-index # Build documentation index ``` ## Summary of Changes ### Total Impact | Metric | Phase 1 | Phase 2 | Phase 3 | Total | | ------ | ------- | ------- | ------- | ----- | | **New Files** | 1 | 2 | 6 | 9 | | **MCP Tools Added** | 3 | 3 | 6 | 12 | | **Total Commands** | 150+ | 150+ | 150+ | 150+ | | **Lines of Code** | 1,000+ | 660+ | 1,400+ | 3,060+ | | **Features** | 4 | 4 | 5 | 13 | ### Code Organization ```bash src/ ā”œā”€ā”€ index.ts (Main server, 1000+ lines) ā”œā”€ā”€ executor.ts (Command execution, 400 lines) ā”œā”€ā”€ examples-presets.ts (Phase 1: Examples & Presets) ā”œā”€ā”€ recommendation.ts (Phase 2: Recommendations) ā”œā”€ā”€ next-steps.ts (Phase 2: Guidance) ā”œā”€ā”€ workflow-execution.ts (Phase 3: Workflows) ā”œā”€ā”€ result-interpretation.ts (Phase 3: Interpretation) ā”œā”€ā”€ smart-search.ts (Phase 3: Search) ā”œā”€ā”€ conversation-templates.ts (Phase 3: Templates) └── docs-search.ts (Phase 3: Doc Search) ``` ### Build Process ```bash TypeScript Source → npm run build → JavaScript Output ↓ Type Checking & Compilation ↓ Error Checking ↓ docs-index.json ↓ build/ directory ready ``` ## Performance Characteristics ### Load Time - MCP Server startup: <1 second - Documentation index load: <500ms - Command recommendations: <100ms - Search ranking: <50ms per query ### Memory Usage - Base server: ~50MB - With 279 docs indexed: ~75MB - Per workflow execution: +5-10MB - Result interpretation: <1MB ### Scalability - Supports 150+ commands easily - Can handle 500+ commands if needed - Documentation index scales to 1000+ pages - Workflow system supports unlimited sequences ## Testing and Quality ### Test Coverage - Phase 1: Core functionality tested (examples, presets, errors) - Phase 2: Discovery system tested (recommendations, guidance) - Phase 3: Advanced features tested (workflows, interpretation, search) ### Build Validation āœ… All TypeScript compiles without errors āœ… All files generated in build/ āœ… No runtime errors on startup āœ… All tools register correctly ## Future Enhancements ### Potential Phase 4 - Machine learning for better recommendations - User behavior learning - Custom workflow recording - Performance analytics - Integration with external systems ### Optimization Opportunities - Caching frequently used results - Incremental documentation indexing - Compression of workflow definitions - Parallel workflow execution ## References - **Code Examples:** `mcp-server/src/` directory - **Configuration:** `mcp-server/package.json` - **Build Output:** `mcp-server/build/` directory - **Documentation Index:** `mcp-server/docs-index.json` ## Next Steps - **[Features Overview](./features.md)** - Comprehensive feature list - **[Discovery Tools](./discovery-tools.md)** - How to find commands - **[Advanced Features](./advanced-features.md)** - Workflows and interpretation - **[Setup Guide](./setup-and-configuration.md)** - Installation instructions