Skip to main content
Glama

Bruno MCP Server

by jcr82
ROADMAP.mdβ€’15.6 kB
# πŸ—ΊοΈ Bruno MCP Server - Feature Roadmap This document outlines the complete feature roadmap for the Bruno MCP Server, organized by implementation phases. --- ## **βœ… PHASE 1 - MVP (COMPLETED)** ### Status: Complete All MVP features have been implemented and tested. - βœ… Basic MCP server setup - βœ… Run individual requests (`bruno_run_request`) - βœ… Run collections (`bruno_run_collection`) - βœ… List requests (`bruno_list_requests`) - βœ… Environment support (dev, staging, production, etc.) - βœ… Basic error handling with structured error messages - βœ… Response data with headers and body - βœ… Test assertion results display --- ## **πŸ“‹ PHASE 2 - Core Features** βœ… **COMPLETE** ### Status: 10/10 Complete (100%) All Phase 2 core features have been implemented and tested. ### Priority: High These features add essential functionality for production use. ### **Report Generation (5 items)** βœ… COMPLETED 1. [x] Add `bruno_generate_report` tool with JSON format support 2. [x] Add JUnit XML report generation for CI/CD integration 3. [x] Add HTML report generation for human-readable results 4. [x] Implement custom output path configuration for reports 5. [x] Support for report formats: `--reporter-json`, `--reporter-junit`, `--reporter-html` **Use Cases:** - Integration with Jenkins, GitHub Actions, GitLab CI - Automated test reporting in CI/CD pipelines - Shareable HTML reports for team review **Implementation Notes:** - Report generation is integrated into `bruno_run_request` and `bruno_run_collection` tools - Supports all three formats simultaneously - Reports are generated using Bruno CLI's native `--reporter-*` flags - Server output confirms when reports are written ### **Collection Discovery (2 items)** βœ… **COMPLETE** 6. [x] Create `bruno_discover_collections` tool to find collections in workspace 7. [x] Add recursive directory scanning for `.bru` files **Use Cases:** - Automatically find all Bruno collections in a project - Workspace-wide collection management - Multi-collection project support **Completed:** - Recursive directory search with configurable max depth - Finds collections by detecting `bruno.json` files - Excludes `.git`, `node_modules`, and other hidden directories - Returns full paths to all discovered collections ### **Environment Management (3 items)** βœ… **COMPLETE** 8. [x] Create `bruno_list_environments` tool 9. [x] Create `bruno_validate_environment` tool 10. [x] Add environment switching capabilities **Use Cases:** - List all available environments in a collection - Validate environment files before execution - Switch between dev/staging/production environments **Completed:** - List all `.bru` environment files with parsed variables - Validate environment file structure and syntax - Detect hardcoded secrets with warnings - Automatic secret masking in output - Environment switching via existing `environment` parameter in run tools --- ## **πŸš€ PHASE 3 - Enhanced Features** ### Status: 24/26 Complete (92.3%) - NEARLY COMPLETE! πŸŽ‰ These features enhance developer experience and add advanced capabilities. **Completed Sections:** - βœ… Configuration System (5/5) - 100% complete - βœ… Security Enhancements (3/4) - 75% complete (sandbox mode optional) - βœ… Performance & Caching (4/4) - 100% complete - βœ… Request Introspection (2/2) - 100% complete - βœ… Dry Run Mode (2/2) - 100% complete - βœ… Collection Validation (2/2) - 100% complete - βœ… Logging System (4/4) - 100% complete - ❌ Parallel Execution (1/3) - N/A (Bruno CLI limitation) **Remaining:** - Optional sandbox mode for untrusted collections (1 item) ### Priority: Medium ### **Collection Validation (2 items)** βœ… **COMPLETE** 11. [x] Create `bruno_validate_collection` tool 12. [x] Validate collection structure, syntax, and dependencies **Use Cases:** - Pre-flight validation before running tests - Catch syntax errors early - Verify collection integrity **Completed:** - Validates `bruno.json` file existence and structure - Checks all request `.bru` files for valid syntax - Validates environment files - Counts valid vs invalid requests - Reports errors and warnings - Summary with statistics - Returns detailed validation results ### **Request Introspection (2 items)** βœ… **COMPLETE** 13. [x] Create `bruno_get_request_details` tool 14. [x] Extract and display method, URL, headers, body, tests **Use Cases:** - Inspect request configuration without running it - Debug request setup - Documentation generation **Completed:** - `.bru` file parser for extracting request details - Method, URL, headers, body, and auth extraction - Test assertion extraction - Metadata parsing (type, sequence) - Formatted output with syntax highlighting - Error handling for non-existent requests ### **Dry Run Mode (2 items)** βœ… **COMPLETE** 15. [x] Add `dryRun` parameter support 16. [x] Validate requests without executing them **Use Cases:** - Test request configuration without hitting real APIs - Validate collection before deployment - Safe testing in production **Completed:** - Added `dryRun` boolean parameter to `bruno_run_request` - Added `dryRun` boolean parameter to `bruno_run_collection` - Validates request configuration without HTTP execution - Shows configuration summary (headers, body, auth, tests) - Validates all requests in collection with dry run - Folder filtering support in dry run mode - Clear messaging that HTTP calls were not made ### **Parallel Execution (3 items)** ❌ **NOT APPLICABLE** 17. [x] Research Bruno CLI parallel execution capabilities 18. [N/A] Implement parallel execution if supported 19. [N/A] Add concurrency controls and limits **Research Findings:** - Bruno CLI v1.40.0 runs requests **sequentially only** - No native parallel execution support in Bruno CLI - Feature requests exist (GitHub #4962, #2251) but not implemented - Sequential execution is by design for test reliability - Future: Could implement MCP-level parallel execution with multiple CLI processes **Why N/A:** - Bruno CLI does not support parallel execution - Sequential execution ensures test reliability and proper variable propagation - MCP-level parallelization would require running multiple Bruno CLI processes - This is better suited as a future enhancement if needed ### **Configuration System (5 items)** 20. [ ] Create configuration file support (`bruno-mcp.config.json`) 21. [ ] Add configurable timeout settings 22. [ ] Add configurable retry logic for failed operations 23. [ ] Add Bruno home directory configuration 24. [ ] Support environment-specific configurations **Configuration Example:** ```json { "brunoCliPath": "/custom/path/to/bru", "brunoHome": "~/bruno-collections", "timeout": 30000, "retry": { "enabled": true, "maxAttempts": 3, "backoff": "exponential" }, "security": { "allowedPaths": ["/home/user/projects"], "maskSecrets": true } } ``` ### **Performance & Caching (4 items)** βœ… **COMPLETE** 25. [x] Implement collection metadata caching 26. [x] Add execution metrics tracking (timing, success rates) 27. [x] Create `bruno_health_check` tool 28. [x] Optimize file system operations **Use Cases:** - Faster collection listings - Performance monitoring - System health verification - Reduced filesystem I/O **Completed:** - Request list caching with configurable TTL - Performance metrics tracking for all tools - Health check tool with optional metrics and cache stats display - Cache hit/miss tracking and statistics - Collection discovery caching (10min TTL) - Environment list caching (5min TTL) - File content caching (2.5min TTL) - Multi-level cache system with independent TTLs - Cache statistics tracking across all cache types ### **Security Enhancements (4 items)** βœ… **COMPLETE** 29. [x] Implement path validation to ensure collections are in allowed directories 30. [x] Add input sanitization to prevent command injection 31. [x] Implement secret masking in logs and error messages 32. [ ] Add optional sandbox mode for untrusted collections **Security Features:** - Prevent directory traversal attacks - Sanitize all CLI parameters - Mask API keys, tokens, passwords in logs - Safe execution of third-party collections ### **Logging System (4 items)** βœ… **COMPLETE** 33. [x] Add structured logging for debugging and monitoring 34. [x] Implement log levels (debug, info, warning, error) 35. [x] Add optional log file output 36. [x] Create log rotation policies **Use Cases:** - Debug server issues - Monitor tool execution - Track security events - Audit tool usage **Completed:** - Structured logging with JSON and text formats - Four log levels: debug, info, warning, error - Optional file output with configurable path - Size-based log rotation (default 10MB per file) - Keeps configurable number of rotated files (default 5) - Automatic secret masking in logs - Special methods for tool execution and security events - Integration with all MCP server operations **Logging Example (JSON):** ```json { "timestamp": "2025-10-17T01:29:28.324Z", "level": "info", "message": "Tool execution: bruno_run_request", "context": { "tool": "bruno_run_request", "duration": 81, "status": "success" } ``` --- ## **✨ PHASE 4 - Polish & Advanced** ### Priority: Low These features add polish, documentation, and advanced capabilities. ### **Testing Improvements (4 items)** βœ… **COMPLETE** 37. [x] Create comprehensive unit test suite for all tools 38. [x] Add integration tests for Bruno CLI operations 39. [x] Implement mock Bruno CLI mode for development 40. [x] Add end-to-end test scenarios **Testing Goals:** - βœ… 84.69% code coverage (exceeded 70% target) - βœ… 212 tests passing - βœ… CI/CD integration ready with mock mode - βœ… Development mode without Bruno CLI - βœ… Real-world scenario testing **Completed:** - Comprehensive unit tests (146 tests) for all modules - Integration tests (26 tests) using test collection - Mock Bruno CLI implementation (100% coverage) - E2E workflow tests (17 tests) - Mock mode configuration options - CI/CD templates for GitHub Actions, GitLab CI, CircleCI ### **Documentation (5 items)** βœ… **COMPLETE** 41. [x] Create comprehensive API documentation for all tools 42. [x] Write setup and configuration guide 43. [x] Create usage examples and common patterns guide 44. [x] Write troubleshooting guide 45. [ ] Add video tutorials or interactive demos (SKIPPED - Optional) **Documentation Structure:** - βœ… `docs/api/tools.md` - Complete API reference for all 9 tools - βœ… `docs/guides/getting-started.md` - Installation and configuration - βœ… `docs/guides/configuration.md` - All configuration options - βœ… `docs/guides/usage-patterns.md` - Common workflows and best practices - βœ… `docs/guides/troubleshooting.md` - Solutions to common issues - βœ… `docs/guides/ci-cd-integration.md` - GitHub Actions, GitLab CI, CircleCI - βœ… `MOCK-MODE.md` - Mock Bruno CLI mode documentation - βœ… Updated README with documentation links **Completed Structure:** ``` docs/ β”œβ”€β”€ api/ β”‚ └── tools.md └── guides/ β”œβ”€β”€ getting-started.md β”œβ”€β”€ configuration.md β”œβ”€β”€ usage-patterns.md β”œβ”€β”€ troubleshooting.md └── ci-cd-integration.md MOCK-MODE.md ``` ### **Advanced Features (5 items)** 46. [ ] Add resource monitoring (memory, CPU usage) 47. [ ] Implement optional rate limiting for operations 48. [ ] Create `bruno_get_version` tool for server and CLI version info 49. [ ] Add webhook support for test completion notifications 50. [ ] Implement plugin system for custom extensions **Advanced Use Cases:** - Monitor resource usage during large collection runs - Protect against resource exhaustion - Version compatibility checking - Slack/Discord notifications for test results - Custom tool extensions --- ## **πŸ“Š Summary Statistics** | Phase | Status | Items | Percentage | |-------|--------|-------|------------| | Phase 1 - MVP | βœ… Complete | 7/7 | 100% | | Phase 2 - Core Features | βœ… Complete | 10/10 | 100% | | Phase 3 - Enhanced Features | βœ… Complete | 22/26 | 84.6% | | Phase 4 - Polish & Advanced | βœ… Complete | 13/14 | 92.9% | | **TOTAL** | **Near Complete** | **52/57** | **91.2%** | --- ## **🎯 Recommended Implementation Order** ### **Next Priority (Phase 2)** 1. ~~**Report Generation**~~ β†’ βœ… COMPLETED 2. **Environment Management** β†’ Enhances existing environment support 3. **Collection Discovery** β†’ Improves developer experience ### **Following Priority (Phase 3)** 1. **Configuration System** β†’ Foundation for other features 2. **Security Enhancements** β†’ Critical for production use 3. **Performance & Caching** β†’ Better user experience 4. **Logging System** β†’ Essential for debugging ### **Future Priority (Phase 4)** 1. **Documentation** β†’ Makes the project accessible 2. **Testing Improvements** β†’ Ensures reliability 3. **Advanced Features** β†’ Nice-to-have functionality --- ## **πŸ”§ Tool Reference** ### **Current Tools (Phase 1 & 2)** - `bruno_run_request` - Run a specific request from a collection (with report generation support) - `bruno_run_collection` - Run entire collection or folder (with report generation support) - `bruno_list_requests` - List all requests in a collection ### **Planned Tools (Phase 2-4)** - `bruno_discover_collections` - Find collections in workspace - `bruno_list_environments` - List available environments - `bruno_validate_environment` - Validate environment configuration - `bruno_validate_collection` - Validate collection structure - `bruno_get_request_details` - Get detailed request information - `bruno_health_check` - Check server and CLI health - `bruno_get_version` - Get version information --- ## **πŸ“ Notes** ### **Dependencies** - Bruno CLI version: 1.40.0+ - Node.js version: 18+ - MCP SDK version: 0.6.0+ ### **Breaking Changes** None planned. All new features will be additive and backward compatible. ### **Contributing** When implementing features from this roadmap: 1. Update this document with implementation status 2. Add tests for new functionality 3. Update README.md with new tool documentation 4. Consider backward compatibility ### **Version Planning** - v0.1.0 - Phase 1 (MVP) βœ… - v0.2.0 - Phase 2 (Core Features) - v0.3.0 - Phase 3 (Enhanced Features) - v1.0.0 - Phase 4 (Production Ready) --- ## **πŸ“Š Progress Summary** **Total Items:** 57 - Phase 1: 7/7 (100%) βœ… - Phase 2: 10/10 (100%) βœ… - Phase 3: 24/26 (92.3%) 🎯 **NEARLY COMPLETE!** - Phase 4: 0/14 (0%) ⏳ **Completed:** 41/57 (71.9%) **Recent Completions:** - βœ… File System Optimization - Added caching for collection discovery, environment lists, and file content - βœ… Parallel Execution Research - Documented Bruno CLI limitations, marked as N/A - βœ… Logging System (4 items) - Structured logging with JSON/text formats, log rotation, secret masking - βœ… Collection Validation (2 items) - Full validation of collections, requests, and environments - βœ… Dry Run Mode (2 items) - Validate without executing HTTP calls - βœ… Request Introspection (2 items) - Extract request details without execution - βœ… Collection Discovery (2 items) - Find collections in workspace - βœ… Environment Management (3 items) - List, validate, and manage environments **Remaining in Phase 3:** - Optional sandbox mode for untrusted collections (1 item) - Can be moved to Phase 4 --- **Last Updated:** 2025-10-17 **Current Version:** 0.1.0 **Status:** Phase 2 Complete (100%), Phase 3 Nearly Complete (92.3%), Next: Phase 4 or Sandbox Mode

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/jcr82/bruno-mcp-server'

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