Daniel Chalef
|
42c257c3de
|
feat: Add comprehensive Neo4j integration testing to GitHub Actions
## Neo4j Service Integration
### 🗄️ Database Service Container
- Added Neo4j 5.26 service container with proper configuration
- **Health checks**: Cypher-shell connectivity validation with 30s startup period
- **Memory optimization**: 256-512MB heap, 256MB pagecache for CI environment
- **APOC plugin**: Included for enhanced graph operations
- **Ports**: 7687 (Bolt), 7474 (HTTP) exposed for testing
### 🧪 Integration Test Suite
- **Neo4j Connection Test**: Direct driver connectivity validation
- **HTTP Integration Tests**: Full MCP server testing via HTTP endpoint
- **MCP SDK Integration Tests**: Official MCP Python SDK validation
- **Server Startup Test**: End-to-end server initialization with database
### ⚙️ Test Environment Configuration
- **Environment Variables**: Proper Neo4j credentials and OpenAI test keys
- **Timeouts**: Robust 120s timeout for integration tests, 30s for startup
- **Wait Conditions**: Smart Neo4j readiness detection with retry logic
- **Error Handling**: Graceful failure reporting for timeout/connection issues
### 🔧 Test Infrastructure Improvements
- **Updated Integration Tests**: Fixed server command from `graphiti_mcp_server.py` → `main.py`
- **Dependency Management**: Added neo4j Python driver for connection testing
- **Multi-Stage Validation**: Connection → Integration → Server startup progression
- **Comprehensive Coverage**: Unit + Integration + End-to-end testing
### 📊 Testing Workflow Enhancements
```yaml
services:
neo4j:
image: neo4j:5.26
env:
NEO4J_AUTH: neo4j/testpassword
options: --health-cmd "cypher-shell ..."
```
### 🎯 Benefits
- **Complete Testing**: Database integration validation in CI
- **Real Environment**: Actual Neo4j instance for realistic testing
- **Fail-Fast**: Early detection of database connectivity issues
- **Production Parity**: CI environment matches deployment requirements
- **Integration Confidence**: Full MCP server stack validation
The workflow now provides comprehensive testing from syntax validation through full database integration, ensuring the MCP server works correctly with Neo4j in production-like conditions.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-30 08:50:48 -07:00 |
|
Daniel Chalef
|
3c25268afc
|
feat: Major MCP server refactor with improved structure and CI/CD
- Reorganized MCP server into clean, scalable directory structure:
- `src/config/` - Configuration modules (schema, managers, provider configs)
- `src/services/` - Services (queue, factories)
- `src/models/` - Data models (entities, responses)
- `src/utils/` - Utilities (formatting, helpers)
- `tests/` - All test files
- `config/` - Configuration files (YAML, examples)
- `docker/` - Docker setup files
- `docs/` - Documentation
- Added `main.py` wrapper for seamless transition
- Maintains existing command-line interface
- All deployment scripts continue to work unchanged
- **Queue Service Interface Fix**: Fixed missing `add_episode()` and `initialize()` methods
- Server calls at `graphiti_mcp_server.py:276` and `:755` now work correctly
- Eliminates runtime crashes on startup and episode processing
- Updated imports throughout restructured codebase
- Fixed Python module name conflicts (renamed `types/` to `models/`)
- **MCP Server Tests Action** (`.github/workflows/mcp-server-tests.yml`)
- Runs on PRs targeting main with `mcp_server/**` changes
- Configuration validation, syntax checking, unit tests
- Import structure validation, dependency verification
- Main.py wrapper functionality testing
- **MCP Server Lint Action** (`.github/workflows/mcp-server-lint.yml`)
- Code formatting with ruff (100 char line length, single quotes)
- Comprehensive linting with GitHub-formatted output
- Type checking with pyright (baseline approach for existing errors)
- Import sorting validation
- Added ruff and pyright configuration to `mcp_server/pyproject.toml`
- Proper tool configuration for the new structure
- Enhanced development dependencies with formatting/linting tools
- All existing tests moved and updated for new structure
- Import paths updated throughout test suite
- Validation scripts enhanced for restructured codebase
- **Improved Maintainability**: Clear separation of concerns
- **Better Scalability**: Organized structure supports growth
- **Enhanced Developer Experience**: Proper linting, formatting, type checking
- **Automated Quality Gates**: CI/CD ensures code quality on every PR
- **Zero Breaking Changes**: Maintains full backwards compatibility
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-30 08:50:48 -07:00 |
|