Commit graph

2 commits

Author SHA1 Message Date
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
Renamed from mcp_server/test_mcp_integration.py (Browse further)