Skip to main content
Glama

Adversary MCP Server

by brettbergin
Makefile7.85 kB
.PHONY: help install test test-fast test-cov test-html lint format clean check-all build upload install-pre-commit pre-commit pre-commit-update uninstall-pre-commit .DEFAULT_GOAL := help help: ## Show this help message @echo "Available targets:" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-15s %s\n", $$1, $$2}' install: ## Install package in development mode with all dependencies @echo "Installing adversary-mcp-server with all dependencies..." uv pip install --upgrade pip uv pip install --upgrade -e ".[dev]" @echo "Verifying installation..." @make check-deps @echo "Installation complete!" sync: ## Sync dependencies using uv uv pip sync install-deps: ## Install only the runtime dependencies (no dev) uv pip install --upgrade -e . reinstall: ## Uninstall and reinstall the package with all dependencies uv pip uninstall adversary-mcp-server || true uv pip install --upgrade -e ".[dev]" @make check-deps check-deps: ## Check if all dependencies are installed @echo "Checking dependencies..." @python -c "import aiohttp; print('✓ aiohttp installed')" 2>/dev/null || echo "✗ aiohttp missing - run 'make install' to fix" @python -c "import questionary; print('✓ questionary installed')" 2>/dev/null || echo "✗ questionary missing - run 'make install' to fix" @python -c "import mcp; print('✓ mcp installed')" 2>/dev/null || echo "✗ mcp missing - run 'make install' to fix" @python -c "import semgrep; print('✓ semgrep installed')" 2>/dev/null || echo "✗ semgrep missing - run 'make install' to fix" @python -c "import openai; print('✓ openai installed')" 2>/dev/null || echo "✗ openai missing - run 'make install' to fix" @python -c "import anthropic; print('✓ anthropic installed')" 2>/dev/null || echo "✗ anthropic missing - run 'make install' to fix" lock: ## Generate uv.lock file uv pip compile pyproject.toml -o uv.lock uv pip compile --extra dev pyproject.toml -o uv-dev.lock test: ## Run all tests with coverage and fail if coverage < 75% python -m pytest --cov=adversary_mcp_server --cov-report=term-missing --cov-fail-under=75 -v test-html: ## Run tests and generate HTML coverage report python -m pytest --cov=adversary_mcp_server --cov-report=html --cov-report=term-missing -v @echo "Coverage report available at htmlcov/index.html" test-unit: ## Run only unit tests (skip integration tests) python -m pytest -m "not integration" -v test-integration: ## Run only integration tests python -m pytest -m "integration" -v test-security: ## Run only security-related tests python -m pytest -m "security" -v benchmark: ## Run performance benchmarks uv run pytest -m "benchmark" --benchmark-verbose benchmark-save: ## Run benchmarks and save results to .benchmarks/ @mkdir -p .benchmarks uv run pytest -m "benchmark" --benchmark-json=.benchmarks/benchmark_$(shell date +%Y%m%d_%H%M%S).json --benchmark-verbose benchmark-compare: ## Run benchmarks and compare with previous results @mkdir -p .benchmarks uv run pytest -m "benchmark" --benchmark-compare --benchmark-compare-fail=mean:5% --benchmark-json=.benchmarks/latest.json benchmark-only: ## Run only the benchmark tests without any other tests uv run pytest tests/test_benchmarks.py -v --benchmark-verbose benchmark-skip: ## Run all tests except benchmarks (this is the default behavior) uv run pytest -m "not benchmark" -v test-validation: ## Run validation regression tests to prevent validation bugs @echo "🔍 Running validation regression tests..." uv run pytest tests/scanner/test_validation_regression.py tests/integration/test_validation_symmetry.py -v --tb=short -m "not slow" @echo "✅ Validation regression tests completed!" test-validation-critical: ## Run critical validation tests (fast subset) @echo "🚨 Running critical validation tests..." uv run pytest tests/scanner/test_validation_regression.py -v --tb=short -k "test_directory_scan_validation_enabled_with_threats or test_file_scan_validation_enabled_with_threats" @echo "✅ Critical validation tests completed!" test-validation-full: ## Run full validation test suite including slow integration tests @echo "🔍 Running full validation test suite..." uv run pytest tests/scanner/test_validation_regression.py tests/integration/test_validation_symmetry.py tests/scanner/test_llm_validator.py -v --tb=short @echo "✅ Full validation test suite completed!" lint: ## Run all linting tools python -m ruff check src/ tests/ python -m mypy src/ python -m black --check src/ tests/ format: ## Format code with black and isort python -m black src/ tests/ python -m isort src/ tests/ format-check: ## Check if code formatting is correct python -m black --check src/ tests/ python -m isort --check-only src/ tests/ mypy: ## Run mypy type checking python -m mypy src/ ruff: ## Run ruff linting python -m ruff check src/ tests/ ruff-fix: ## Run ruff with auto-fix python -m ruff check --fix src/ tests/ security-scan: ## Run security scans on the codebase .venv/bin/semgrep scan --config=auto src/ clean: ## Clean up build artifacts and cache files rm -rf build/ rm -rf dist/ rm -rf *.egg-info/ rm -rf htmlcov/ rm -rf reports/ rm -rf .coverage rm -rf .pytest_cache/ rm -rf .mypy_cache/ rm -rf .ruff_cache/ find . -type d -name "__pycache__" -exec rm -rf {} + find . -type f -name "*.pyc" -delete build: ## Build package for distribution uv build check-all: lint test security-scan ## Run all checks (linting, tests, and security scans) dev-setup: install install-pre-commit ## Set up development environment @echo "Development environment setup complete!" @echo "Run 'make test' to run tests" @echo "Run 'make lint' to run linting" @echo "Run 'make security-scan' to run security scans" @echo "Run 'make help' to see all available commands" dev-setup-uv: ## Set up development environment using uv (faster) @echo "Setting up development environment with uv..." uv venv || true . .venv/bin/activate && uv pip install --upgrade pip . .venv/bin/activate && uv pip install --upgrade -e ".[dev]" . .venv/bin/activate && make check-deps @echo "Development environment setup complete with uv!" @echo "Activate the environment with: source .venv/bin/activate" @echo "Run 'make test' to run tests" @echo "Run 'make lint' to run linting" @echo "Run 'make help' to see all available commands" uv-init: ## Initialize uv virtual environment uv venv @echo "Virtual environment created. Activate with: source .venv/bin/activate" uv-upgrade: ## Upgrade all dependencies to latest versions uv pip install --upgrade pip uv pip install --upgrade -e ".[dev]" @make check-deps # CI targets ci-test: ## Run tests in CI environment python -m pytest --cov=adversary_mcp_server --cov-report=xml --cov-report=term-missing --cov-fail-under=75 -v ci-lint: ## Run linting in CI environment python -m ruff check src/ tests/ python -m mypy src/ python -m black --check src/ tests/ python -m isort --check-only src/ tests/ ci-security: ## Run security scans in CI environment python -m semgrep scan --config=auto src/ --json --output=semgrep-report.json deploy: build ## Upload package to PyPI uv run twine upload dist/* demo: ## Run a demo of the adversary MCP server python -m adversary_mcp_server.cli demo scan-example: ## Run security scan on example files python -m adversary_mcp_server.cli scan examples/ # Pre-commit hooks install-pre-commit: ## Install pre-commit hooks pre-commit install @echo "Pre-commit hooks installed. They will run automatically on commit." pre-commit: ## Run pre-commit hooks on all files pre-commit run --all-files pre-commit-update: ## Update pre-commit hook versions pre-commit autoupdate uninstall-pre-commit: ## Uninstall pre-commit hooks pre-commit uninstall @echo "Pre-commit hooks uninstalled."

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/brettbergin/adversary-mcp-server'

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