# π NetBox MCP Server v1.0
A robust and well-engineered Python MCP (Model Context Protocol) server for NetBox infrastructure access, designed for teaching newer programmers and production use.
## π― Features
### Core Functionality
- **NetBox API Integration** - Full access to devices, VMs, IP addresses, and VLANs
- **HashiCorp Vault Integration** - JIT token minting with AppRole authentication
- **PostgreSQL State Confidence** - Query module referencing muse certainty schema
- **MCP Tools** - Comprehensive toolset for infrastructure management
### Advanced Capabilities
- **Tiny LLM Testing** - Simulated LLM for CI/CD environments
- **Structured JSON Protocol** - Clear communication between components
- **Performance Optimizations** - Connection pooling, caching, retry strategies
- **LLM Optimization** - Token estimation, response formatting, streaming
## π§ͺ Test Suite
**100% Test Success Rate** - 129 passed, 1 skipped, 0 failed
### Test Coverage
- β
Core MCP Server functionality
- β
Tiny LLM implementation
- β
Structured JSON protocol
- β
End-to-end workflows
- β
Performance optimizations
- β
Tool functionality (hosts, VMs, IPs, VLANs)
- β
Error handling and edge cases
## π Quick Start
### Prerequisites
- Python 3.12+
- NetBox instance
- HashiCorp Vault
- PostgreSQL database
### Installation
```bash
# Clone the repository
git clone https://github.com/fringemonkey/mcp-dc.git
cd mcp-dc
# Install dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt
# Run tests
python -m pytest tests/ -v
```
### Configuration
Set up environment variables:
```bash
export NETBOX_URL="http://your-netbox-instance"
export VAULT_ADDR="http://your-vault-instance"
export VAULT_TOKEN="your-vault-token"
export POSTGRES_HOST="localhost"
export POSTGRES_DB="mcp_state"
export POSTGRES_USER="mcp_user"
export POSTGRES_PASSWORD="mcp_password"
```
## π οΈ Development
### Running Tests
```bash
# Run all tests
python -m pytest tests/ -v
# Run specific test categories
python -m pytest tests/ -m unit
python -m pytest tests/ -m integration
python -m pytest tests/ -m performance
# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html
```
### Code Quality
```bash
# Format code
black src/ tests/
isort src/ tests/
# Lint code
flake8 src/ tests/
mypy src/
# Security check
bandit -r src/
safety check
```
## π Project Structure
```
mcp-dc/
βββ src/ # Source code
β βββ server.py # Main MCP server
β βββ netbox_client.py # NetBox API client
β βββ vault_client.py # Vault authentication
β βββ state_confidence.py # PostgreSQL client
β βββ tiny_llm.py # Tiny LLM for testing
β βββ structured_protocol.py # JSON protocol
β βββ llm_optimizer.py # LLM optimizations
β βββ tools/ # MCP tools
β βββ hosts.py
β βββ virtual_machines.py
β βββ ip_addresses.py
β βββ vlans.py
βββ tests/ # Test suite
β βββ test_core_functionality.py
β βββ test_simple_tools.py
β βββ test_tiny_llm.py
β βββ test_structured_protocol.py
β βββ test_llm_optimization.py
β βββ test_simple_performance.py
βββ examples/ # Example scripts
βββ scripts/ # Utility scripts
βββ .github/workflows/ # CI/CD pipelines
βββ .devcontainer/ # Development container
```
## π§ MCP Tools
### Host Management
- `list_hosts` - List all devices
- `get_host` - Get specific device details
- `search_hosts` - Search devices by criteria
### Virtual Machine Management
- `list_vms` - List all VMs
- `get_vm` - Get specific VM details
- `list_vm_interfaces` - List VM interfaces
### IP Address Management
- `list_ips` - List all IP addresses
- `get_ip` - Get specific IP details
- `search_ips` - Search IP addresses
### VLAN Management
- `list_vlans` - List all VLANs
- `get_vlan` - Get specific VLAN details
- `list_vlan_ips` - List IPs in VLAN
## π Educational Value
This project is designed to teach:
- **MCP Protocol** - Model Context Protocol implementation
- **API Integration** - NetBox, Vault, PostgreSQL integration
- **Testing Strategies** - Unit, integration, performance testing
- **Code Quality** - Linting, formatting, security practices
- **CI/CD** - GitHub Actions, automated testing
- **Documentation** - Comprehensive README and code comments
## π Performance
- **Connection Pooling** - Efficient HTTP connections
- **Caching** - TTL-based response caching
- **Retry Strategies** - Exponential backoff for failures
- **Memory Efficiency** - Optimized data structures
- **Concurrent Operations** - Async/await patterns
## π Security
- **Vault Integration** - Secure token management
- **Input Validation** - Parameter sanitization
- **Error Handling** - Secure error responses
- **Security Scanning** - Bandit and Safety checks
## π Monitoring
- **Metrics Collection** - Performance and usage metrics
- **Logging** - Structured logging with levels
- **Health Checks** - Service availability monitoring
- **State Confidence** - Data reliability scoring
## π€ Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Ensure all tests pass
6. Submit a pull request
## π License
This project is licensed under the MIT License - see the LICENSE file for details.
## π Acknowledgments
- NetBox team for the excellent infrastructure management platform
- HashiCorp for Vault security solutions
- PostgreSQL community for the robust database
- MCP protocol contributors
---
**Ready for production deployment!** π
*Version 1.0 - Zero test failures, comprehensive functionality, production-ready*