Skip to main content
Glama

pfSense MCP Server

by gensecaihq
Makefileโ€ข5.92 kB
# pfSense MCP Server Makefile SHELL := /bin/bash .PHONY: help build run stop clean test logs shell lint format security-scan # Variables VERSION ?= 2.0.0 DOCKER_REGISTRY ?= IMAGE_NAME ?= pfsense-mcp FULL_IMAGE_NAME = $(if $(DOCKER_REGISTRY),$(DOCKER_REGISTRY)/$(IMAGE_NAME),$(IMAGE_NAME)) # Colors GREEN := \033[0;32m YELLOW := \033[1;33m RED := \033[0;31m NC := \033[0m help: ## Show this help message @echo 'Usage: make [target]' @echo '' @echo 'Targets:' @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(GREEN)%-15s$(NC) %s\n", $$1, $$2}' $(MAKEFILE_LIST) check-env: ## Check required environment variables @if [ ! -f .env ]; then \ echo "$(RED)Error: .env file not found. Copy .env.example to .env and configure it.$(NC)"; \ exit 1; \ fi @echo "$(GREEN)Environment file found$(NC)" build: check-env ## Build Docker images @echo "$(YELLOW)Building pfSense MCP Server v$(VERSION)...$(NC)" @docker-compose build \ --build-arg VERSION=$(VERSION) \ --build-arg BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') \ --build-arg VCS_REF=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown") @echo "$(GREEN)Build complete$(NC)" run: check-env ## Run the application stack @echo "$(YELLOW)Starting pfSense MCP Server...$(NC)" @docker-compose up -d @echo "$(GREEN)Stack started. Waiting for services...$(NC)" @sleep 5 @make health-check run-dev: check-env ## Run in development mode @echo "$(YELLOW)Starting in development mode...$(NC)" @PRODUCTION=false docker-compose up stop: ## Stop the application stack @echo "$(YELLOW)Stopping services...$(NC)" @docker-compose down @echo "$(GREEN)Services stopped$(NC)" restart: stop run ## Restart the application stack logs: ## View application logs @docker-compose logs -f pfsense-mcp logs-all: ## View all service logs @docker-compose logs -f shell: ## Open shell in MCP container @docker-compose exec pfsense-mcp /bin/bash shell-root: ## Open root shell in MCP container @docker-compose exec -u root pfsense-mcp /bin/bash health-check: ## Check health of all services @echo "$(YELLOW)Checking service health...$(NC)" @docker-compose ps @echo "" @curl -s http://localhost:8000/health | jq . || echo "$(RED)MCP Server health check failed$(NC)" @echo "" @docker-compose exec redis redis-cli --pass changeme ping || echo "$(RED)Redis health check failed$(NC)" @echo "" @docker-compose exec postgres pg_isready -U mcp || echo "$(RED)PostgreSQL health check failed$(NC)" test: ## Run tests @echo "$(YELLOW)Running tests...$(NC)" @docker-compose exec pfsense-mcp pytest tests/ -v --cov=. --cov-report=term-missing test-integration: ## Run integration tests @echo "$(YELLOW)Running integration tests...$(NC)" @docker-compose exec pfsense-mcp pytest tests/integration/ -v lint: ## Run linting @echo "$(YELLOW)Running linters...$(NC)" @docker-compose exec pfsense-mcp ruff check . @docker-compose exec pfsense-mcp mypy . format: ## Format code @echo "$(YELLOW)Formatting code...$(NC)" @docker-compose exec pfsense-mcp black . @docker-compose exec pfsense-mcp ruff check --fix . security-scan: ## Run security scan @echo "$(YELLOW)Running security scan...$(NC)" @docker run --rm -v $(PWD):/src \ aquasec/trivy fs --severity HIGH,CRITICAL /src db-migrate: ## Run database migrations @echo "$(YELLOW)Running database migrations...$(NC)" @docker-compose exec pfsense-mcp alembic upgrade head db-rollback: ## Rollback database migration @echo "$(YELLOW)Rolling back database migration...$(NC)" @docker-compose exec pfsense-mcp alembic downgrade -1 backup: ## Backup configuration and data @echo "$(YELLOW)Creating backup...$(NC)" @mkdir -p backups @tar -czf backups/backup-$(shell date +%Y%m%d-%H%M%S).tar.gz \ config/ data/ .env @echo "$(GREEN)Backup created in backups/$(NC)" restore: ## Restore from backup (BACKUP=filename) @if [ -z "$(BACKUP)" ]; then \ echo "$(RED)Error: BACKUP variable required$(NC)"; \ exit 1; \ fi @echo "$(YELLOW)Restoring from $(BACKUP)...$(NC)" @tar -xzf backups/$(BACKUP) @echo "$(GREEN)Restore complete$(NC)" clean: ## Clean up containers and volumes @echo "$(RED)Warning: This will delete all data!$(NC)" @read -p "Are you sure? [y/N] " -n 1 -r; \ echo; \ if [[ $$REPLY =~ ^[Yy]$$ ]]; then \ docker-compose down -v; \ rm -rf data/ logs/; \ echo "$(GREEN)Cleanup complete$(NC)"; \ fi push: ## Push image to registry @if [ -z "$(DOCKER_REGISTRY)" ]; then \ echo "$(RED)Error: DOCKER_REGISTRY not set$(NC)"; \ exit 1; \ fi @echo "$(YELLOW)Pushing $(FULL_IMAGE_NAME):$(VERSION)...$(NC)" @docker tag $(IMAGE_NAME):$(VERSION) $(FULL_IMAGE_NAME):$(VERSION) @docker tag $(IMAGE_NAME):$(VERSION) $(FULL_IMAGE_NAME):latest @docker push $(FULL_IMAGE_NAME):$(VERSION) @docker push $(FULL_IMAGE_NAME):latest @echo "$(GREEN)Push complete$(NC)" deploy: build push ## Build and deploy to registry @echo "$(GREEN)Deployment complete$(NC)" metrics: ## View Prometheus metrics @open http://localhost:9091 || xdg-open http://localhost:9091 grafana: ## Open Grafana dashboard @open http://localhost:3000 || xdg-open http://localhost:3000 cli-mode: check-env ## Run in CLI mode for Claude Desktop @echo "$(YELLOW)Starting in CLI mode...$(NC)" @docker run -it --rm \ --env-file .env \ -e MCP_MODE=stdio \ $(IMAGE_NAME):$(VERSION) generate-certs: ## Generate self-signed certificates @echo "$(YELLOW)Generating self-signed certificates...$(NC)" @mkdir -p config/ssl @openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout config/ssl/key.pem \ -out config/ssl/cert.pem \ -subj "/C=US/ST=State/L=City/O=Organization/CN=pfsense-mcp.local" @echo "$(GREEN)Certificates generated in config/ssl/$(NC)" install-hooks: ## Install git hooks @echo "$(YELLOW)Installing git hooks...$(NC)" @pre-commit install @echo "$(GREEN)Git hooks installed$(NC)" version: ## Show version @echo "pfSense MCP Server v$(VERSION)"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gensecaihq/pfsense-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server