Connects to PostgreSQL databases for state confidence queries and data reliability scoring using a muse certainty schema
Integrates with HashiCorp Vault for secure token management using AppRole authentication and just-in-time token minting
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NetBox MCP Serverlist all devices in the datacenter"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π 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
# 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/ -vConfiguration
Set up environment variables:
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
# 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=htmlCode Quality
# 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 devicesget_host- Get specific device detailssearch_hosts- Search devices by criteria
Virtual Machine Management
list_vms- List all VMsget_vm- Get specific VM detailslist_vm_interfaces- List VM interfaces
IP Address Management
list_ips- List all IP addressesget_ip- Get specific IP detailssearch_ips- Search IP addresses
VLAN Management
list_vlans- List all VLANsget_vlan- Get specific VLAN detailslist_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
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Ensure all tests pass
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