All notable changes to MCPLint will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Advanced Prompt Engineering (
src/ai/prompt_templates.rs)VulnCategoryenum for 8 vulnerability categories (Injection, Authentication, Cryptographic, etc.)FewShotExamplestruct with category-specific examplesAdvancedPromptBuilderwith chain-of-thought reasoning- Confidence scoring in AI explanations
- Category-specific system prompts for better accuracy
-
Neo4j Knowledge Graph Integration (optional
--features neo4j)SecurityKnowledgeGraphfor storing and querying vulnerability findings- Vector similarity search using cosine distance
VoyageEmbedderfor code-optimized embeddings (voyage-code-2, 1536 dimensions)- CWE/CVE knowledge retrieval
- Cross-server vulnerability pattern detection
-
Optional Feature Flags
neo4j- Neo4j graph database for vulnerability knowledge baseredis- Redis distributed cache backend
-
Async Performance Optimization
- Parallel security detector execution in scanner engine using
futures::stream::buffer_unordered - Parallel tool/resource/prompt validation using Rayon parallel iterators
- Parallel JSON Schema validation for large tool sets
- Design document at
docs/async-optimization-plan.md
- Parallel security detector execution in scanner engine using
-
Streaming Scan Results (
src/scanner/streaming.rs)FindingStreamfor memory-efficient consumption of scan findingsFindingProducerfor streaming findings from scanner to consumersScanEngine::scan_streaming()method for streaming scan API- Backpressure support via bounded tokio channels
- Summary accumulation during streaming (no need to hold all findings)
- ~99% memory reduction for large scans (10K findings: 50MB → 50KB)
- Backward compatible:
collect_all()for consumers that need all findings - 19 new unit tests for streaming functionality
- Design document at
docs/memory-optimization-plan.md
-
Enhanced Error Context
- All file I/O operations now include contextual error messages using
anyhow::Context - Error messages now specify which file/directory failed (e.g., "Failed to read config from /path/to/file")
- Improved debugging experience with clear operation context in error chain
- Applied to:
init.rs,filesystem.rs,corpus.rs,fingerprint.rs,completions.rs,main.rs - Design document at
docs/error-context-plan.md
- All file I/O operations now include contextual error messages using
- AI providers now support advanced prompts with
use_advanced_promptsflag - Ollama provider defaults to simplified prompts for better local model performance
- Scanner
run_advanced_security_checksnow async with parallel detector execution - Validator
run_protocol_rulesandrun_schema_rulesuse Rayon parallel iterators
- Clippy lints for CI compatibility (needless borrows, single char push, duplicated cfg attributes)
- Fuzzer session test overflow on Windows
- ExplainEngine integration test flakiness with retry logic
- Additional clippy lints (field_reassign_with_default, useless_vec, default_constructed_unit_structs)
- Added 112+ new tests across modules
- Total test count: 3,293 passing tests (19 new streaming tests)
- Neo4j integration tests (require live connection)
- HTML Output Format
- Rich HTML reports with severity distribution charts
- Finding cards with detailed information
- Remediation guidance integration
- Responsive design for all devices
- Available via
--format htmlon scan command - Integrated into interactive scan wizard
-
Interactive Mode
- Scan wizard with server selection, profile choice, and category filtering
- Fuzz wizard with profile, duration, workers, and corpus configuration
- Init wizard for guided configuration file creation
- Explain wizard with AI provider, audience level, and severity filtering
- Automatic TTY and CI environment detection
- FuzzySelect for intuitive server selection
-
Init Command Enhancements
- GitHub Actions workflow generation (.github/workflows/mcplint.yml)
- Automatic .gitignore entry for .mcplint-cache/
- Wizard-driven configuration with sensible defaults
- Server argument now optional for scan, fuzz, and explain commands (wizard activates)
- OutputFormat and ScanProfile types consolidated in cli module
- Improved module organization for library consumers
- Added interactive_tests.rs with 30 integration tests
- Test coverage for wizard result structs and output formats
- AI provider and audience level variant tests
- CI environment detection tests
-
Phase 1: Smart Context Detection
- Automatic detection of TTY, CI, and plain output modes
- NO_COLOR environment variable support
- Unicode/ASCII fallback based on terminal capabilities
-
Phase 2: Progress Indicators
- Real-time progress bars for scan operations
- Connection spinners with phase tracking
- Multi-server progress tracking
-
Phase 3: Output Formatting
- Unified Printer API for consistent CLI output
- Security-themed color system for severity levels
- Structured output with separators, headers, key-value pairs
-
Phase 4: Enhanced Error Handling
- Miette-based diagnostic errors with source context
- "Did you mean?" suggestions using Jaro-Winkler similarity
- Contextual help for common errors (connection, timeout, config)
-
Phase 5: Shell Completions
- Dynamic shell completions for bash, zsh, fish, PowerShell
- Server name completion from Claude Desktop config
- Profile and format completion with descriptions
-
Phase 6: Watch Mode & CI Integration
- Differential watch mode showing new/fixed issues
- Debounced file watching with configurable interval
- Enhanced SARIF output for GitHub Code Scanning
-
Multi-Server Scanning
- Parallel scanning of multiple MCP servers
- Configurable concurrency with semaphore control
- Combined SARIF output for CI/CD pipelines
- Aggregated statistics and severity counts
- Improved CLI user experience across all commands
- Better error messages with actionable suggestions
- Optimized startup time (<20ms)
- Startup time: ~18ms (target <100ms)
- Binary size: 8.0MB
- Test suite: 4,519 tests in ~2.2s
- Initial release
- MCP protocol validation (56 rules)
- Security scanning with 15+ detection rules
- Coverage-guided fuzzing
- AI-assisted vulnerability explanation
- Multi-backend caching (memory, filesystem, Redis)
- SARIF, JUnit, GitLab output formats
- Watch mode for development
- Doctor command for environment checks