ContextForge RoadmapΒΆ
Release Overview
This roadmap outlines the planned development milestones for ContextForge, organized by release version with completion status and due dates.
Release Status SummaryΒΆ
| Release | Due Date | Completion | Status | Description |
|---|---|---|---|---|
| 1.6.0 | 31 Aug 2026 | 0 % | Open | Collaboration, Workflow Management, Security Posture |
| 1.5.0 | 31 Jul 2026 | 0 % | Open | Ecosystem Integrations, Advanced Observability, Plugin Marketplace |
| 1.4.0 | 30 Jun 2026 | 0 % | Open | Enterprise Features, Federation Enhancements, Performance |
| 1.3.0 | 31 May 2026 | 0 % | Open | New MCP Servers and Agents |
| 1.2.0 | 30 Apr 2026 | 0 % | Open | Documentation, Technical Debt, Bugfixes |
| 1.1.0 | 31 Mar 2026 | 0 % | Open | Technical Debt and Quality |
| 1.0.0-GA | 28 Mar 2026 | 0 % | Open | Technical Debt, Security Hardening, Catalog Improvements, A2A Improvements, MCP Standard Review and Sync |
| 1.0.0-RC2 | 09 Mar 2026 | 100 % | Closed | Release Candidate 2 - Hardening, Admin UI Polish, Plugin Framework & Quality |
| 1.0.0-RC1 | 17 Feb 2026 | 100 % | Closed | Release Candidate 1 - Security, Linting, Catalog Enhancements, Ratings, experience and UI |
Release 1.6.0ΒΆ
Release 1.6.0 - In Progress (0%)
Due: 31 Aug 2026 | Status: Open Collaboration, Workflow Management, Security Posture
π Epics - Remaining (10)
- β³ #2274 - [EPIC][A11Y]: Accessibility (WCAG 2.1 AA compliance)
- β³ #2275 - [EPIC][A11Y]: Keyboard navigation and shortcuts
- β³ #2306 - [EPIC][COLLAB]: Multi-user collaboration and presence
- β³ #2307 - [EPIC][UI]: Comments and annotations
- β³ #2308 - [EPIC][WORKFLOW]: Workflow approvals and change management
- β³ #2309 - [EPIC][SECURITY]: Security posture dashboard
- β³ #2347 - [EPIC][TESTING]: Automated MCP server compatibility regression suite - Top 100+ server testing
- β³ #2349 - [EPIC][K8S]: Kubernetes Operator integration for production-grade infrastructure
- β³ #2350 - [EPIC][K8S]: ContextForge Kubernetes Operator - Helm-based Operator SDK implementation
- β³ #2957 - [EPIC][ANSIBLE]: Ansible collection for ContextForge Gateway CI/CD configuration
π§ͺ Testing - Remaining (1)
- β³ #407 - [CHORE][TESTING]: Improve pytest configuration and plugins
β‘ Performance - Remaining (5)
- β³ #902 - [FEATURE][MCP-SERVER]: Rust sample - performance-benchmark-server
- β³ #1620 - [RUST]: Implement performance-sensitive plugins in Rust/PyO3
- β³ #1638 - [PERFORMANCE]: Migrate to Python 3.14 with Free-Threading (No GIL)
- β³ #1640 - [PERFORMANCE]: Add asyncpg Driver Support (Alternative to psycopg2)
- β³ #1761 - [PERFORMANCE]: Reduce importlib lookups at runtime
π Documentation - Remaining (28)
- β³ #22 - [DOCS]: Add BeeAI framework client integration (Python and TypeScript)
- β³ #565 - [DOCS]: Documentation for Goose integration
- β³ #871 - [DOCS]: Langflow integration
- β³ #872 - [DOCS]: watsonx.ai integration
- β³ #873 - [DOCS]: watsonx Orchestrate integration
- β³ #874 - [DOCS]: IBM Decision Intelligence MCP server integration
- β³ #875 - [DOCS]: IBM MQ server MCP integration
- β³ #876 - [DOCS]: IBM ODM MCP server integration
- β³ #877 - [DOCS]: IBM watsonx.data Document Retrieval MCP server integration
- β³ #878 - [DOCS]: IBM Cloud MCP server integration
- β³ #879 - [DOCS]: IBM Cloud Code Engine MCP server integration
- β³ #880 - [DOCS]: IBM Cloud VPC MCP server integration
- β³ #881 - [DOCS]: IBM Instana MCP server integration
- β³ #882 - [DOCS]: IBM Storage Insights MCP server integration
- β³ #883 - [DOCS]: IBM API Connect for GraphQL MCP integration
- β³ #884 - [DOCS]: WxMCPServer (webMethods) integration
- β³ #885 - [DOCS]: Terraform MCP server integration
- β³ #886 - [DOCS]: Vault Radar MCP server integration
- β³ #887 - [DOCS]: DataStax Astra DB MCP server integration
- β³ #888 - [DOCS]: Docling MCP server integration
- β³ #889 - [DOCS]: MCP Composer integration
- β³ #890 - [DOCS]: Langflow MCP server integration
- β³ #891 - [DOCS]: BeeAI framework integration
- β³ #913 - [DOCS]: Atlassian MCP server integration
- β³ #914 - [DOCS]: Box MCP server integration
- β³ #915 - [DOCS]: GitHub MCP server integration
- β³ #917 - [DOCS]: Hugging Face MCP server integration
- β³ #918 - [DOCS]: Javadocs.dev MCP server integration
π§ Chores - Remaining (5)
- β³ #292 - [CHORE]: Enable AI Alliance Analytics Stack Integration
- β³ #318 - [CHORE]: Publish Agents and Tools that leverage codebase and templates
- β³ #408 - [CHORE][CICD]: Add normalize script to pre-commit hooks
- β³ #414 - [CHORE]: Restructure Makefile targets (ex: move grype to container scanning section), or have a dedicated security scanning section
- β³ #574 - [CHORE][PYTHON]: Run pyupgrade to modernize Python syntax
β¨ Features - Remaining (27)
- β³ #267 - [FEATURE][MCP-SERVER]: Java implementation - plantuml-server
- β³ #268 - [FEATURE][MCP-SERVER]: Haskell implementation - pandoc-server
- β³ #269 - [FEATURE][MCP-SERVER]: Go implementation - LaTeX service
- β³ #270 - [FEATURE][MCP-SERVER]: Go implementation - libreoffice-server
- β³ #273 - [FEATURE][TERRAFORM]: mcp-gateway-aws module (EKS, ECS Fargate)
- β³ #274 - [FEATURE][TERRAFORM]: mcp-gateway-azure module (AKS, ACA)
- β³ #275 - [FEATURE][TERRAFORM]: mcp-gateway-gcp module (GKE, Cloud Run)
- β³ #276 - [FEATURE][TERRAFORM]: mcp-gateway-ibm-cloud module (IKS, ROKS, Code Engine)
- β³ #896 - [FEATURE]: Add prompt authoring tools category to MCP eval server
- β³ #897 - [FEATURE][MCP-SERVER]: Go sample - database-query-server
- β³ #899 - [FEATURE][MCP-SERVER]: Python sample - ml-inference-server
- β³ #901 - [FEATURE][MCP-SERVER]: Rust sample - crypto-tools-server
- β³ #903 - [FEATURE][MCP-SERVER]: TypeScript sample - web-automation-server
- β³ #904 - [FEATURE][MCP-SERVER]: TypeScript sample - real-time-collaboration-server
- β³ #905 - [FEATURE][MCP-SERVER]: IBM Granite language models MCP server
- β³ #906 - [FEATURE][MCP-SERVER]: IBM Granite vision models MCP server
- β³ #907 - [FEATURE][MCP-SERVER]: IBM Granite speech models MCP server
- β³ #908 - [FEATURE][MCP-SERVER]: IBM Granite time series models MCP server
- β³ #909 - [FEATURE][MCP-SERVER]: IBM Granite Guardian safety models MCP server
- β³ #910 - [FEATURE][MCP-SERVER]: IBM Granite geospatial models MCP server
- β³ #911 - [FEATURE][MCP-SERVER]: IBM Granite embedding models MCP server
- β³ #921 - [FEATURE][MCP-SERVER]: Python sample - weather-data-server
- β³ #1617 - [RUST]: Rewrite translate module in Rust
- β³ #1621 - [RUST]: Rewrite transport layer in Rust
- β³ #2358 - [FEATURE]: Granian feature requests - max-requests, jitter, and worker lifecycle improvements
- β³ #2886 - [FEATURE][PLUGINS]: Architectural policy for deprecating Python plugins when other languages versions are superior
- β³ #2907 - [FEATURE]: Rust implementation of url reputation plugin
Release 1.5.0ΒΆ
Release 1.5.0 - In Progress (0%)
Due: 31 Jul 2026 | Status: Open Ecosystem Integrations, Advanced Observability, Plugin Marketplace
π Epics - Remaining (11)
- β³ #2282 - [EPIC][WEBSOCKET]: Real-time updates via WebSocket
- β³ #2283 - [EPIC][MOBILE]: Mobile-first responsive redesign
- β³ #2284 - [EPIC][UI]: Customizable dashboard builder
- β³ #2285 - [EPIC][PLUGIN]: Plugin UI extension framework
- β³ #2289 - [EPIC][DESKTOP]: ContextForge Desktop (React + Electron)
- β³ #2290 - [EPIC][PLUGIN]: Plugin marketplace UI
- β³ #2291 - [EPIC][AI]: AI-assisted operations (natural language interface)
- β³ #2292 - [EPIC][ANALYTICS]: Advanced analytics and trends dashboard
- β³ #2299 - [EPIC][UI]: Integrated monitoring and observability UI
- β³ #2302 - [EPIC][UI]: Integrated help center
- β³ #2303 - [EPIC][COMPLIANCE]: Compliance reporting dashboard
π Bugs - Remaining (1)
- β³ #2550 - [BUG][PERFORMANCE]: Idle transaction timeout under high load (4000+ users)
β‘ Performance - Remaining (6)
- β³ #251 - [PERFORMANCE]: Automatic performance testing and tracking for every build (hey) including SQLite and Postgres / Redis configurations
- β³ #1293 - [PERFORMANCE]: HTTP/2 and keep-alive transport
- β³ #1295 - [PERFORMANCE]: Static asset caching and CDN
- β³ #1681 - [PERFORMANCE]: Implement Lazy Service Initialization
- β³ #1682 - [PERFORMANCE]: Implement SSE Backpressure and Slow Client Handling
- β³ #1780 - [PERFORMANCE]: Add random jitter to scheduled tasks to prevent thundering herd
π§ Chores - Remaining (2)
β¨ Features - Remaining (6)
- β³ #756 - [FEATURE][API]: REST passthrough APIs with pre/post plugins (JSONPath and filters)
- β³ #1338 - [FEATURE][API]: Enhance REST API gateway to support form data, path parameters, and dynamic path variables
- β³ #1559 - [FEATURE]: Package with other MCP server in stdio mode
- β³ #1660 - [FEATURE]: Centralized Redis configuration
- β³ #2074 - [FEATURE]: Convert prompts and resources to tools in virtual servers
- β³ #2313 - [FEATURE]: Implement vendor-specific adapters for A2A Agent Types (OpenAI, Anthropic) with UI interactive help
Release 1.4.0ΒΆ
Release 1.4.0 - In Progress (0%)
Due: 30 Jun 2026 | Status: Open Enterprise Features, Federation Enhancements, Performance
π Epics - Remaining (12)
- β³ #1285 - [EPIC][COMPLIANCE]: Fully implement MCP 2025-06-18 compliance across all endpoints
- β³ #2287 - [EPIC][MOBILE]: Mobile layout testing and optimization
- β³ #2288 - [EPIC][SDK]: TypeScript SDK auto-generation (@hey-api/openapi-ts)
- β³ #2293 - [EPIC][FEDERATION]: Federation dashboard and cross-gateway visibility
- β³ #2294 - [EPIC][COMPLIANCE]: Audit log viewer and compliance reports
- β³ #2295 - [EPIC][PERFORMANCE]: Performance profiling dashboard
- β³ #2296 - [EPIC][AUTH]: Advanced RBAC and permissions UI
- β³ #2297 - [EPIC][UI]: Notification center and alert management
- β³ #2298 - [EPIC][CONFIG]: Configuration versioning and rollback
- β³ #2304 - [EPIC][UI]: Interactive tutorials and guided tours
- β³ #2310 - [EPIC][UI]: Backup and restore UI
- β³ #2311 - [EPIC][ADMIN]: Admin alerting and alert management
π§ͺ Testing - Remaining (2)
π Security - Remaining (1)
- β³ #542 - [FEATURE][SECURITY]: Helm chart - Enterprise secrets management integration (Vault)
β‘ Performance - Remaining (4)
- β³ #1856 - [PERFORMANCE]: Connection Pool Health Monitoring and Readiness Integration
- β³ #1858 - [PERFORMANCE]: Request Priority and Quality of Service (QoS)
- β³ #1863 - [PERFORMANCE]: Add Envoy Proxy with Optional Caching for Docker Compose
- β³ #1864 - [PERFORMANCE]: Add Envoy Gateway with Optional Caching for Helm Chart
π Documentation - Remaining (1)
- β³ #1346 - [DOCS]: Unclear instructions to test A2A agent as MCP tool
π§ Chores - Remaining (4)
- β³ #211 - [CHORE]: Achieve Zero Static-Type Errors Across All Checkers (mypy, ty, pyright, pyrefly)
- β³ #253 - [CHORE]: Implement chaos engineering tests for fault tolerance validation (network partitions, service failures)
- β³ #398 - [CHORE]: Enforce pre-commit targets for doctest coverage, pytest coverage, pylint score 10/10, flake8 pass and add badges
- β³ #595 - [CHORE][DATABASE]: Investigate potential migration to UUID7
β¨ Features - Remaining (26)
- β³ #114 - [FEATURE][DOCKER]: Connect to dockerized MCP servers via STDIO
- β³ #175 - [FEATURE][OBSERVABILITY]: Add OpenLLMetry integration
- β³ #209 - [FEATURE]: Anthropic Desktop Extensions DTX directory/marketplace
- β³ #218 - [FEATURE][OBSERVABILITY]: Prometheus metrics instrumentation
- β³ #258 - [FEATURE]: Universal client retry mechanisms with exponential backoff and jitter
- β³ #262 - [FEATURE][AGENT]: LangChain integration sample (OpenAI and A2A endpoints)
- β³ #263 - [FEATURE][AGENT]: CrewAI integration sample (OpenAI and A2A endpoints)
- β³ #272 - [FEATURE][OBSERVABILITY]: Pre-built Grafana dashboards and Loki log export
- β³ #286 - [FEATURE][CONFIG]: Dynamic configuration UI and admin API
- β³ #293 - [FEATURE]: Intelligent load balancing for redundant MCP servers
- β³ #296 - [FEATURE]: MCP server rating and review system
- β³ #299 - [FEATURE][A2A]: A2A ecosystem integration and marketplace
- β³ #300 - [FEATURE][LOGGING]: Structured JSON logging with correlation IDs
- β³ #301 - [FEATURE]: Full circuit breakers for unstable MCP server backends
- β³ #505 - [FEATURE]: Add ENV token forwarding management per tool
- β³ #545 - [FEATURE][CONFIG]: Hot-reload configuration without restart
- β³ #546 - [FEATURE]: Protocol version negotiation and backward compatibility
- β³ #547 - [FEATURE][UI]: Built-in MCP server health dashboard
- β³ #636 - [FEATURE][BUILD]: Add PyInstaller support for standalone binaries
- β³ #1135 - [FEATURE][POLICY]: Support OPA bundling for external policy downloads
- β³ #1266 - [FEATURE]: Share visibility with specific teams or users
- β³ #1267 - [FEATURE]: Approval-based promotion of MCP server to MCP registry
- β³ #1673 - [FEATURE]: OS service management - systemd, launchd, and Windows service support
- β³ #2095 - [FEATURE][CONFIG]: Support secrets-from-file and configurable .env loading
- β³ #2118 - [FEATURE]: Export MCP session pool metrics to Prometheus
- β³ #2199 - [FEATURE] Add LangChain-based MCP Agent
Release 1.3.0ΒΆ
Release 1.3.0 - In Progress (0%)
Due: 31 May 2026 | Status: Open New MCP Servers and Agents
π Epics - Remaining (9)
- β³ #2279 - [EPIC][I18N]: Internationalization (i18n) framework
- β³ #2280 - [EPIC][UI]: Theming and white-label support
- β³ #2281 - [EPIC][UI]: Bulk operations and multi-select
- β³ #2286 - [EPIC][UI]: Visual polish and UI consistency
- β³ #2300 - [EPIC][PERFORMANCE]: UI caching strategy and CDN
- β³ #2312 - [EPIC][UI]: Notification bell and real-time alerts UI
- β³ #2527 - [EPIC][MCP-APPS]: MCP Apps Support for ContextForge
- β³ #2603 - [EPIC][SECURITY]: ML-Based Behavioral Fingerprinting for Issue #257
- β³ #2823 - [EPIC][WEBMCP]: WebMCP Integration β Browser-Native Tool Registration and Gateway Bridge
π§ͺ Testing - Remaining (3)
- β³ #2480 - [TESTING][ACCESSIBILITY]: Admin UI WCAG Compliance, Keyboard Navigation, Screen Reader Support
- β³ #2482 - [TESTING][CHAOS]: Chaos Engineering, Random Fault Injection, and Game Day Scenarios
- β³ #2484 - [TESTING][LOCALIZATION]: Timezone Handling, Unicode/UTF-8, and International Character Support
π Bugs - Remaining (1)
- β³ #683 - [FEATURE]: Debug headers and passthrough headers support
π Security - Remaining (1)
- β³ #1789 - [FEATURE][SECURITY]: Separate /rpc endpoints per tool/MCP server
β‘ Performance - Remaining (4)
- β³ #290 - [PERFORMANCE]: Enhance Gateway Tuning Guide with PostgreSQL Deep-Dive
- β³ #1639 - [PERFORMANCE]: Migrate to PostgreSQL 18 (Experimental)
- β³ #1745 - [PERFORMANCE]: Audit Trail Performance & Configuration Enhancements
- β³ #2161 - [PERFORMANCE]: Evaluate async SQLAlchemy migration for high-concurrency scenarios
π Documentation - Remaining (1)
- β³ #503 - [DOCS]: Tutorial - OpenWebUI with Ollama, LiteLLM, MCPO, and ContextForge deployment
π§ Chores - Remaining (8)
- β³ #250 - [CHORE]: Implement automatic API documentation generation using mkdocstrings and update Makefile
- β³ #255 - [CHORE]: Implement comprehensive Playwright test automation for the entire ContextForge Admin UI with Makefile targets and GitHub Actions
- β³ #307 - [CHORE]: GitHub Actions to build docs, with diagrams and test report, and deploy to GitHub Pages using MkDocs on every push to main
- β³ #402 - [CHORE][HELM]: Add post-deploy hook to register Time Server as Gateway
- β³ #1340 - [CHORE] Proposal: Split Monorepo into Separate Repositories in contextforge-org
- β³ #1688 - [CHORE]: Deprecate MySQL/MariaDB support - Focus on SQLite and PostgreSQL
- β³ #2139 - [CHORE]: Documentation rationalization and Diataxis framework adoption
- β³ #2383 - [CHORE] Evaluate and select additional CI/CD quality tools
β¨ Features - Remaining (11)
- β³ #285 - [FEATURE][CONFIG]: Configuration validation and schema enforcement
- β³ #537 - [FEATURE][CONFIG]: Simple endpoint feature flags
- β³ #738 - [FEATURE][CONFIG]: Configuration database for dynamic settings management
- β³ #912 - [FEATURE][AGENT]: IBM BeeAI framework integration sample
- β³ #1042 - [FEATURE]: Implementation plan for root directory
- β³ #1535 - [FEATURE][DB]: PostgreSQL schema configuration support
- β³ #1568 - [FEATURE][BUILD]: Future directions for configurable builds
- β³ #1619 - [RUST]: Rewrite reverse-proxy module in Rust
- β³ #1671 - [FEATURE][DB]: Consider wait-and-retry fallback for advisory lock timeout
- β³ #1952 - [FEATURE][DB]: Implement 4-database architecture for scaling and separation of metrics, logs, and observability data
- β³ #2339 - [PROPOSAL]: Plugin Framework Evolution
Release 1.2.0ΒΆ
Release 1.2.0 - In Progress (0%)
Due: 30 Apr 2026 | Status: Open Documentation, Technical Debt, Bugfixes
π Epics - Remaining (27)
- β³ #287 - [EPIC][API]: API Path Versioning - Unified /api/v1 prefix with /api/experimental namespace
- β³ #1245 - [EPIC][SECURITY]: Security clearance levels plugin - Bell-LaPadula MAC implementation
- β³ #1286 - [EPIC][TESTING]: MCP compliance checker - Automated specification testing tool
- β³ #1305 - [EPIC][AI]: AI service discovery and gateway proxy
- β³ #1359 - [EPIC]: Custom metadata fields - Rich extensible metadata system
- β³ #1374 - [EPIC][AUTH]: Two-factor authentication (2FA) - TOTP/Google Authenticator support
- β³ #1377 - [EPIC][SECURITY]: A2AS framework - Runtime security and self-defense for MCP and A2A
- β³ #1422 - [EPIC][AUTH]: Agent and tool authentication and authorization plugin
- β³ #1472 - [EPIC][PLUGIN]: Configurable plugins via admin UI
- β³ #2110 - [EPIC][RUNTIME]: Secure MCP runtime - Remote server deployment and catalog integration (Docker, Code Engine)
- β³ #2215 - [EPIC][SECURITY]: MCP server security posture assessment - Pre-deployment scanning and validation
- β³ #2222 - [EPIC][SECURITY]: Policy-as-code security and compliance automation platform
- β³ #2228 - [EPIC][AI]: AI-powered conversational gateway and semantic discovery platform
- β³ #2305 - [EPIC][UI]: Contextual help and tooltips
- β³ #2556 - [EPIC][AUTH]: Authentication Rate Controls & Plugin Support
- β³ #2560 - [EPIC][UI]: Client-side rate limiting and request management
- β³ #2561 - [EPIC][UI]: Session timeout and idle detection for Admin UI
- β³ #2564 - [EPIC][SECURITY][UI]: Click-to-Reveal UI Components (UX Improvements)
- β³ #2575 - [EPIC][PLUGIN]: Decouple plugin framework from mcpgateway dependencies
- β³ #2578 - [EPIC][SECURITY]: Interface-Level Access Control (ILAC) - Restrict Users to MCP/A2A/API/UI via RBAC
- β³ #2599 - [EPIC][SECURITY]: Canary Tokens and Honeypot Resources
- β³ #2600 - [EPIC][SECURITY]: Tool Payload Encryption (Gateway-Terminating and Passthrough Modes)
- β³ #2602 - [EPIC][SECURITY]: Interactive Compliance Gap Checker and Self-Assessment Tool
- β³ #2755 - [EPIC][SECURITY]: Admin IP allowlist - CIDR-based network access control for administrative endpoints
- β³ #2756 - [EPIC][SECURITY]: Gateway IP allowlist/denylist - CIDR-based network access control for MCP, A2A, and REST endpoints
- β³ #2809 - [EPIC][INTEGRATION]: Backstage integration - MCP/A2A federation, catalog sync, and developer portal experience
- β³ #2984 - [EPIC][PROTOCOL]: GraphQL-to-MCP translation module - automatic schema introspection and tool generation
π§ͺ Testing - Remaining (3)
π Security - Remaining (9)
- β³ #536 - [FEATURE][SECURITY]: Generic IP-based access control (allowlist)
- β³ #2216 - [FEATURE][SECURITY]: Container vulnerability scanner - Trivy/Grype integration
- β³ #2217 - [FEATURE][SECURITY]: MCP server source code scanner - Semgrep/Bandit integration
- β³ #2218 - [FEATURE][SECURITY]: SBOM generator - CycloneDX/SPDX for MCP servers
- β³ #2219 - [FEATURE][SECURITY]: MCP server security policy engine - Configurable compliance gates
- β³ #2234 - [FEATURE][SECURITY]: Supply chain attack detection - Typosquatting and dependency confusion
- β³ #2235 - [FEATURE][SECURITY]: Container image signing and verification - Sigstore/Cosign integration
- β³ #2236 - [FEATURE][SECURITY]: Security posture drift alerting - Continuous CVE monitoring
- β³ #2237 - [FEATURE][SECURITY]: MCP-specific security rules - Custom Semgrep/CodeQL for MCP patterns
β‘ Performance - Remaining (23)
- β³ #289 - [PERFORMANCE]: Multi-Layer Caching System (Memory + Redis)
- β³ #291 - [PERFORMANCE]: Comprehensive Scalability & Soak-Test Harness (Long-term Stability & Load) - locust, pytest-benchmark, smocker mocked MCP servers
- β³ #432 - [PERFORMANCE]: Performance Optimization Implementation and Guide for ContextForge (baseline)
- β³ #1354 - [PERFORMANCE][DB]: PostgreSQL database tuning and optimization
- β³ #1612 - [PERFORMANCE]: Reduce SQLite busy_timeout from 30s to 5s (configurable)
- β³ #1825 - [PERFORMANCE]: Reduce wrapper CPU overhead (stdin read + task churn)
- β³ #1853 - [PERFORMANCE]: Database Retry Mechanism for High-Concurrency Resilience
- β³ #1854 - [PERFORMANCE]: Global Rate Limiting for Gateway Protection
- β³ #1857 - [PERFORMANCE]: Async Database Logging to Prevent Feedback Loop Under Load
- β³ #1862 - [PERFORMANCE]: Fix PostgreSQL 'Idle in Transaction' Connection Issue
- β³ #1894 - [PERFORMANCE]: Admin UI endpoints have high tail latency (5-10s p95)
- β³ #1906 - [PERFORMANCE]: Metrics aggregation queries cause full table scans under load
- β³ #1907 - [PERFORMANCE]: Admin UI endpoint /admin/ has high latency under load
- β³ #1919 - [PERFORMANCE]: Upstream rmcp returns SSE-only responses, no JSON option
- β³ #1963 - [PERFORMANCE]: Plugin framework performance optimization
- β³ #1995 - [PERFORMANCE]: Optimize SQLAlchemy pool configuration for PgBouncer deployments
- β³ #2004 - [PERFORMANCE]: Increase default registry cache TTLs for core tables
- β³ #2005 - [PERFORMANCE]: Add Redis caching for association table queries
- β³ #2006 - [PERFORMANCE]: Optimize linear O(N) condition matching in plugin framework
- β³ #2007 - [PERFORMANCE]: Compile user patterns to regex in plugin condition matching
- β³ #2114 - [PERFORMANCE]: Database lock contention in toggle operations under high concurrency
- β³ #2181 - [PERFORMANCE]: Distributed MCP Session State for Multi-Node Deployments
- β³ #2356 - [PERFORMANCE]: Add database resilience hardening (connection monitoring, optimistic locking, circuit breaker)
π§ Chores - Remaining (6)
- β³ #589 - [CHORE][CICD]: Generate build provenance attestations for workflow artifacts
- β³ #674 - [CHORE][DEVOPS]: Automate release management process
- β³ #1260 - [CHORE]: x86-64-v2 support
- β³ #2100 - [CHORE]: Setup Plugin Framework Repository
- β³ #2138 - [CHORE]: Rationalize Full Pipeline Build workflow against other GitHub Actions workflows
- β³ #2568 - [REFACTOR][UI]: Consolidate innerHTML patterns with auto-escaping helpers
β¨ Features - Remaining (47)
- β³ #123 - [FEATURE][AI]: Dynamic server catalog via rule, regexp, tags, or LLM-based selection
- β³ #182 - [FEATURE]: Semantic tool auto-filtering
- β³ #295 - [FEATURE]: MCP server marketplace and registry
- β³ #548 - [FEATURE][API]: GraphQL API support for tool discovery
- β³ #706 - [FEATURE][AUTH]: ABAC virtual server support
- β³ #782 - [FEATURE][AUTH]: OAuth enhancement following PR 768
- β³ #848 - [FEATURE]: Allow same prompt name across different MCP servers
- β³ #1136 - [FEATURE][PLUGIN]: Add depends_on key in plugin configurations
- β³ #1265 - [FEATURE][AUTH]: Map teams to roles and permissions
- β³ #1356 - [FEATURE]: Headers passthrough from MCP server configuration
- β³ #1428 - [FEATURE]: CRT-based semantic tool router for dynamic MCP servers
- β³ #1435 - [FEATURE][AUTH]: Infer identity provider info for onboarded MCP servers
- β³ #1438 - [FEATURE][PLUGIN]: Enhance the IAM pre-tool plugin
- β³ #1456 - [FEATURE][AUTH]: Migrate from JWT tokens to short opaque API tokens
- β³ #1473 - [FEATURE][HELM]: Adding extra values to values.yaml
- β³ #1911 - [FEATURE][HELM]: Support nodeSelector, tolerations, affinity, and anti-affinity
- β³ #1917 - [FEATURE][HELM]: Allow passing extra env variables via secret
- β³ #2019 - [FEATURE]: Centralized configurable RBAC/ABAC policy engine
- β³ #2120 - [FEATURE][AUTH]: Generic OIDC group to team mapping for SSO
- β³ #2148 - [FEATURE][AUTH]: DCR proxy for MCP services with non-DCR OAuth providers
- β³ #2221 - [FEATURE][CATALOG]: Curated secure MCP server catalog with trust tiers
- β³ #2224 - [FEATURE][COMPLIANCE]: Compliance report generator - FedRAMP/HIPAA/SOC2 automation
- β³ #2225 - [FEATURE][POLICY]: Policy audit trail and decision logging
- β³ #2226 - [FEATURE][POLICY]: Policy testing and simulation sandbox
- β³ #2227 - [FEATURE][AUTH]: Just-in-time (JIT) access and temporary privilege elevation
- β³ #2229 - [FEATURE][SEARCH]: Tool embedding index and semantic search service
- β³ #2230 - [FEATURE]: Virtual meta-server - Comprehensive tool discovery and execution layer
- β³ #2231 - [FEATURE][AI]: Conversational tool discovery interface
- β³ #2232 - [FEATURE][A2A]: A2A agent semantic discovery and orchestration
- β³ #2238 - [FEATURE][POLICY]: Policy GitOps and version control
- β³ #2239 - [FEATURE][POLICY]: Policy conflict detection and resolution
- β³ #2240 - [FEATURE][POLICY]: Policy impact analysis and what-if simulation
- β³ #2241 - [FEATURE][POLICY]: Separation of duties (SoD) enforcement plugin
- β³ #2242 - [FEATURE][POLICY]: Policy templates library
- β³ #2244 - [FEATURE][AI]: Tool recommendation engine
- β³ #2245 - [FEATURE][ANALYTICS]: Tool usage analytics for search ranking
- β³ #2246 - [FEATURE][TOOLS]: Tool chain templates and workflow automation
- β³ #2247 - [FEATURE][TOOLS]: Semantic tool deprecation and migration assistant
- β³ #2248 - [FEATURE][AI]: Natural language direct tool execution
- β³ #2385 - [FEATURE]: Multi-Platform CI/CD Testing Matrix (Windows, Linux, macOS)
- β³ #2653 - [ENHANCEMENT][DATABASE]: Add retry logic for row lock contention in service layer
- β³ #2748 - [FEATURE][PLUGINS]: gRPC/Unix socket transport hardening and observability
- β³ #2754 - [FEATURE][API]: Add PATCH endpoint for user updates, deprecate PUT partial-update semantics
- β³ #2828 - [FEATURE]: Remove observability service dependency from plugin framework
- β³ #2831 - [FEATURE]: Create plugin framework settings
- β³ #2859 - [FEATURE]: Decouple plugin framework data models from gateway core types
- β³ #2903 - [ENHANCEMENT][PLUGINS]: Proactive secrets management integration for secrets detection plugin
Release 1.1.0ΒΆ
Release 1.1.0 - In Progress (0%)
Due: 31 Mar 2026 | Status: Open Technical Debt and Quality
π Epics - Remaining (22)
- β³ #1304 - [EPIC]: Implement SEP-1649 MCP server cards discovery
- β³ #1306 - [EPIC][PLUGIN]: Billing and metering plugin with guaranteed message delivery
- β³ #1315 - [EPIC][UI]: UI field documentation - Context-sensitive help
- β³ #1358 - [EPIC]: Configurable tag restrictions - Whitelist enforcement
- β³ #1417 - [EPIC][PLUGIN]: Improve plugins hygiene
- β³ #1471 - [EPIC][UI]: Alerting system with UI notification center
- β³ #2276 - [EPIC][SDK]: OpenAPI SDK generation and UI migration
- β³ #2277 - [EPIC][UI]: UI component library and design system
- β³ #2278 - [EPIC][UI]: Unified search and command palette
- β³ #2301 - [EPIC][UI]: Server and tool ratings and feedback
- β³ #2546 - [EPIC][CATALOG]: Database-Backed MCP Server Catalog - Workflow, Governance, and Trust Tiers
- β³ #2547 - [EPIC][A2A]: A2A Protocol v0.3.0 Full Compliance Implementation
- β³ #2552 - [EPIC][COMPLIANCE]: Extensible Compliance Metadata Framework for MCP Servers and A2A Agents
- β³ #2557 - [EPIC][BUILD]: Frontend asset minification and optimization
- β³ #2597 - [EPIC][SECURITY]: SIEM Integration and Security Event Export
- β³ #2598 - [EPIC][SECURITY]: API Key Lifecycle Management System
- β³ #2601 - [EPIC][SECURITY]: Internal Secret Rotation with Zero-Downtime
- β³ #2652 - [EPIC][CICD]: Auto-generate requirements.txt from pyproject.toml
- β³ #2792 - [EPIC][TESTING][DOCS]: Comprehensive testing strategy documentation overhaul
- β³ #2861 - [EPIC][UI][SECURITY]: OAuth Gateway Authorization UX Overhaul β Guided Flows, Validation, and Error Recovery
- β³ #2952 - [EPIC][CORE]: Secure Code Execution & Virtual Tool Filesystem (MCP Code Mode)
- β³ #2991 - [EPIC][UI][OBSERVABILITY]: Admin Overview redesign with actionable topology and health signals
π§ͺ Testing - Remaining (18)
- β³ #294 - [FEATURE][TESTING]: Automated MCP server testing and certification
- β³ #2425 - [TESTING][FUNCTIONALITY]: WebSocket transport manual test plan (connection, bidirectional, multiplexing)
- β³ #2427 - [TESTING][FUNCTIONALITY]: stdio transport manual test plan (local servers, translation, process management)
- β³ #2430 - [TESTING][FUNCTIONALITY]: Federation manual test plan (peer discovery, cross-gateway calls, sync)
- β³ #2435 - [TESTING][FUNCTIONALITY]: Observability manual test plan (metrics, logging, tracing, health)
- β³ #2445 - [TESTING][FUNCTIONALITY]: gRPC translation manual test plan (service discovery, method invocation, streaming)
- β³ #2447 - [TESTING][FUNCTIONALITY]: Completion/Autocomplete manual test plan (tool completion, resource completion, prompt completion)
- β³ #2449 - [TESTING][FUNCTIONALITY]: Roots catalog manual test plan (CRUD, change tracking, notifications)
- β³ #2450 - [TESTING][FUNCTIONALITY]: Metrics system manual test plan (buffering, rollup, cleanup, queries)
- β³ #2453 - [TESTING][E2E]: User journey - Multi-gateway aggregation end-to-end test (virtual server, tool routing)
- β³ #2454 - [TESTING][E2E]: User journey - Federation end-to-end test (peer discovery, cross-gateway invocation)
- β³ #2460 - [TESTING][OPERATIONS]: Metrics Maintenance Manual Test Plan (Rollup, Cleanup, Retention)
- β³ #2476 - [TESTING][OBSERVABILITY]: Metrics Accuracy, Tracing Completeness, and Dashboard Validation
- β³ #2477 - [TESTING][INTEGRATION]: OAuth/OIDC Providers, SSO, and External Identity Integration
- β³ #2478 - [TESTING][CONFIGURATION]: Environment Variables, Validation, and Default Values
- β³ #2483 - [TESTING][DOCUMENTATION]: API Documentation Accuracy, Code Examples, and Tutorial Validation
- β³ #2488 - [TESTING][MULTI-INSTANCE]: Leader Election, Redis Coordination, and Horizontal Scaling
- β³ #2489 - [TESTING][WEBHOOK]: Webhook Plugin Event Delivery, Retry Logic, HMAC Signatures
π Bugs - Remaining (24)
- β³ #1187 - [BUG][HELM]: Latest helm chart not available
- β³ #1324 - [BUG]: Inconsistent UUID string format across database models
- β³ #1405 - [BUG]: Incomplete implementation of REST passthrough configuration
- β³ #1411 - [BUG][OBSERVABILITY]: Prometheus unable to scrape the metrics
- β³ #1670 - [BUG][DB]: Advisory lock IDs should be namespaced by database name
- β³ #1704 - [BUG][API]: prompts/get RPC incorrectly looks up by ID instead of name per MCP spec
- β³ #1961 - [BUG][PERFORMANCE]: Fix minor performance issues in llm-guard plugin
- β³ #2119 - [BUG]: Server toggle returns 400 errors under load
- β³ #2159 - [BUG][UI]: Search filter on the tools tab only filters for the current page
- β³ #2162 - [BUG]: Prevent asyncio tasks from being garbage collected (S7502)
- β³ #2334 - [BUG]: Apply fresh_db_session() to remaining 271 endpoints using Depends(get_db)
- β³ #2335 - [BUG]: Apply fresh_db_session() to admin.py endpoints (135 usages)
- β³ #2336 - [BUG]: Apply fresh_db_session() to remaining 52 REST endpoints in main.py
- β³ #2522 - [BUG][MINOR]: Migration silent exception handling may mask schema failures
- β³ #2621 - [BUG][PLUGINS]: Race conditions in plugin global state dictionaries under concurrent load
- β³ #2643 - [BUG][UI]: Total Executions metric fluctuates randomly on page refresh
- β³ #2669 - [BUG][PERFORMANCE]: Remove unnecessary SERVER_RESET_QUERY=DISCARD ALL from PgBouncer config
- β³ #2691 - [BUG]: Teams - Team visibility updates are not reflected until the page is refreshed
- β³ #2692 - [BUG][PERFORMANCE]: auth hot-path DB queries dominate request latency under load
- β³ #2796 - [BUG][PLUGINS]: External MCP plugin session not recovered after plugin restart
- β³ #2854 - [BUG][API]: gRPC service registration unusable - multiple failures
- β³ #2864 - [BUG][UI]: Race condition in deleteTeamSafe causes stale team list after deletion
- β³ #2968 - [BUG]: MCP Servers - Edit - Admin role - The Admin can no longer see the token
- β³ #3005 - [BUG][PERFORMANCE]: Extend get_user_teams cache to store full team objects instead of just IDs
π Security - Remaining (6)
- β³ #230 - [FEATURE][SECURITY]: Cryptographic request and response signing
- β³ #257 - [FEATURE][SECURITY]: Gateway-level rate limiting, DDoS protection, and abuse detection
- β³ #541 - [FEATURE][SECURITY]: Enhanced session management for admin UI
- β³ #568 - [FEATURE][SECURITY]: mTLS support for gateway, plugins, and MCP servers
- β³ #654 - [FEATURE][SECURITY]: Pre-register checks (MCP server scan)
- β³ #2712 - [ENHANCEMENT][SECURITY]: Virtual Server token enforcement - require scoped tokens for access
β‘ Performance - Remaining (37)
- β³ #1296 - [PERFORMANCE][REDIS]: Redis endpoint response caching
- β³ #1297 - [PERFORMANCE]: Production server tuning
- β³ #1625 - [RUST]: Implement high-performance metrics aggregation in Rust
- β³ #1679 - [PERFORMANCE]: Make Query Logging Non-Blocking with Async I/O
- β³ #1685 - [PERFORMANCE]: Optimize Database Session Creation and Management
- β³ #1689 - [PERFORMANCE]: Improve Instrumentation Span Queue Handling
- β³ #1690 - [PERFORMANCE]: Optimize Response Streaming for Large Payloads
- β³ #1693 - [PERFORMANCE]: Optimize Background Task Execution
- β³ #1694 - [PERFORMANCE]: Optimize Database Migration Performance
- β³ #1751 - [PERFORMANCE]: Phase 2 Caching - Auth Batching & Low-Risk Endpoint Caching
- β³ #1759 - [PERFORMANCE]: Optimize in-memory log storage queries
- β³ #1769 - [PERFORMANCE]: PostgreSQL SQL optimization opportunities
- β³ #1807 - [PERFORMANCE]: Reduce CPU cost of validation middleware full-body traversal
- β³ #1823 - [PERFORMANCE]: Reduce CPU hotspots in translate.py (stdio/SSE/streamable HTTP)
- β³ #1824 - [PERFORMANCE]: Cache gRPC schema generation and make default-field expansion optional
- β³ #1833 - [PERFORMANCE]: Optimize SQLite tag filter SQL/bind generation
- β³ #1860 - [PERFORMANCE]: Gunicorn Server Backpressure with Concurrency Limit Middleware
- β³ #1895 - [PERFORMANCE]: Pydantic model_validate() overhead in hot paths
- β³ #1930 - [PERFORMANCE]: Optimize httpx - Replace per-request AsyncClient with shared client
- β³ #1958 - [PERFORMANCE]: Optimize llm-guard plugin
- β³ #1993 - [PERFORMANCE]: Add DB_POOL_USE_LIFO configuration for SQLAlchemy QueuePool
- β³ #1997 - [PERFORMANCE]: Audit and fix SELECT-only endpoints missing explicit commit for PgBouncer compatibility
- β³ #2000 - [PERFORMANCE]: Add missing indexes on association tables
- β³ #2008 - [PERFORMANCE]: audit_trails table has 18 indexes causing severe write amplification
- β³ #2009 - [PERFORMANCE]: security_events table has 16 indexes causing write overhead
- β³ #2012 - [PERFORMANCE]: Observability feature causes major performance regression
- β³ #2013 - [PERFORMANCE]: Remove 16 unused indexes on structured_log_entries table
- β³ #2014 - [PERFORMANCE]: Optimize tool_metrics table - 1B+ sequential tuple reads
- β³ #2032 - [PERFORMANCE]: Cache full EmailTeam objects instead of IDs in auth_cache
- β³ #2034 - [PERFORMANCE]: Add fast-path middleware bypass for /rpc endpoints
- β³ #2035 - [PERFORMANCE]: Cache negative token revocation results longer
- β³ #2036 - [PERFORMANCE]: Consolidate tool query variants to improve query plan caching
- β³ #2037 - [PERFORMANCE]: Add load_only() to list view queries to reduce data transfer
- β³ #2115 - [PERFORMANCE]: Pre-compute CSP header string at startup
- β³ #2116 - [PERFORMANCE]: Parallelize admin dashboard service calls with asyncio.gather()
- β³ #2117 - [PERFORMANCE]: Move /admin/export/configuration to async job queue
- β³ #2993 - [UI][PERFORMANCE]: Lazy-load admin tab partials and reduce initial request fan-out
π Documentation - Remaining (1)
- β³ #892 - [DOCS]: Update and test IBM Cloud deployment documentation
π§ Chores - Remaining (27)
- β³ #216 - [CHORE]: Add spec-validation targets and make the OpenAPI build go green
- β³ #383 - [CHORE][HELM]: Remove migration step from Helm chart
- β³ #1290 - [CHORE] Remove redundant import checkers: importchecker and unimport
- β³ #1300 - [CHORE]: Transition linter execution from local venv to uvx-driven
- β³ #1420 - [CHORE]: Naming discussion - Gateways vs MCP Servers terminology
- β³ #1588 - [CHORE][REFACTOR]: Standardize root_path access pattern across codebase
- β³ #1591 - [CHORE][REFACTOR]: Preserve specific exceptions in service error handlers
- β³ #1901 - [CHORE]: cleanup dead code in mcpgateway/common/ and related modules
- β³ #1974 - [CHORE][REFACTOR]: Simplify convert_server_to_read using Pydantic from_attributes
- β³ #2091 - [CHORE][REFACTOR]: Reduce code duplication in team management UI and cursor pagination
- β³ #2133 - [CHORE]: Refine AGENTS.md for code assistant behavior guidelines
- β³ #2147 - [CHORE]: Consolidate redundant get_db definitions to single source
- β³ #2165 - [CHORE]: Remove duplicate if/else branches and exception handlers (S3923, S1045)
- β³ #2175 - [CHORE]: Align VirusTotal upload retry logic with ResilientHttpClient semantics
- β³ #2369 - [CLEANUP][SONAR][LOW]: Dead code - if/else branches identical in admin.py
- β³ #2373 - [CLEANUP][SONAR][LOW]: Code duplication - tools/list vs list_tools endpoints in main.py
- β³ #2374 - [CLEANUP][SONAR][LOW]: Redundant exception handling - ValidationError already caught by ValueError
- β³ #2376 - [CLEANUP][SONAR][LOW]: Identical if/elif branches in path_template normalization in schemas.py
- β³ #2379 - [CLEANUP][SONAR][LOW]: Dead code - identical if/else with commented-out logic in translate.py
- β³ #2380 - [CLEANUP][SONAR][LOW]: Identical if/else branches in error handling in wrapper.py
- β³ #2381 - [CLEANUP][SONAR][LOW]: Identical if/elif branches in catalog_service.py auth handling
- β³ #2505 - [CHORE]: Standardize user context parameter naming (_user vs current_user_ctx)
- β³ #2577 - [REFACTOR][API]: Standardize error response formatting with ErrorFormatter
- β³ #2613 - [CHORE][BUILD]: Consolidate Container Images - Single Containerfile
- β³ #2872 - [TASK][PLUGINS]: Add unit tests for secrets detection plugins
- β³ #2969 - [CHORE][RUST]: enforce code coverage to 90% for rust plugins
- β³ #3027 - [CHORE]: setup rust mcpgateway for internal components
β¨ Features - Remaining (34)
- β³ #130 - [FEATURE][AI]: Dynamic LLM-powered tool generation via prompt
- β³ #172 - [FEATURE]: Enable auto refresh and reconnection for MCP servers
- β³ #217 - [FEATURE]: Graceful-shutdown hooks for API and worker containers
- β³ #284 - [FEATURE][AUTH]: LDAP / Active Directory integration
- β³ #386 - [FEATURE][UI]: Gateways/MCP servers page refresh
- β³ #566 - [FEATURE]: Add support for limiting specific fields to user-defined values
- β³ #647 - [FEATURE]: Configurable caching for tools
- β³ #707 - [FEATURE][UI]: Customizable admin panel
- β³ #732 - [FEATURE][UI]: Enhance handling of long tool descriptions
- β³ #743 - [FEATURE][UI]: Enhance server creation/editing UI for prompt and resource association
- β³ #758 - [FEATURE][PROTOCOL]: Implement missing MCP protocol methods
- β³ #1122 - [FEATURE][AUTH]: Investigate bearer token validation with Keycloak JWT
- β³ #1140 - [FEATURE][PLUGIN]: Reduce complexity in plugin configuration framework
- β³ #1160 - [FEATURE]: Add Roundtable external MCP server for enterprise AI assistant orchestration
- β³ #1191 - [FEATURE][PLUGIN]: Content limit plugin - Resource exhaustion protection
- β³ #1264 - [FEATURE][AUTH]: Support for LDAP integration with multiple domains
- β³ #1361 - [FEATURE]: OpenAPI to REST protocol conversion tool
- β³ #1413 - [FEATURE][PLUGIN]: Add maturity levels to plugins
- β³ #1421 - [FEATURE][CONFIG]: Unified config surface
- β³ #1429 - [FEATURE][PLUGIN]: RBAC plugin using Cedar
- β³ #1434 - [FEATURE][AUTH]: Comprehensive OAuth2 base library with helper functions
- β³ #1437 - [FEATURE][PLUGIN]: Create IAM pre-tool plugin
- β³ #1622 - [RUST]: Implement translate-grpc module in Rust
- β³ #1623 - [RUST]: Build translate-graphql module in Rust
- β³ #1624 - [RUST]: Rewrite A2A invocation core in Rust
- β³ #1796 - [FEATURE][OBSERVABILITY]: Allow timezone configuration for built-in observability and metrics
- β³ #2027 - [FEATURE]: Fail fast on non-transient connection errors during startup
- β³ #2049 - [FEATURE][BUILD]: Support for container builds for ppc64le
- β³ #2063 - [FEATURE][I18N]: Add internationalization support for Chinese (zh-CN)
- β³ #2101 - [FEATURE]: Make public teams discovery limit configurable via environment variable
- β³ #2135 - [FEATURE][DEPLOYMENT]: Ansible playbook for AWS deployment of demo and test environments
- β³ #2503 - [QUICK-START]: 5-Minute Setup & First Steps
- β³ #2504 - [SUPPORT]: Getting Help & Support Options
- β³ #2551 - [FEATURE][COMPLIANCE]: Hosting Location Metadata for MCP Servers and A2A Agents
Release 1.0.0-GAΒΆ
Release 1.0.0-GA - In Progress (0%)
Due: 28 Mar 2026 | Status: Open Technical Debt, Security Hardening, Catalog Improvements, A2A Improvements, MCP Standard Review and Sync
π Epics - Remaining (13)
- β³ #1247 - [EPIC][PLUGIN]: Per-virtual-server plugin selection with multi-level RBAC
- β³ #1355 - [EPIC]: Document backup and restore - Data protection strategy
- β³ #2270 - [EPIC][TESTING]: Frontend testing and code quality
- β³ #2271 - [EPIC][BUILD]: Frontend package management with npm
- β³ #2519 - [EPIC][TESTING][UI]: Comprehensive Playwright E2E Test Suite for ContextForge Admin UI
- β³ #2553 - [EPIC][SECURITY][PLUGINS]: PII Advanced filter (Presidio + pattern library)
- β³ #2559 - [EPIC][SECURITY]: Third-party script isolation and sandboxing
- β³ #2595 - [EPIC][SECURITY]: Enhance secure-by-default posture for secrets management
- β³ #2636 - [EPIC][TESTING]: Achieve 100% Locust Load Test Coverage for REST APIs
- β³ #2659 - [EPIC][SSO][SECURITY]: OIDC Token Verification - Enterprise Claims Extraction
- β³ #2660 - [EPIC][PERFORMANCE]: Database Session Management - Eliminate Transaction Leaks Under Load
- β³ #2709 - [EPIC][TESTING]: Docker Compose testing & observability stack - Locust, A2A echo agent, Tempo, DX improvements
- β³ #2972 - [EPIC][UI]: Rename /admin to /ui and make the UI base path configurable
π§ͺ Testing - Remaining (74)
- β³ #2028 - [BUG][TESTING]: Flaky test - test_invoke_tool_with_plugin_metadata_rest fails in parallel but passes in isolation
- β³ #2388 - [TESTING][SECURITY]: RBAC manual test plan (visibility, teams, token scope)
- β³ #2390 - [TESTING][SECURITY]: Core authentication manual test plan (JWT, Basic Auth, API tokens, email/password)
- β³ #2391 - [TESTING][SECURITY]: SSO and OAuth manual test plan (Keycloak, EntraID, OIDC, PKCE, token exchange)
- β³ #2393 - [TESTING][SECURITY]: Token scoping middleware manual test plan (server ID, IP, time, permissions)
- β³ #2395 - [TESTING][SECURITY]: MCP authentication modes manual test plan (permissive, strict, transport auth)
- β³ #2397 - [TESTING][SECURITY]: Rate limiting manual test plan (user, tenant, tool limits, window algorithm)
- β³ #2399 - [TESTING][SECURITY]: Secrets detection plugin manual test plan (AWS keys, API keys, tokens)
- β³ #2400 - [TESTING][SECURITY]: PII filter plugin manual test plan (SSN, credit cards, emails, medical)
- β³ #2401 - [TESTING][SECURITY]: Content moderation plugin manual test plan (harmful content, multi-provider)
- β³ #2402 - [TESTING][SECURITY]: URL reputation plugin manual test plan (malicious URLs, phishing, VirusTotal)
- β³ #2403 - [TESTING][SECURITY]: Audit trail manual test plan (CRUD logging, compliance, data classification)
- β³ #2406 - [TESTING][SECURITY]: A2A agent security manual test plan (agent auth, permissions, boundaries)
- β³ #2407 - [TESTING][SECURITY]: Federation security manual test plan (cross-gateway auth, peer validation)
- β³ #2408 - [TESTING][SECURITY]: SSRF prevention manual test plan (URL validation, allowlists, internal network protection)
- β³ #2410 - [TESTING][SECURITY]: Session management manual test plan (fixation, hijacking, timeout, concurrent sessions)
- β³ #2411 - [TESTING][SECURITY]: Error handling manual test plan (stack traces, debug info, verbose errors, information disclosure)
- β³ #2412 - [TESTING][SECURITY]: API security manual test plan (mass assignment, BOLA, parameter pollution, OpenAPI validation)
- β³ #2413 - [TESTING][SECURITY]: Resource exhaustion / DoS prevention manual test plan (memory bombs, connection exhaustion, slowloris, CPU exhaustion)
- β³ #2414 - [TESTING][SECURITY]: Protocol-level security manual test plan (WebSocket/SSE abuse, connection management, HTTP smuggling)
- β³ #2415 - [TESTING][SECURITY]: Serialization security manual test plan (XML bombs, YAML deserialization, recursive JSON)
- β³ #2416 - [TESTING][SECURITY]: Encoding/Unicode security manual test plan (homograph attacks, null byte injection, normalization bypass)
- β³ #2417 - [TESTING][SECURITY]: File upload security manual test plan (malicious files, size limits, MIME validation, zip bombs)
- β³ #2418 - [TESTING][FUNCTIONALITY]: MCP Tools manual test plan (discovery, invocation, streaming, error handling)
- β³ #2419 - [TESTING][FUNCTIONALITY]: MCP Resources manual test plan (discovery, fetch, templates, subscriptions)
- β³ #2420 - [TESTING][FUNCTIONALITY]: MCP Prompts manual test plan (discovery, retrieval, arguments, templates)
- β³ #2421 - [TESTING][FUNCTIONALITY]: MCP Sampling manual test plan (createMessage, model preferences, context)
- β³ #2423 - [TESTING][FUNCTIONALITY]: Virtual servers manual test plan (aggregation, routing, tool merging)
- β³ #2424 - [TESTING][FUNCTIONALITY]: SSE transport manual test plan (connection, messages, reconnection)
- β³ #2426 - [TESTING][FUNCTIONALITY]: Streamable HTTP transport manual test plan (request/response, streaming)
- β³ #2428 - [TESTING][FUNCTIONALITY]: Admin UI manual test plan (HTMX, Alpine.js, navigation, CRUD)
- β³ #2432 - [TESTING][FUNCTIONALITY]: Caching manual test plan (response cache, Redis, invalidation)
- β³ #2433 - [TESTING][FUNCTIONALITY]: Database manual test plan (SQLite, PostgreSQL, migrations, connections)
- β³ #2434 - [TESTING][FUNCTIONALITY]: Configuration manual test plan (env vars, runtime config, validation)
- β³ #2436 - [TESTING][FUNCTIONALITY]: Plugin framework manual test plan (lifecycle, hooks, configuration)
- β³ #2437 - [TESTING][FUNCTIONALITY]: Plugin hooks manual test plan (pre/post hooks, request/response modification)
- β³ #2438 - [TESTING][FUNCTIONALITY]: LLM proxy and providers manual test plan (provider management, model routing, request forwarding)
- β³ #2439 - [TESTING][FUNCTIONALITY]: Export/Import manual test plan (full export, selective export, import validation, data consistency)
- β³ #2440 - [TESTING][FUNCTIONALITY]: MCP session pool manual test plan (connection pooling, circuit breaker, failover, cleanup)
- β³ #2441 - [TESTING][FUNCTIONALITY]: Team management manual test plan (CRUD, membership, invitations, personal teams)
- β³ #2444 - [TESTING][FUNCTIONALITY]: JSON-RPC endpoint manual test plan (request validation, batching, error handling)
- β³ #2446 - [TESTING][FUNCTIONALITY]: Request cancellation manual test plan (cancellation tokens, multi-worker, Redis pub/sub)
- β³ #2448 - [TESTING][FUNCTIONALITY]: Reverse proxy manual test plan (request forwarding, header modification, response handling)
- β³ #2451 - [TESTING][E2E]: User journey - New user onboarding end-to-end test (registration, team creation, first server)
- β³ #2452 - [TESTING][E2E]: User journey - Team collaboration end-to-end test (team setup, sharing, permissions)
- β³ #2455 - [TESTING][E2E]: User journey - Plugin integration end-to-end test (plugin loading, hook execution, content filtering)
- β³ #2456 - [TESTING][E2E]: User journey - SSO authentication end-to-end test (OAuth flow, token exchange, session management)
- β³ #2457 - [TESTING][E2E]: User journey - A2A agent orchestration end-to-end test (agent discovery, multi-agent workflow)
- β³ #2458 - [TESTING][E2E]: User journey - Export and migration end-to-end test (full export, import to new instance, verification)
- β³ #2459 - [TESTING][OPERATIONS]: Backup and Restore Manual Test Plan (SQLite, PostgreSQL, Disaster Recovery)
- β³ #2461 - [TESTING][OPERATIONS]: System Logs Manual Test Plan (Structured Logging, Search, Aggregation)
- β³ #2462 - [TESTING][OPERATIONS]: Health Monitoring Manual Test Plan (Liveness, Readiness, Dependencies)
- β³ #2463 - [TESTING][OPERATIONS]: Session and Token Cleanup Manual Test Plan (Expiration, Revocation, Audit)
- β³ #2464 - [TESTING][OPERATIONS]: Support Bundle Manual Test Plan (Diagnostics, Export, Sanitization)
- β³ #2465 - [TESTING][OPERATIONS]: Data Export/Import Manual Test Plan (Configuration, Entities, Migration)
- β³ #2466 - [TESTING][RESILIENCE]: PostgreSQL Resilience Manual Test Plan (Connection Loss, Failover, Recovery)
- β³ #2467 - [TESTING][RESILIENCE]: Redis Resilience Manual Test Plan (Cache Failure, Reconnection, Degradation)
- β³ #2468 - [TESTING][RESILIENCE]: Kubernetes Resilience Manual Test Plan (Pod Deletion, Node Failure, Rolling Updates)
- β³ #2469 - [TESTING][RESILIENCE]: MCP Server Resilience Manual Test Plan (Crash Recovery, Timeout Handling, Retry Logic)
- β³ #2470 - [TESTING][RESILIENCE]: Circuit Breaker Manual Test Plan (Tripping, Half-Open, Recovery)
- β³ #2471 - [TESTING][RESILIENCE]: Transaction Safety Manual Test Plan (Deadlocks, Timeouts, Rollback)
- β³ #2472 - [TESTING][RESILIENCE]: Graceful Degradation Manual Test Plan (Partial Availability, Feature Flags)
- β³ #2473 - [TESTING][PERFORMANCE]: Load Testing, Stress Testing, and Benchmarks
- β³ #2474 - [TESTING][UPGRADE]: Version Upgrades, Database Migrations, and Rollback Procedures
- β³ #2475 - [TESTING][DEPLOYMENT]: Docker, Docker Compose, Kubernetes/Helm, and Bare Metal Installation
- β³ #2485 - [TESTING][NETWORK]: TLS Configuration, Proxy Support, Certificate Handling, and mTLS
- β³ #2486 - [TESTING][CONCURRENCY]: Race Conditions, Thread Safety, and Async Operation Handling
- β³ #2494 - [TESTING][LLMCHAT]: LLM Chat with All Provider Models Test Plan
- β³ #2496 - [TESTING][CONFIG]: Airgapped Mode Test Plan
- β³ #2500 - [TESTING] README.md Complete Test Plan
- β³ #2501 - [TESTING][DEVOPS]: E2E Setup Script Testing with Init Containers
- β³ #2509 - [TESTING][RESILIENCE]: Docker Compose Chaos Engineering Manual Test Plan (Container Restarts, Service Failures, Scaling)
- β³ #2769 - [TESTING][RBAC]: Add unit tests for RBAC Tier Β½/3 team derivation and session token permission paths
- β³ #2852 - [BUG][TESTING]: Flaky Playwright team deletion tests due to broad text selector and HTMX timing
π Bugs - Remaining (20)
- β³ #1325 - [BUG][AUTH]: Keycloak SSO integration issue
- β³ #1500 - [BUG][AUTH]: OAuth callback failed for provider keycloak - MetaData AttributeError
- β³ #1672 - [BUG][AUTH]: Permission system inconsistencies - Undefined permissions in use
- β³ #1748 - [BUG]: gateway_service_leader key doesn't respect CACHE_PREFIX setting
- β³ #2243 - [BUG][DOCKER]: Cannot start docker compose after changing the port
- β³ #2249 - [BUG]: Self-hosted local service is not actually local nor self-hosted
- β³ #2323 - [BUG][PERFORMANCE][DB]: Endpoint handlers hold DB sessions during slow MCP backend calls
- β³ #2330 - [BUG][PERFORMANCE]: TokenScopingMiddleware causes connection pool exhaustion under load
- β³ #2668 - [BUG]: Follow-up: Rate limiter β incorrect HTTP status, missing headers, and feature gaps (refs #2397)
- β³ #2671 - [BUG]: ASGI protocol violation in streamable_http: response emitted after completion causing ClosedResourceError
- β³ #2689 - [BUG]: MCP Servers/Virtual Servers/Tools - Double loading spinner on refresh
- β³ #2784 - [BUG][API]: No tools listed via MCP after adding tool from REST API
- β³ #2808 - [BUG][API]: Admin user should be able to remove admin privileges from the other admin user
- β³ #2848 - [BUG][API]: GET /tools should not require a request body
- β³ #2867 - [BUG][PLAYWRIGHT]: Test ordering contamination causes 6 Playwright tests to fail in full suite
- β³ #2871 - [BUG][API]: REST tool registration fails with "Transaction is inactive" error
- β³ #2967 - [BUG][UI]: Follow-up: unified admin search improvements (PR #2868)
- β³ #2975 - [BUG][UI]: Alpine.js pagination controls throw console errors on every page load
- β³ #2997 - [BUG]: Agents (A2A) - Inactive - Inactive Agents should no longer be visible in Tools and Virtual Servers
- β³ #2998 - [BUG]: Unified Search - Missing search on Roots not working and empty search query should show a message
π Security - Remaining (6)
- β³ #342 - [FEATURE][SECURITY]: Implement database-level security constraints and SQL injection prevention
- β³ #534 - [FEATURE][SECURITY]: Add security configuration validation and startup checks
- β³ #535 - [FEATURE][SECURITY]: Audit logging system
- β³ #538 - [FEATURE][SECURITY]: Content size and type security limits for resources and prompts
- β³ #539 - [FEATURE][SECURITY]: Tool execution limits and resource controls
- β³ #543 - [FEATURE][SECURITY]: CSRF token protection system
β‘ Performance - Remaining (2)
π Documentation - Remaining (1)
- β³ #264 - [DOCS]: GA Documentation Review & End-to-End Validation Audit
π§ Chores - Remaining (12)
- β³ #212 - [CHORE]: Achieve zero flagged SonarQube issues
- β³ #223 - [CHORE]: Helm Chart Test Harness & Red Hat chart-verifier
- β³ #252 - [CHORE]: Establish database migration testing pipeline with rollback validation across SQLite, Postgres, and Redis
- β³ #259 - [CHORE]: SAST (Semgrep) and DAST (OWASP ZAP) automated security testing Makefile targets and GitHub Actions
- β³ #260 - [CHORE]: Manual security testing plan and template for release validation and production deployments
- β³ #281 - [CHORE]: Set up contract testing with Pact (pact-python) including Makefile and GitHub Actions targets
- β³ #312 - [CHORE]: End-to-End ContextForge Stack Testing Harness (mcpgateway, translate, wrapper, mcp-servers)
- β³ #341 - [CHORE]: Enhance UI security with DOMPurify and content sanitization
- β³ #391 - [CHORE][CICD]: Setup SonarQube quality gate
- β³ #1822 - [CHORE]: Create docker-compose for comprehensive performance testing
- β³ #2633 - [CHORE][REFACTOR]: Retire legacy mcpgateway.validators references
- β³ #2906 - [CHORE]: Fix CI rust env and apply same corrections to
pii_filterplugin
β¨ Features - Remaining (11)
- β³ #1223 - [FEATURE][COMPLIANCE]: Resource access audit trail for compliance and security
- β³ #1436 - [FEATURE][AUTH]: Propagate end user identity and context through the CF workflow
- β³ #1618 - [RUST]: Rewrite wrapper module in Rust
- β³ #1985 - [FEATURE]: Elicitation pass-through and logging
- β³ #2079 - [FEATURE]: Tool versioning with history and rollback support
- β³ #2332 - [FEATURE][API]: Support _meta for all RPC methods
- β³ #2344 - [FEATURE]: Bypass DB/cache lookup option for gateways
- β³ #2389 - [FEATURE][AUTH]: Add A2A agent RBAC enforcement to token scoping middleware
- β³ #2502 - [README-FIRST]: Project Backlog & Issue Guide
- β³ #2730 - [RUST] Plugin Architecture Options
- β³ #2992 - [UI]: Persist admin table filters across HTMX pagination and partial refresh
Release 1.0.0-RC2ΒΆ
Release 1.0.0-RC2 - Complete (100%)
Due: 09 Mar 2026 | Status: Closed Release Candidate 2 - Hardening, Admin UI Polish, Plugin Framework & Quality
148 issues resolved. See CHANGELOG for the full list organized by category (Breaking Changes, Added, Fixed, Hardening, Removed, Chores, Testing, Documentation).
Release 1.0.0-RC1ΒΆ
Release 1.0.0-RC1 - Complete (100%)
Due: 17 Feb 2026 | Status: Closed Release Candidate 1 - Security, Linting, Catalog Enhancements, Ratings, experience and UI
π Epics - Completed (11)
- β #2109 - [EPIC][UI]: Unified search experience for ContextForge admin UI
- β #2387 - [EPIC][TESTING][SECURITY]: RBAC automated regression suite (visibility, teams, token scope)
- β #2525 - [EPIC][TESTING][PROTOCOL]: MCP 2025-11-25 Protocol Compliance Test Suite
- β #2535 - [EPIC][PLUGINS]: External plugin STDIO launch options (cmd/env/cwd)
- β #2555 - [EPIC][AUTH]: Streamlined Authentication Model & Secure Defaults
- β #2625 - [EPIC][TESTING]: Achieve 80%+ Code Coverage with CI/CD Enforcement
- β #2663 - [EPIC][SECURITY]: Enterprise Security Controls - Credential Protection, SSRF Prevention, Multi-Tenant Isolation & Granular RBAC
- β #2783 - [EPIC][TESTING]: Slow Time Server - configurable-latency MCP server for timeout, resilience, and load testing
- β #2875 - [EPIC][SSO]: Add Keycloak to docker-compose and enable SSO by default for development testing
- β #2939 - [EPIC][CI/CD]: Automated license compliance checker with full SBOM scanning across all sub-projects
- β #2953 - [EPIC][PLUGINS]: Encoded exfiltration detector plugin - suspicious encoded payload leak prevention
π§ͺ Testing - Completed (17)
- β #2136 - [BUG][TESTING]: Playwright tests not updated to use admin email/password login credentials
- β #2396 - [TESTING][SECURITY]: Security headers manual test plan (CSP, HSTS, CORS, clickjacking)
- β #2404 - [TESTING][SECURITY]: Security logger manual test plan (brute force, threat scoring, anomaly detection)
- β #2405 - [TESTING][SECURITY]: Encryption and secrets manual test plan (Argon2, Fernet, key derivation)
- β #2443 - [TESTING][FUNCTIONALITY]: Tags manual test plan (CRUD, entity association, filtering, statistics)
- β #2487 - [TESTING][EDGE-CASES]: Boundary Conditions, Empty States, Maximum Limits, and Null Handling
- β #2492 - [TESTING][CONFIG]: iFrame Mode (X-Frame-Options) Test Plan
- β #2499 - [TESTING] Documentation Site Test Plan
- β #2520 - [TESTING][REGRESSION]: Add regression tests for gateway namespacing constraints
- β #2521 - [BUG][TESTING]: Flaky tests: TTL expiration and tool listing error handling
- β #2541 - [TESTING][PERFORMANCE]: JMeter Performance Load Testing Baseline
- β #2566 - [TESTING]: Locust load test reports false failures for 409 Conflict on state change endpoints
- β #2632 - [ENHANCEMENT][TESTING][UI]: Improve Playwright test resilience and developer experience
- β #2759 - [TESTING][PERFORMANCE]: REST API Data Population Framework (tests/populate)
- β
#2788 - [TESTING]: Add Jest or Vitest to
package.json - β
#2789 - [TESTING]: Configure test runner in
jest.config.jsorvitest.config.js - β #2815 - [TESTING]: Lightweight Local Load Testing and Monitoring Setup
π Bugs - Completed (105)
- β #1430 - [BUG][UI]: Tools - Add Tool from REST API with incorrect input schema breaks GET tools
- β #1528 - [BUG]: Ignores proxy-based authentication configuration and still requires token
- β #1595 - [BUG][SSE]: SSE transport incorrect endpoint and data parsing
- β #1960 - [BUG][PERFORMANCE]: Fix high-impact performance issues in llm-guard plugin
- β #2163 - [BUG]: Re-raise asyncio.CancelledError after cleanup (S7497)
- β #2185 - [BUG][AUTH]: Non-admin user unable to list public gateways
- β #2189 - [BUG][AUTH]: Multi-team users denied access to non-primary teams and cannot see public resources from other teams
- β #2192 - [BUG]: Token scoping
- β #2261 - [BUG]: JWT token creation divergence between CLI and API
- β #2272 - [BUG]: Virtual server using an MCP Gateway authenticated with OAUTH2 is loosing tools
- β #2273 - [BUG][UI]: Saving a virtual server configuration after edit fails
- β #2324 - [BUG]: Observability Dark Mode
- β #2329 - [BUG]: Tag filter returns 500 Exception for list tools api
- β #2331 - [BUG]: Security: SSO admin role not revoked when user removed from identity provider admin group
- β #2340 - [BUG]: RBAC middleware holds database sessions for entire request duration
- β #2346 - [BUG]: Root actions are (mostly) all broken
- β #2348 - [BUG]: Schema validation behavior change may cause runtime errors
- β #2357 - [BUG]: (sse): Granian CPU spikes to 800% after load stops, recovers when load resumes
- β #2360 - [BUG]: anyio cancel scope spin loop causes 100% CPU after load test stops
- β #2378 - [BUG][SONAR][LOW]: Missing expires_at calculation in DCR client registration
- β #2386 - [BUG][AUTH]: SSO admin tokens include teams key, preventing unrestricted admin bypass
- β #2512 - [BUG]: Tool invocation fails with Pydantic validation errors
- β #2518 - [BUG][PERFORMANCE][DATABASE]: DB sessions held during external HTTP calls cause connection pool exhaustion
- β #2523 - [BUG]: API Call - Users - Can not create/edit users with password_change_required:true
- β #2524 - [BUG]: API Call - Users - Can not create inactive users
- β #2526 - [BUG]: Gateway Container Stuck at "Waiting" with SSL Enabled
- β #2528 - [BUG]: MCP Servers with tool name starts with "_" is failing to add to gateway
- β #2539 - [BUG][AUTH]: Login loop when SECURE_COOKIES=true with HTTP access
- β #2544 - [BUG]: A2A Agent "Test Agent" returns HTTP 500 error message
- β #2545 - [BUG]: UI/ API - Edit user is not working
- β #2562 - [BUG]: JSON parse error when adding MCP server - missing response validation in admin.js
- β #2563 - [BUG]: Gateway tags return empty due to type mismatch between schema and validation layer
- β #2570 - [BUG]: Error message not propogated in /mcp endpoint responses
- β #2572 - [BUG]: UI - API Tokens - Last Used and Usage Stats not showing any data
- β #2573 - [BUG]: API Calls - API Tokens- Create / Update API calls are not saving the correct data
- β #2576 - [BUG]: Gateway Rejects Loki Query Tools Due to Backtick Validation
- β #2590 - [BUG][AUTH]: UI/API Users with no admin privileges can no longer login
- β
#2591 - [BUG]: LimitOverrunError with
translatefor stdio server - β #2607 - [BUG][TAGS]: get_entities_by_tag fails on PostgreSQL - uses SQLite json_extract function
- β #2608 - [BUG][TEAMS]: list_teams uses current_user_ctx["db"] which is always None
- β #2626 - [BUG][UI]: Browser autocomplete incorrectly fills fields with saved credentials (UX issue)
- β #2628 - [BUG][AUTH]: Account lockout issues - counter persists after expiry, no user notification, no admin unlock capability
- β #2648 - [BUG][PLUGINS]: RESOURCE_POST_FETCH plugins are executed before invoke_resource() resolves resource templates
- β #2656 - [BUG]: prompt_id not visible in UI
- β #2658 - [BUG]: Admin User Update Endpoint Overwrites Fields with None
- β #2673 - [BUG]: Admin can no longer see all teams
- β #2675 - [BUG]: User with no Administrator privileges should not see all menu entries as Admin does
- β #2676 - [BUG]: Teams - Manage Members - Add New Member - Add Member button don't work for user role
- β #2677 - [BUG]: Teams - Manage Members - User role - Owner of the team can not switch member to owners or owner to members
- β #2679 - [BUG]: TLS profile doesn't support passphrase-protected certificates
- β #2681 - [BUG]: The texts of Authorize and Fetch tool overlap on the MCP Servers page
- β #2690 - [BUG]: Teams - Newly created team is not displayed until the page is refreshed
- β #2693 - [BUG]: Unable to Update User via Admin UI & API Requires Mandatory Fields Causing Full Name Loss
- β #2694 - [BUG][AUTH]: Users Cannot Access Admin UI - Missing Default Role Assignment
- β #2695 - [BUG]: Redundant database queries in PermissionService.check_permission()
- β #2697 - [BUG][SECURITY]: Virtual MCP Server incorrectly requires servers.create permission
- β #2700 - [BUG]: API Call - /auth/email/me - 422 Error is shown
- β #2702 - [BUG]: Password requirements checker not working on user edit
- β #2706 - [BUG]: [AUTH] OAuth Protected Resource Metadata endpoint not RFC 9728 compliant
- β #2710 - [BUG]: Tools - Edit - Description - Showing special characters instead of the correct text
- β #2731 - [BUG]: make pre-commit fails on check-executables-have-shebangs for tests/client/init.py
- β #2732 - [BUG]: make pre-commit fails on check-shebang-scripts-are-executable for multiple files
- β #2733 - [BUG]: detect-private-key hook fails on test fixtures containing private keys
- β #2734 - [BUG]: check-yaml hook fails on multi-document YAML files
- β #2735 - [BUG]: pre-commit name-tests-test hook fails on test utility files
- β #2741 - [BUG]: New administrator user not assigned correct privileges and hence cannot access UI
- β #2757 - [BUG][SCALE]: JWT cookie exceeds browser 4KB limit when user has many team memberships
- β #2760 - [BUG]: UI - Delete and Update button should be hidden for public mcp servers created by other users and teams
- β #2763 - [BUG][LOCKOUT]: Admin accounts can be locked out via failed login attempts despite protect_all_admins
- β #2764 - [BUG][UI]: API Tokens page missing pagination and team filter not updating
- β #2777 - [BUG]: Admin UI breaks when embedded in an iframe
- β #2794 - [BUG][UI]: Admin users should not have option to remove administration privileges by themselves.
- β #2799 - [BUG][UI]: Teams list resets to page 1 after any team CRUD action
- β #2800 - [BUG][UI]: Redundant HX-Retarget headers in team creation error handlers after #2780
- β #2803 - [BUG][AUTH]: OCP2 QA β new admin user lacks admin.dashboard permission (duplicate of #2741)
- β #2805 - [BUG][UI]: The error message from API on updating a user is not displayed
- β #2806 - [BUG][AUTH]: Admin login redirect loop behind reverse proxy without path rewriting
- β #2811 - [BUG]: Teams - Add / Remove members - The updates are shown only after a refresh
- β #2821 - [BUG]: RBAC middleware crashes on token creation
- β #2836 - [BUG][AUTH]: Token created with no expiration returns 401
- β
#2837 - [BUG]: gunicorn workers crash with SIGSEGV on macOS when running
make serve - β #2845 - [BUG]: Admin UI pagination breaks behind reverse proxies and shows incorrect counts
- β #2863 - [BUG]: MultipleResultsFound when invoking MCP tools due to name-only lookup in DbTool
- β #2870 - [BUG]: API Call - Tokens - Can no longer create tokens - 403 error
- β #2873 - [BUG]: Critical: SSO authentication blocked - AttributeError on app_domain breaks Azure Entra ID
- β #2874 - [BUG][UI]: Login page appears inside active module tab despite valid session
- β #2881 - [BUG][AUTH]: OAuth2 with Microsoft Entra v2 fails with resource+scope conflict (AADSTS9010010)
- β #2882 - [BUG][AUTH]: Unable to create team token using APIs
- β #2883 - [BUG][RBAC]: Getting 403 when adding MCP server or virtual server from team
- β #2887 - [BUG][UI]: Agents page has double loading spinner on refresh
- β #2891 - [BUG][RBAC]: Platform admin blocked by RBAC on gateway delete (allow_admin_bypass=False)
- β #2908 - [BUG]: Allow teams to deploy Gateway with developer as default role for team members
- β #2916 - [BUG][API]: Selective export crashes with AttributeError on Tool.rate_limit
- β #2917 - [BUG][API]: RBAC role DELETE returns 500 due to incorrect SQLAlchemy query
- β #2920 - [BUG]: Select team visibility as default when creating resources in team scope
- β #2923 - [BUG]: HTML new line tags appearing in server listing team column
- β #2926 - [BUG]: Gunicorn worker crashes on macOS due to Objective-C fork safety
- β #2930 - [BUG][UI]: Hight automatically expands modal in the Team Manage Members modal blocking to save changes
- β #2932 - [BUG]: Team Filter Lost During Pagination
- β #2946 - [BUG][UI]: The loading messages are not consistent on all pages while waiting for the API response
- β #2955 - [BUG][ALEMBIC]: migration compatibility issues in a31c6ffc2239 and ba202ac1665f
- β #2965 - [BUG][UI]: Admin UI shows raw JSON error instead of redirecting to login when user is deleted
- β #2973 - [BUG]: Server ID Context Dropped During Stateful Session/ Session Affinity Processing
- β #2987 - [BUG]: When a toolkit import fails for any reason, subsequent attempts to import a toolkit with the same tool name are blocked
- β #3010 - [BUG]: Failed to bootstrap SSO providers: 'jwks_uri' is an invalid keyword argument for SSOProvider
π Security - Completed (3)
β‘ Performance - Completed (7)
- β #1834 - [PERFORMANCE]: Precompile regex patterns across plugins
- β #1835 - [PERFORMANCE]: Response-cache-by-prompt algorithmic optimization
- β #1836 - [PERFORMANCE]: Offload CPU-bound crypto (Argon2/Fernet) to threadpool
- β #1938 - [PERFORMANCE]: Admin metrics rollups empty during benchmark window (raw scans only)
- β #1959 - [PERFORMANCE]: Fix critical performance issues in llm-guard plugin
- β #1999 - [PERFORMANCE]: Add ulimits to PgBouncer container to prevent file descriptor exhaustion
- β #2082 - [PERFORMANCE][PLUGIN]: Optimize Cedar plugin - Replace synchronous requests with async
π Documentation - Completed (3)
π§ Chores - Completed (21)
- β #222 - [CHORE]: Helm chart build Makefile with lint and values.schema.json validation + CODEOWNERS, CHANGELOG.md, .helmignore and CONTRIBUTING.md
- β #261 - [CHORE]: Implement 90% Test Coverage Quality Gate and automatic badge and coverage html / markdown report publication
- β #377 - [CHORE][HELM]: Fix PostgreSQL volume name conflicts in Helm chart
- β #2154 - [CHORE]: Add CI/CD validation for Alembic migration status
- β #2193 - [CHORE]: Add Rocky Linux setup script variant
- β #2207 - [CHORE] workflow_dispatch platforms input is unused in docker-multiplatform.yml
- β #2233 - [CHORE][AUTH]: Align SSO service teams claim format with /tokens and /auth/login
- β #2256 - [CHORE]: GatewayService creates uninitialized service instances (ToolService, PromptService, ResourceService)
- β #2265 - [CHORE][AUTH]: Add sso_entra_admin_groups to _parse_list_from_env validator
- β #2337 - [CHORE]: Clean up .gitignore redundant patterns and organization
- β #2361 - [CHORE]: Replace copier with cookiecutter for template scaffolding
- β #2367 - [CLEANUP][SONAR][LOW]: Redundant ternary - both branches identical in log_aggregator.py
- β #2368 - [CLEANUP][SONAR][LOW]: Dead code - if/else branches identical in oauth_manager.py
- β #2371 - [CLEANUP][SONAR][LOW]: Dead code - unused variable max_duration in admin.py
- β #2372 - [CLEANUP][SONAR][LOW]: Dead code - unused function json_default in llmchat_router.py
- β #2377 - [CLEANUP][SONAR][LOW]: Deprecated datetime.utcnow() usage in main.py
- β #2382 - [CHORE][TESTS]: Remove unused PromptNotFoundError import
- β #2630 - [CHORE][MCP-SERVERS]: Update dependencies across Python, Go, and Rust servers
- β #2651 - [CHORE]: Remove unused runtime dependencies from pyproject.toml
- β #2665 - [CHORE][PYTEST]: Add verbose test output option for real-time test name visibility
- β #2981 - [CHORE][SONAR]: Fix all must-fix SonarQube findings - type safety, async tasks, dead code
β Questions - Completed (3)
β¨ Features - Completed (19)
- β #234 - [FEATURE][PROTOCOL]: Elicitation support (MCP 2025-06-18)
- β #266 - [Feature Request]: Sample MCP Server - Rust Implementation ("filesystem-server")
- β #1308 - [FEATURE][HELM]: Add optional persistence support for PostgreSQL and Redis
- β #1439 - [FEATURE][PLUGIN]: Create JWT claims and metadata extraction plugin
- β #1986 - [FEATURE]: Session affinity for stateful MCP workflows (REQ-005)
- β #2075 - [FEATURE][UI]: Flexible UI sections for embedded contexts
- β #2076 - [FEATURE][UI]: Add search capabilities for tools in admin UI
- β #2078 - [FEATURE]: Tool invocation timeouts and circuit breaker
- β #2167 - [FEATURE]: Add keyboard handlers to interactive elements
- β #2171 - [FEATURE]: Dynamic tools/resources based on user context and server-side signals
- β #2187 - [FEATURE][AUTH]: Extend default_roles to add additional roles during bootstrap
- β #2198 - [FEATURE] Add MCP Client (MCP Inspector) to docker-compose
- β #2223 - [FEATURE][POLICY]: Unified policy decision point (PDP) - Cedar/OPA/native abstraction
- β #2542 - [FEATURE][AUTH]: Self-Service Password Reset Workflow (Forgot Password)
- β #2571 - [FEATURE][INFRA]: Zero-config TLS for Nginx via Docker Compose profile
- β #2729 - [RUST]: Rust Implementation for Secrets Detection Plugin
- β #2776 - [RUST] Rust Plugins CI/CD workflow fails to start due to disallowed actions
- β #2893 - [FEATURE]: Maintain custom and original description for tools
- β #2905 - [FEATURE]: Add new backend api to add a team member
βΒΆ
Release 1.0.0-BETA-2ΒΆ
Release 1.0.0-BETA-2 - Completed (100%)
Due: 20 Jan 2026 | Status: Closed Testing, Bugfixing, Documentation, Performance and Scale
β¨ Features - Completed (26)
- β #919 - Sample MCP Server - Python (qr-code-server)
- β #950 - Session Management & Tool Invocation with Gateway vs Direct MCP ClientβServer
- β #974 - [Feature Request]: Make users change default admin passwords and secrets for production deployments.
- β #1148 - [Feature]: Full Stack CICD build and deployment of MCP CF through single configuration
- β
#1318 - [Feature Request]: While creating Virtual Server can we have tool list in
_ format - β #1414 - [Feature Request]: Client CLI
- β #1580 - [Feature Request]: API Key Auth support through queryparams
- β #1722 - [Feature Request]: Support External Database host/url
- β #1735 - [ENHANCEMENT]: Add metrics cleanup and rollup for long-term performance
- β #1753 - [HELM]: Add optional PgBouncer connection pooling support
- β #1766 - [FEATURE] Add resilient database session handling for connection pool exhaustion recovery
- β #1804 - [FEATURE]: Add DB_METRICS_RECORDING_ENABLED switch to disable execution metrics
- β #1843 - Feature: Add configurable password change enforcement settings
- β #1910 - [Feature Request]: Support re-discovery / refresh of tools for already registered MCP gateways
- β #1977 - [FEATURE]: Optimize Tools, Prompts, and Resources tables to reduce horizontal scrolling
- β #1978 - [FEATURE]: Add Overview tab to Admin UI with architecture visualization
- β #1983 - [FEATURE REQUEST]: Support cancellation of long-running tool executions
- β #1984 - [FEATURE REQUEST]: Full tool list/spec refresh (polling + API + list_changed)
- β #2022 - [Feature Request] OAuth 2.0 authentication for MCP clients with browser-based SSO (RFC 9728)
- β #2025 - [FEATURE]: Add exponential backoff with jitter for database and Redis startup resilience
- β #2047 - feat(chart): Add support for extraEnvFrom in mcp-stack-mcpgateway
- β #2052 - feat(chart): Support External PostgreSQL (CloudNativePG compatible)
- β #2054 - [Feature Request]: Microsoft EntraID Role and Group Claim Mapping for SSO
- β #2195 - [FEATURE]: Add query parameter authentication support for A2A agents
- β #2205 - [FEATURE]: Add ppc64le (IBM POWER) architecture support for container builds
- β #2364 - Default plugins setup in docker-compose
β‘ Performance - Completed (107)
- β #975 - [PERFORMANCE]: Implement Session Persistence & Pooling for Improved Performance and State Continuity
- β #1224 - [PERFORMANCE]: REST API and UI Pagination for Large-Scale Multi-Tenant Deployments
- β #1353 - [PERFORMANCE] πΎ Database Indexing Optimization
- β #1608 - [PERFORMANCE]: Plugin Framework Memory Optimization: Copy-on-Write for Context State
- β #1609 - [PERFORMANCE]: Fix N+1 and Redundant Query Patterns
- β #1610 - [PERFORMANCE]: Optimize Performance Tracker Buffer Management (O(n) β O(1))
- β #1611 - [PERFORMANCE]: Optimize Startup Slug Refresh with Batch Processing
- β #1613 - [PERFORMANCE]: Optimize stream parser buffer management (O(nΒ²) β O(n))
- β #1614 - [PERFORMANCE]: Optimize LRU cache eviction (O(n) β O(1))
- β #1615 - [PERFORMANCE]: Eliminate redundant JSON encoding in session registry
- β #1616 - [PERFORMANCE]: Parallelize session cleanup with asyncio.gather()
- β #1641 - [PERFORMANCE]: Add SELECT FOR UPDATE to prevent race conditions under high concurrency
- β #1657 - [PERFORMANCE]: Logging consistency and performance improvements
- β #1661 - [REFACTOR]: Shared async Redis client factory, async, configurable, with atomic lock release + migrate all services
- β #1674 - [PERFORMANCE]: Implement Bulk Insert Operations for Import Service
- β #1675 - [PERFORMANCE]: Reduce Session Registry Database Polling Overhead
- β #1676 - [PERFORMANCE]: Configure HTTP Client Connection Pool Limits
- β #1677 - [PERFORMANCE]: Cache JWT Token Verification Results
- β #1678 - [PERFORMANCE]: Optimize Plugin Hook Execution Path
- β #1680 - [PERFORMANCE]: Implement Distributed Registry & Admin Cache
- β #1683 - [PERFORMANCE]: Optimize Middleware Chain Execution
- β #1684 - [PERFORMANCE]: Optimize Duplicate and Inefficient COUNT Queries
- β #1686 - [PERFORMANCE]: Batch Team Membership Queries
- β #1687 - [PERFORMANCE]: Optimize Admin UI Dashboard Queries
- β #1691 - [PERFORMANCE]: Optimize Gateway Health Check Timeout
- β #1692 - [PERFORMANCE]: Replace Explicit JSONResponse with ORJSONResponse
- β #1695 - [PERFORMANCE]: Migrate from Gunicorn to Granian HTTP Server
- β #1696 - [PERFORMANCE]: Replace stdlib json with orjson throughout codebase for less frequently used json.loads and json.dumps
- β #1699 - [PERFORMANCE]: Adopt uvicorn[standard] for Enhanced Server Performance
- β #1702 - [PERFORMANCE]: Add Hiredis as Default Redis Parser with Fallback Option
- β #1714 - [PERFORMANCE]: Buffered Metrics Writes and Skip Metrics on List Endpoints
- β #1715 - [PERFORMANCE]: In-Memory Cache for GlobalConfig Lookups
- β #1727 - [PERFORMANCE]: Optimize Export Service with Batch Queries
- β #1731 - [PERFORMANCE]: High httpx client churn causes memory pressure under load
- β #1732 - [PERFORMANCE]: Database session issues causing high rollback rate and connection growth
- β #1734 - [PERFORMANCE]: Optimize metrics aggregation to prevent performance degradation under load
- β #1737 - [PERFORMANCE]: Cache get_top_* methods to prevent full metrics table scans
- β #1740 - [PERFORMANCE]: Migrate from psycopg2 to psycopg3 (Psycopg 3)
- β #1750 - [PERFORMANCE]: Add PgBouncer Connection Pooling to Docker Compose
- β #1756 - [PERFORMANCE]: Move log aggregation percentile computation to SQL
- β #1757 - [PERFORMANCE]: Optimize PerformanceTracker percentile calculation
- β #1758 - [PERFORMANCE]: Skip auth decoding on tool list endpoints
- β #1760 - [PERFORMANCE]: Use bulk UPDATE for token cleanup
- β #1764 - [PERFORMANCE]: Move observability and metrics aggregations to SQL
- β #1768 - [PERFORMANCE]: Optimize nginx reverse proxy for high-concurrency load testing and move to ubi 10.x
- β #1770 - [PERFORMANCE]: Fix db.close() without commit causing unnecessary rollbacks
- β #1773 - [PERFORMANCE] Cache get_user_teams() to reduce idle-in-transaction connections
- β #1777 - [PERFORMANCE]: Complete has_hooks_for optimization in HTTP middleware
- β #1778 - [PERFORMANCE]: Add has_hooks_for optimization to auth and RBAC hook invocations
- β #1799 - [PERFORMANCE]: Fix metrics table growth causing performance degradation under sustained load
- β #1806 - [PERFORMANCE]: Improve Locust load test client performance for 4000+ concurrent users
- β #1808 - [PERFORMANCE]: Reduce CPU cost of detailed request logging
- β #1809 - [PERFORMANCE]: Cache JSON Schema validators for tool output validation
- β #1810 - [PERFORMANCE]: Move metrics rollup percentiles to SQL (PostgreSQL)
- β #1811 - [PERFORMANCE]: Cache compiled regex/parse for resource URI templates
- β #1812 - [PERFORMANCE]: Cache JSONPath parsing for jsonpath_modifier and mappings
- β #1813 - [PERFORMANCE]: Cache jq filter compilation in extract_using_jq
- β #1814 - [PERFORMANCE]: Cache compiled Jinja templates for prompt rendering
- β #1815 - [PERFORMANCE]: Avoid double JWT decode and per-request config validation
- β #1816 - [PERFORMANCE]: Precompile token scoping regex patterns and permission maps
- β #1817 - [PERFORMANCE]: Move admin tool/prompt/resource percentiles to SQL
- β #1818 - [PERFORMANCE]: Avoid full scan in ResourceCache cleanup loop
- β #1819 - [PERFORMANCE]: Precompile regexes for DB query logging normalization
- β #1820 - [PERFORMANCE]: Throttle psutil.net_connections in system metrics
- β #1826 - [PERFORMANCE]: Avoid per-window recomputation in log search custom windows
- β #1827 - [PERFORMANCE]: Optimize streamable HTTP replay to avoid full deque scans
- β #1828 - [PERFORMANCE]: Avoid TimeoutError control flow for SSE keepalives
- β #1829 - [PERFORMANCE]: Optimize header mapping extraction to avoid nested scans
- β #1830 - [PERFORMANCE]: Precompile regex validators across core validation paths
- β #1831 - [PERFORMANCE]: Cache auth/crypto key material and derived objects
- β #1832 - [PERFORMANCE]: Transport micro-optimizations (streamable regex + stdio send)
- β #1837 - [PERFORMANCE]: Avoid eager f-string logging in hot paths
- β #1838 - [PERFORMANCE]: Avoid bytesβstr decode in SSE transport serialization
- β #1844 - [PERFORMANCE]: Add optional monitoring profile for load testing (Prometheus + Grafana + exporters)
- β #1859 - Enable Granian Server Backpressure for Overload Protection
- β #1861 - [PERFORMANCE]: PostgreSQL Read Replicas for Horizontal Scaling
- β #1879 - [PERFORMANCE]: Fix N+1 Query in list_tools - Missing joinedload for gateway
- β #1880 - [PERFORMANCE]: Fix N+1 Query in list_prompts - Missing joinedload for gateway
- β #1881 - [PERFORMANCE]: Auth Cache should check L1 (in-memory) before L2 (Redis)
- β #1883 - [PERFORMANCE]: Fix remaining N+1 queries in list_servers, list_agents, and gateway sync
- β #1887 - [PERFORMANCE]: Combine double DB sessions in token_scoping middleware
- β #1888 - [PERFORMANCE]: Cache team membership validation in token_scoping middleware
- β #1891 - [PERFORMANCE]: execution_count property causes N+1 by loading all metrics into memory
- β #1892 - [PERFORMANCE]: N+1 query pattern in EmailTeam.get_member_count()
- β #1893 - [PERFORMANCE]: Add partial index for team member count queries
- β #1897 - [PERFORMANCE]: MCP client connection exhaustion under high concurrency - configurable httpx limits
- β #1908 - [PERFORMANCE]: Add Rust MCP Test Server for Performance Testing
- β #1918 - [Performance] Implement MCP client session pooling to reduce per-request overhead (optional)
- β #1940 - [PERFORMANCE]: Cache tool lookups by name (L1 memory + L2 Redis)
- β #1944 - [PERFORMANCE]: Add TEMPLATES_AUTO_RELOAD setting
- β #1946 - [PERFORMANCE]: Add nginx caching for admin pages with multi-tenant isolation
- β #1962 - [PERFORMANCE]: Fix N+1 queries in single-entity retrieval functions (get_server, get_gateway, etc.)
- β #1964 - [PERFORMANCE]: Fix N+1 queries for team name lookups in tool_service
- β #1994 - [PERFORMANCE]: Fix N+1 queries in Gateway single-entity retrieval functions
- β #1996 - [PERFORMANCE]: Health check endpoints should explicitly commit to release PgBouncer connections
- β #2010 - [PERFORMANCE]: Plugin manager re-initialized on every request instead of once per worker
- β #2030 - [PERFORMANCE]: Migrate remaining stdlib json usage to orjson
- β #2033 - [PERFORMANCE]: Replace blocking MCP session health check with lightweight ping or remove
- β #2061 - [PERFORMANCE]: Add performance test profiling and guideline for plugins
- β #2064 - [PERFORMANCE]: Remove exc_info=True from Plugin Manager critical path
- β #2084 - [PERFORMANCE]: Logging overhead in plugin manager
- β #2113 - [PERFORMANCE]: Replace stdlib json with orjson for consistency and performance
- β #2160 - [PERFORMANCE]: Double token scoping for /mcp requests when email_auth_enabled=True
- β #2164 - [PERFORMANCE]: Use async I/O instead of blocking calls in async functions (S7493, S7487)
- β #1865 - [PERFORMANCE]: Logging CPU optimization
- β #2318 - [PERFORMANCE]: RBAC middleware holds DB sessions for entire request lifecycle causing pool exhaustion
- β #2355 - [PERFORMANCE]: Fix FOR UPDATE lock contention and CPU spin loops under high load
π Bugs - Completed (95)
- β #840 - [Bug]: For A2A Agent test not working
- β #1047 - [Bug]: MCP Server/Federated Gateway Registration is failing
- β #1108 - [Bug]: When using postgresql as database, high postgresql transaction rollback rate detected
- β #1357 - [Bug]: Claude Desktop is getting invalid type from mcp-context-forge gateway
- β #1415 - [Bug]: SettingsError raised when parsing environment variable observability_exclude_paths in Pydantic settings
- β #1423 - [Bug]: The Helm deployment encounters an error, causing the pod to restart.
- β #1440 - [Bug]: Trying to register ZGithub Remote MCP server but tools are not discoverable
- β #1463 - [Bug]: No cursors are displayed at the selected input text fields on UI
- β #1465 - [Bug]: Not able to build Gateway with existing Postgres DB
- β #1486 - [Bug]: team_id from token can be a dict
- β #1497 - [Bug]: Toggling a resource makes it invisible
- β #1501 - Non-admin cannot create a api token.
- β #1508 - [Bug]: Cannot invoke Virtual Server tools using LangChain
- β #1526 - [Bug]: start in docker, get error
- β #1530 - [Bug]: PassThrough Header configuration seems to be broken through environment variables.
- β #1533 - [Bug]: Encoded DATABASE_URL causes configparser interpolation error
- β #1539 - [Bug]: HTTPS MCP Servers with Self signed certificate not working
- β #1549 - Spring MCP Server connecting to MCP gateway 0.9.0 facing JVM OutOfMemoryError despite limited number of requests
- β #1576 - [Bug]: Rest API with text based response not working
- β #1581 - [Bug]: AMD64-v3 Compatibility Issue on Apple Silicon
- β #1582 - [Bug]: Tool Visibility Not Honoring Gateway Visibility
- β #1583 - [Bug]: Non-expiring password (or ability to change password via API)
- β #1633 - [Bug]: External plugin does not start from docker automatically
- β #1643 - [Bug]: POST /admin/users not using is_admin flag and creating users as non admin by default
- β #1644 - [Bug]: POST /admin/teams/{team_id}/add-member requires teams.write permission eventhough I am owner of team
- β #1653 - [Bug]: Login returns 500 and no token when password change is required (ContextForge 1.0.0-BETA-1)
- β #1663 - [Bug]: PostgreSQL: User deletion fails with foreign key constraint violation on email_team_member_history
- β #1664 - [Bug]: Cannot retrieve tools by gateway_id when total tools exceed 50
- β #1706 - DB connection pool exhaustion: sessions held during upstream HTTP calls
- β #1707 - [Bug]: All servers in LLM Chat are tagged as inactive even if active
- β #1719 - Fix HTTP error codes and improve nginx performance for high-concurrency load tests
- β #1725 - [Bug]: LLM Settings does not support provider-specific configuration parameters
- β #1742 - [Bug]: When creating a token in the UI page, regardless of the number of days selected for validity, it defaults to 7 days.
- β #1762 - [BUG]: Prompt Namespacing + Name/ID Resolution (Tool-Parity)
- β #1787 - [Bug]: Fullscreen mode in resource test quickly vanishes back to resource table on first attempt
- β #1788 - Observability / Advanced Metrics graphs disappear with Chart.js canvas reuse error
- β #1792 - [Bug]: JWT_AUDIENCE_VERIFICATION=false does not disable issuer validation
- β #1841 - [BUG]: email_auth router swallows HTTPException and returns 500 for all errors
- β #1842 - Bug: API password change endpoint does not clear password_change_required flag
- β #1850 - Inconsistent component names in request_logging_middleware structured logs
- β #1875 - [Bug]: Tool import fails for deeply nested schemas; VALIDATION_MAX_JSON_DEPTH environment variable ineffective
- β #1877 - PgBouncer client_idle_timeout errors not recognized as disconnects
- β #1885 - [BUG]: Database connections stuck in 'idle in transaction' under load
- β #1896 - [BUG]: Locust load tests miss JSON-RPC errors - reports false success rate
- β #1902 - Unwrap ExceptionGroup in tool invocation errors to show root cause
- β #1912 - [Bug]: Cleanup unused Federation module and duplicate Forwarding logic
- β #1913 - [Bug]: ARM64 Support is broken with the latest release
- β #1914 - [Bug]: Platform admin is forced to change password on every login (Password Change Required never clears)
- β #1915 - [Bug]: SSE and /mcp list paths ignore visibility filters for MCP resources
- β #1916 - [Bug]: Required form fields trap focus and block navigation on blur
- β #1925 - Implement MCP Session Pool Isolation Verification Tests
- β #1929 - Optimize aiohttp: Replace per-request ClientSession with shared singleton in DCR and OAuth services
- β #1931 - Optimize OPA plugin: Replace synchronous requests with async httpx client
- β #1934 - Admin UI: close read transactions before rendering to avoid idle-in-transaction timeouts
- β #1937 - [Bug]: MCP tools/list returns only ~50 tools instead of all registered tools
- β #1948 - Admin UI /admin/events SSE stream times out when idle
- β #1956 - [Bug]: New A2A Agent Tools Missing Team ID
- β #1966 - HTMX partial endpoints ignore team_id filters for tools/resources/prompts
- β #1987 - OAuth/DCR services: Connection pooling not fully effective due to per-request instantiation
- β #2002 - [Bug]: Unable to authenticate and use Basic Auth and X-API-Key A2A agents
- β #2018 - [BUG]: REST /tools list endpoint returns stale visibility data after tool update
- β #2031 - [Bug]: Token Usage Statistics in Admin UI Always Null / Zero
- β #2044 - [Bug]: Low contrast on Plugin management card in dark mode
- β #2055 - [Bug]: MCP session pool allows state leakage between Gateway users
- β #2058 - [Bug]: Advanced metrics tables have low readability.
- β #2068 - Observability: restrict tracing to MCP/A2A endpoints and honor observability_exclude_paths
- β #2072 - [Bug]: MCP Registry "Add Server" button behaviour is inconsistent
- β #2073 - [Bug]: Buttons are cluttered on the MCP Servers table's Action column
- β #2077 - [Bug]: Action buttons hidden by horizontal scroll in server tables
- β #2080 - [Bug]: Clicking the Show Inactive toggle won't update the table
- β #2094 - feat: Support _meta field propagation in MCP tool calls
- β #2096 - [Bug]: Incorrect Alembic migration placement and history: a8f3b2c1d4e5 & c96c11c111b4
- β #2103 - [Bug]: Issues identified in several native plugins
- β #2108 - [Bug]: Pagination is broken on Admin UI tables
- β #2111 - [Bug]: Clicking the Show Inactive toggle won't update the table - Remaining tables
- β #2121 - [Bug]: On table views, initializeSearchInputs() is called recurrently
- β #2134 - [Bug]: docker-compose.yaml nginx_cache volume mount conflicts with Dockerfile COPY
- β #2137 - [Bug]: Alembic versions file in wrong location
- β #2142 - [QUESTION]: Missing psycopg2 module in latest Docker image -> migrated to psycopg3
- β #2149 - OAuth providers return opaque tokens instead of JWT tokens, causing verification failures
- β #2152 - [Bug]: CORS preflight OPTIONS requests return 401 on /mcp endpoints
- β #2172 - [Bug]: Single entity parsing failure stops entire listing operation
- β #2182 - [Bug]: Metrics flickering on
- β #2183 - [Bug]: team_id is none in rbac.py when a non-admin makes an API call to list gateways
- β #2203 - [Bug]: Tags for MCP servers not saved
- β #2212 - [Bug]: Gateway activation/deactivation does not update prompts and resources
- β #2213 - [Bug]: Pagination controls mix up query params across different tables
- β #2251 - [Bug]: Cannot deactivate virtual server
- β #2254 - [Bug]: HTTP export config gives wrong type value
- β #2262 - [Bug]: A2A agent GET /a2a returns 422 due to tags field type mismatch
- β #2267 - [Bug]: Incorrect tag rendering in admin views
- β #2322 - [Bug]: Few MCP servers are not supported due to tool schema validation
- β #2341 - [Bug]: MCP CF crashes while listing tools from moody's mcp server
- β #2352 - [Bug]: Multiple gateway import failing with inactive transaction during async cleanup
- β #2362 - [Bug]: Export Config button missing from Virtual Servers table
π Security - Completed (6)
- β #2106 - [SECURITY]: Admin UI endpoints missing @require_permission checks
- β #2125 - [SECURITY]: MCP authentication controls and team membership validation
- β #2127 - [SECURITY]: Enhanced JWT Token Lifecycle Management
- β #2128 - [SECURITY]: Add REQUIRE_USER_IN_DB Configuration Option
- β #2141 - [SECURITY]: Add environment isolation warnings and optional environment claim validation
- β #2156 - [SECURITY]: LLM Guard - Replace unsafe code execution with safe AST evaluator and switch to orjson serialization
π§ Chores - Completed (6)
- β #1606 - refactor(plugin_template): update MCP runtime in plugins template
- β #1743 - Add AUDIT_TRAIL_ENABLED flag to disable audit trail logging for performance
- β #1933 - [CHORE]: Add field focus out validation to forms
- β #2166 - [CHORE]: Fix regex empty match and clean up docstring examples (S5842, S6739)
- β #2190 - [CHORE]: Replace echo /etc/passwd with useradd in Containerfile.lite
- β #2209 - [CHORE] Only build non-amd64 architectures on main branch, not PRs
π Documentation - Completed (1)
- β #916 - Document monday.com MCP Server integration with ContextForge
Release 1.0.0-BETA-1ΒΆ
Release 1.0.0-BETA-1 - Completed (100%)
Due: 16 Dec 2025 | Status: Closed Release 1.0.0-BETA-1
π Epics - Completed (1)
- β #1401 - π Epic: Internal Observability System - Performance Monitoring & Trace Analytics
β¨ Features - Completed (25)
- β #80 - [Feature Request]: Publish a multi-architecture container (including ARM64) support
- β #288 - [Feature Request]: MariaDB Support Testing, Documentation, CI/CD (alongside PostgreSQL & SQLite)
- β #898 - Sample MCP Server - Go (system-monitor-server)
- β #932 - [Feature Request]: Air-Gapped Environment Support
- β #1019 - [Feature] Authentication Architecture through Plugin System
- β #1138 - [Feature Request]: Support for container builds for s390x
- β #1161 - [FEATURE REQUEST]: Add Roundtable External MCP Server for Enterprise AI Assistant Orchestration
- β #1171 - [Feature]: gRPC-to-MCP Protocol Translation
- β #1188 - [Feature Request]: Allow multiple StreamableHTTP content
- β #1203 - [Feature]: Performance Testing & Benchmarking Framework
- β #1211 - [Feature Request]: Authentication & Authorization - Microsoft Entra ID Integration Support and Tutorial (Depends on #220)
- β #1213 - Generic OIDC Provider Support via Environment Variables
- β #1216 - Keycloak Integration Support with Environment Variables
- β #1219 - [Feature]: Benchmark MCP Server for Load Testing and Performance Analysis
- β #1227 - [Feature Request]: Run in production environments with stricter security policies.
- β #1253 - Add CI/CD Verification for Complete Build Pipeline
- β #1282 - [Feature]π Configurable Password Expiration with Forced Password Change on Login
- β #1364 - [Feature Request]: Add Support for Self-Signed Certificates in ContextForge
- β #1387 - [Feature Request]: Support One-Time Authentication Mode for WXO Integration
- β #1392 - Feature Request: Allow Multiple ContextForge Registrations with the Same Gateway URL
- β #1399 - Coolify Deployment Certificate Issues - Analysis & Resolution
- β #1409 - [Feature Request]: Filtering by gateway ID in the List Tools API
- β #1442 - [Feature Request]: Modify Tool Tag Structure from Array of Strings to List of Objects
- β #1503 - [Feature Request]: Add additional uv examples to README (Windows Powershell example)
- β #1560 - [Feature Request]: Test Button for Resource
π Bugs - Completed (45)
- β #464 - [Bug]: MCP Server "Active" status not getting updated under "Gateways/MCP Servers" when the MCP Server shutdown
- β #1143 - [Bug]: Adding any server in MCP Registry fails.
- β #1180 - [Bug]: Edit prompt does not send team_id in form data
- β #1184 - [Bug]: Update Prompt and Resource endpoints to use unique IDs instead of name or uri
- β #1190 - [Bug]: In 0.7.0 Accessing Virtual MCP server requires OAUTH, earlier it worked with JWT
- β #1193 - [Bug]: Auth-REQUIRED=false does not work
- β #1230 - [Bug]: Current pyproject.toml configuration of optional project components contains conflicting components that need to be resolved for uv.
- β #1259 - [Bug]: MCP Resource is not getting listed
- β #1278 - [Bug]: https mcp servers with self signed certificate not able to add
- β #1280 - [Bug] Non-standard redirect handling in _validate_gateway_url for STREAMABLEHTTP transport
- β #1287 - [Bug]: Unable to use sso service with corporate CA
- β #1317 - [Bug]: API Token Expiries at 7 days even if we select expiry at 365 days
- β #1319 - [Bug]: Export virtual server configuration URL not respecting APP_ROOT_PATH
- β #1321 - [Bug]: Created date shows as Invalid Date in API Tokens list
- β #1327 - [Bug]: iFrame context-forge giving error "ancestor violates Content Security Policy directive"
- β #1328 - [Bug]: Output validation error: outputSchema defined but no structured output returned when not setting any output schema.
- β #1351 - init in root directory - Huh?
- β #1370 - [Bug]: Configured Custom Headers do not show up when editing MCP servers
- β #1395 - [Bug]: tool schema team_id not effective
- β #1406 - [Bug]: Missing Structured Content for Virtual Server in Streamable HTTP Response
- β #1447 - [Bug]: UI bug in the Metrics Tab, The Navigate page for Tools tab bottom starts from page 66 instead of 1
- β #1448 - [Bug]: One time auth restricts addition of multiple gateways with same URL since the Auth is None
- β #1451 - [Bug]: Bug in Plugin Tab of ContextForge - Gateway Administration, PIIFilterPlugin is Enabled but doesn't mask email id and Phone number
- β #1452 - [Bug]: Issues Identified in MCP Server Admin UI
- β #1453 - [Bug]: Gateway creation under team scope returns team id as Null
- β #1462 - [Bug]: TARGETPLATFORM argument not always populated depending on container runtime during build
- β #1464 - [Bug]: no cursor is displayed at the text input fields
- β #1467 - [Bug]: Resource cache not invalidated when gateway deleted
- β #1485 - [Bug]: Tool name update silently fails
- β #1495 - [Bug]: Context set from one hook is not available in another hook
- β #1506 - [Bug]: Centralized Event Service for Multi-Worker Environments for all services
- β #1517 - [Bug]: SQLite-specific json_extract() breaks PostgreSQL observability queries
- β #1522 - [Bug]: Implement Concurrent Health Checks for gateways instead of sequential
- β #1523 - [Bug]: Severe Performance Degradation Due to N+1 Queries and Non-Batch Operations in Gateway/Tool/Server Services
- β #1540 - [Bug]: Adding MCP Servers failing in 0.9.0
- β #1542 - [Bug]: Fetching Tools From MCP lacks logs
- β #1544 - [Bug]: "Show Inactive" toggle missing in Virtual Servers tab in Admin UI
- β #1545 - [Bug]: HTTP 404 When Editing Inactive Resource from Admin UI
- β #1550 - [Bug]: app_user_email not propagated to plugin global context if a context already exists
- β #1553 - [Bug]: When I define a tag on an MCP Server tool invocation fails
- β #1566 - [Bug]: Admin Search Lacks Gateway-Based Filtering & Virtual Server Selection Does Not Persist
- β #1572 - [Bug]: When attempting to delete a virtual server that is not found - it returns wrong status code
- β #1577 - [Bug]: Support for Passphrase Protected SSL Keys in HTTPS Configuration for Gunicorn/Uvicorn
- β #1596 - [Bug]: Users api should use get_current_user_with_permissions
- β #1602 - [Bug]: Get Call to /version api resulting in 500 Internal error
π Security - Completed (1)
- β #221 - [SECURITY FEATURE]: Gateway-Level Input Validation & Output Sanitization (prevent traversal)
π§ Chores - Completed (3)
- β #806 - [CHORE]: Bulk Import β Missing error messages and registration feedback in UI
- β #1461 - [CHORE]: Multiple virtual environments created mean certain make tasks do not work as expected locally and potentially in cicd flows
- β #1505 - [CHORE]: Standardize Active-State Field Names and Add UUID Support for Prompts & Resources
π Documentation - Completed (2)
π§ͺ Tests - Completed (1)
- β #1418 - [Test]: QA Plan for Shortlist of Plugins
Release 0.9.0ΒΆ
Release 0.9.0 - Completed (100%)
Due: 04 Nov 2025 | Status: Closed Interoperability, marketplaces & advanced connectivity
π Epics - Completed (4)
- β #1225 - Epic: Production-Scale Load Data Generator for Multi-Tenant Testing
- β #1249 - π¦ Epic: Rust-Powered PII Filter Plugin - 5-10x Performance Improvement
- β #1292 - [Epic] ποΈ Performance - Brotli/Zstd/GZip Response Compression
- β #1294 - [Epic] β‘ Performance - orjson JSON Serialization
β¨ Features - Completed (16)
- β #277 - [Feature Request]: Authentication & Authorization - GitHub SSO Integration Tutorial (Depends on #220)
- β #835 - [Feature Request]: Adding Custom annotation for the tools
- β #869 - [Question]: 0.7.0 Release timeline
- β #967 - UI Gaps in Multi-Tenancy Support - Visibility fields missing for most resource types
- β #969 - Backend Multi-Tenancy Issues - Critical bugs and missing features
- β #1020 - [Feature] Edit Button Functionality - A2A
- β #1093 - [Feature Request]: Role-Based Access Control (RBAC) - support generic oAuth provider or ldap provider
- β #1111 - [Feature Request]: Support application/x-www-form-urlencoded Requests in ContextForge UI for OAuth2 / Keycloak Integration
- β #1137 - [Feature Request]: Add missing hooks to OPA plugin
- β #1197 - [Feature]: Support Bundle Generation - Automated Diagnostics Collection
- β #1200 - [Feature Request]: In built MCP client - LLM Chat service for virtual servers with agentic capabilities and MCP Enabled Tool Orchestration
- β #1209 - [Feature]: Finalize RBAC / ABAC implementation to Implement Ownership Checks for Public Resources
- β #1228 - [Feature] Show system statistics in metrics page
- β #1239 - LLMChat Multi-Worker: Add Documentation and Integration Tests (PR #1236 Follow-up)
- β #1336 - [Feature Request]: Add toggles to password/sensitive textboxes to mask/unmask the input value.
- β #1348 - [Feature Request]: Add support for IBM Watsonx.ai LLM provider
π Bugs - Completed (18)
- β #409 - [Bug]: Add configurable limits for data cleaning / XSS prevention in .env.example and helm
- β #448 - [Bug]:MCP server with custom base path "/api" instead of "mcp" or "sse" is not working
- β #625 - [Bug]: Gateway unable to register gateway or call tools on MacOS
- β #861 - [Bug]: Passthrough header parameters not persisted to database
- β #922 - [Bug]: In 0.6.0 Version, IFraming the admin UI is not working.
- β #926 - [BUG] Bootstrap fails to assign platform_admin role due to foreign key constraint violation
- β #945 - [Bug]: Unique Constraint is not allowing Users to create servers/tools/resources/prompts with Names already used by another User
- β #946 - [Bug]: Alembic migrations fails in docker compose setup
- β #1024 - [Bug]: plugin that is using tool_prefetch hook cannot access PASSTHROUGH_HEADERS, tags for an MCP Server Need MCP-GW restart
- β #1092 - [Bug]: after issue 1078 change, how to add X-Upstream-Authorization header when click Authorize in admin UI
- β #1094 - [Bug]: Creating an MCP OAUTH2 server fails if using API.
- β #1098 - [Bug]:Unable to see request payload being sent
- β #1222 - [Bug]: Missing name conflict detection for private visibility resources
- β #1248 - [Bug]: RBAC Vulnerability: Unauthorized Access to Resource Status Toggling
- β #1254 - [Bug]: JWT jti mismatch between token and database record
- β #1258 - [Bug]: MCP Tool outputSchema Field is Stripped During Discovery
- β #1261 - [Bug]: API Token Expiry Issue: UI Configuration overridden by default env Variable
- β #1381 - [Bug]: Resource view error - mime type handling for resource added via mcp server
Release 0.8.0 - Enterprise Security & Policy GuardrailsΒΆ
Release 0.8.0 - Completed (100%)
Due: 07 Oct 2025 | Status: Closed Enterprise Security & Policy Guardrails
β¨ Completed Features (17)
- β #1176 - [Feature Request]: Implement Team-Level Scoping for API Tokens
- β #1043 - [Feature]: Sample MCP Server - Implement Pandoc MCP server in Go
- β #1035 - [Feature Request]: Add "Team" Column to All Admin UI Tables (Tools, Gateway Server, Virtual Servers, Prompts, Resources)
- β #979 - [Feature Request]: OAuth Dynamic Client Registration
- β #964 - Support dynamic environment variable injection in mcpgateway.translate for STDIO MCP servers
- β #920 - Sample MCP Server - Go (calculator-server)
- β #900 - Sample MCP Server - Python (data-analysis-server)
- β #699 - [Feature]: Metrics Enhancement (export all data, capture all metrics, fix last used timestamps, UI improvements)
- β #298 - [Feature Request]: A2A Initial Support - Add A2A Servers as Tools
- β #243 - [Feature Request]: a2a compatibility?
- β #229 - [SECURITY FEATURE]: Guardrails - Input/Output Sanitization & PII Masking
- β #1045 - Sample MCP Server - Python (docx-server)
- β #1052 - Sample MCP Server - Python (chunker-server)
- β #1053 - Sample MCP Server - Python (code-splitter-server)
- β #1054 - Sample MCP Server - Python (xlsx-server)
- β #1055 - Sample MCP Server - Python (libreoffice-server)
- β #1056 - Sample MCP Server - Python (csv-pandas-chat-server)
π Completed Bugs (16)
- β #1178 - [Bug]: The header in UI overlaps with all the modals
- β #1117 - [Bug]:Login not working with 0.7.0 version
- β #1109 - [Bug]:ContextForge UI OAuth2 Integration Fails with Keycloak Due to Missing x-www-form-urlencoded Support
- β #1104 - [Bug]: X-Upstream-Authorization Header Not Working When Auth Type is None
- β #1101 - [Bug]:login issue
- β #1078 - [Bug]: OAuth Token Multi-Tenancy Support: User-Specific Token Handling Required
- β #1048 - [Bug]: Login issue - Serving over HTTP requires SECURE_COOKIES=false (warning required)
- β #1046 - [Bug]: pass-through headers are not functioning as expected
- β #1039 - [Bug]:Update Gateway fails
- β #1025 - [Bug]:After edit/save of an MCP Server with OAUTh2 Authentication I need to also fetch tools.
- β #1022 - [Bug] "Join Request" button shows no pending request for team membership
- β #959 - [Bug]: Unable to Re-add Team Member Due to Unique Constraint on (team_id, user_email)
- β #949 - [Bug]: Tool invocation for an MCP server authorized by OAUTH2 fails
- β #948 - [Bug]:MCP OAUTH2 authenticate server is shown as offline after is added
- β #941 - [Bug]: Access Token scoping not working
- β #939 - [Bug]: Missing Document links in SSO page for Team/RBAC management
π§ Completed Chores (3)
- β #931 - [Bug]: Helm install does not work when kubeVersion has vendor specific suffix
- β #867 - [Bug]: update_gateway does not persist passthrough_headers field
- β #845 - [Bug]:2025-08-28 05:47:06,733 - mcpgateway.services.gateway_service - ERROR - FileLock health check failed: can't start new thread
π Completed Documentation (3)
π Completed Plugin Features (29)
- β #1077 - [Plugin] Create ClamAV External Plugin using Plugin Framework
- β #1076 - [Plugin] Create Summarizer Plugin using Plugin Framework
- β #1075 - [Plugin] Create Watchdog Plugin using Plugin Framework
- β #1074 - [Plugin] Create Timezone Translator Plugin using Plugin Framework
- β #1073 - [Plugin] Create Privacy Notice Injector Plugin using Plugin Framework
- β #1072 - [Plugin] Create License Header Injector Plugin using Plugin Framework
- β #1071 - [Plugin] Create Response Cache by Prompt Plugin using Plugin Framework
- β #1070 - [Plugin] Create Circuit Breaker Plugin using Plugin Framework
- β #1069 - [Plugin] Create Citation Validator Plugin using Plugin Framework
- β #1068 - [Plugin] Create Code Formatter Plugin using Plugin Framework
- β #1067 - [Plugin] Create AI Artifacts Normalizer Plugin using Plugin Framework
- β #1066 - [Plugin] Create Robots License Guard Plugin using Plugin Framework
- β #1065 - [Plugin] Create SQL Sanitizer Plugin using Plugin Framework
- β #1064 - [Plugin] Create Harmful Content Detector Plugin using Plugin Framework
- β #1063 - [Plugin] Create Safe HTML Sanitizer Plugin using Plugin Framework
- β #1005 - [Plugin] Create VirusTotal Checker Plugin using Plugin Framework
- β #1004 - [Plugin] Create URL Reputation Plugin using Plugin Framework
- β #1003 - [Plugin] Create Schema Guard Plugin using Plugin Framework
- β #1002 - [Plugin] Create Retry with Backoff Plugin using Plugin Framework
- β #1001 - [Plugin] Create Rate Limiter Plugin using Plugin Framework
- β #1000 - [Plugin] Create Output Length Guard Plugin using Plugin Framework
- β #999 - [Plugin] Create Markdown Cleaner Plugin using Plugin Framework
- β #998 - [Plugin] Create JSON Repair Plugin using Plugin Framework
- β #997 - [Plugin] Create HTML to Markdown Plugin using Plugin Framework
- β #996 - [Plugin] Create File Type Allowlist Plugin using Plugin Framework
- β #995 - [Plugin] Create Code Safety Linter Plugin using Plugin Framework
- β #994 - [Plugin] Create Cached Tool Result Plugin using Plugin Framework
- β #895 - [Plugin] Create Header Injector Plugin using Plugin Framework
- β #894 - [Plugin] Create Secrets Detection Plugin using Plugin Framework
- β #893 - [Plugin] Create JSON Schema Validator Plugin using Plugin Framework
π¦ Completed Sample Servers (10)
- β #1062 - Sample MCP Server - Python (url-to-markdown-server)
- β #1061 - Sample MCP Server - Python (python-sandbox-server)
- β #1060 - Sample MCP Server - Python (latex-server)
- β #1059 - Sample MCP Server - Python (graphviz-server)
- β #1058 - Sample MCP Server - Python (mermaid-server)
- β #1057 - Sample MCP Server - Python (plotly-server)
- β #841 - [Bug]: For A2A Agent, tools are not getting listed under Global Tools
- β #839 - [Bug]:Getting 401 un-authorized on Testing tools in "In-Cognito" mode.
- β #836 - [Bug]: Server Tags Not Propagated to Tools via /tools Endpoint
Release 0.7.0 - Multitenancy and RBAC (Private/Team/Global catalogs), Extended Connectivity, Core Observability & Starter Agents (OpenAI and A2A)ΒΆ
Release 0.7.0 - Completed (100%)
Due: 16 Sep 2025 | Status: Closed Multitenancy and RBAC (Private/Team/Global catalogs), Extended Connectivity, Core Observability & Starter Agents (OpenAI and A2A)
β¨ Completed Features (21)
- β #989 - [Feature Request]: Sample MCP Server - Python PowerPoint Editor (python-pptx)
- β #986 - Plugin Request: Implement Argument Normalizer Plugin (Native)
- β #928 - Migrate container base images from UBI9 to UBI10 and Python from 3.11 to 3.12
- β #925 - Add MySQL database support to ContextForge
- β #860 - [EPIC]: Complete Enterprise Multi-Tenancy System with Team-Based Resource Scoping
- β #859 - [Feature Request]: Authentication & Authorization - IBM Security Verify Enterprise SSO Integration (Depends on #220)
- β #846 - [Bug]: Editing server converts hex UUID to hyphenated UUID format, lacks error handling
- β #844 - [Bug]: Creating a new virtual server with a custom UUID, removes the "-" hyphens from the UUID field.
- β #831 - [Bug]: Newly added or deleted tools are not reflected in Global Tools tab after server reactivation
- β #822 - [Bug]: Incorrect _sleep_with_jitter Method Call
- β #820 - [Bug]: Unable to create a new server with custom UUID
- β #605 - [Feature Request]: Access to remote MCP Servers/Tools via OAuth on behalf of Users
- β #570 - [Feature Request]: Word wrap in codemirror
- β #544 - [SECURITY FEATURE]: Database-Backed User Authentication with Argon2id (replace BASIC auth)
- β #491 - [Feature Request]: UI Keyboard shortcuts
- β #426 - [SECURITY FEATURE]: Configurable Password and Secret Policy Engine
- β #283 - [SECURITY FEATURE]: Role-Based Access Control (RBAC) - User/Team/Global Scopes for full multi-tenancy support
- β #282 - [SECURITY FEATURE]: Per-Virtual-Server API Keys with Scoped Access
- β #278 - [Feature Request]: Authentication & Authorization - Google SSO Integration Tutorial (Depends on #220)
- β #220 - [AUTH FEATURE]: Authentication & Authorization - SSO + Identity-Provider Integration
- β #87 - [Feature Request]: Epic: Secure JWT Token Catalog with Per-User Expiry and Revocation
π Completed Bugs (5)
π Completed Documentation (4)
- β #818 - [Docs]: Readme ghcr.io/ibm/mcp-context-forge:0.6.0 image still building
- β #323 - [Docs]: Add Developer Guide for using fast-time-server via JSON-RPC commands using curl or stdio
- β #19 - [Docs]: Add Developer Guide for using MCP via the CLI (curl commands, JSON-RPC)
- β #834 - [Bug]: Existing tool configurations are not updating after changes to the MCP server configuration.
Release 0.6.0 - Security, Scale & Smart AutomationΒΆ
Release 0.6.0 - Completed (100%)
Due: 19 Aug 2025 | Status: Closed Security, Scale & Smart Automation
β¨ Completed Features (30)
- β #773 - [Feature]: add support for external plugins
- β #749 - [Feature Request]: MCP Reverse Proxy - Bridge Local Servers to Remote Gateways
- β #737 - [Feature Request]: Bulk Tool Import
- β #735 - [Epic]: Vendor Agnostic OpenTelemetry Observability Support
- β #727 - [Feature]: Phoenix Observability Integration plugin
- β #720 - [Feature]: Add CLI for authoring and packaging plugins
- β #708 - [Feature Request]: MCP Elicitation (v2025-06-18)
- β #705 - [Feature Request]: Option to completely remove Bearer token auth to MCP gateway
- β #690 - [Feature] Make SSE Keepalive Events Configurable
- β #682 - [Feature]: Add tool hooks (tool_pre_invoke / tool_post_invoke) to plugin system
- β #673 - [ARCHITECTURE] Identify Next Steps for Plugin Development
- β #672 - [CHORE]: Part 2: Replace Raw Errors with Friendly Messages in main.py
- β #668 - [Feature Request]: Add Null Checks and Improve Error Handling in Frontend Form Handlers (admin.js)
- β #586 - [Feature Request]: Tag support with editing and validation across all APIs endpoints and UI (tags)
- β #540 - [SECURITY FEATURE]: Configurable Well-Known URI Handler including security.txt and robots.txt
- β #533 - [SECURITY FEATURE]: Add Additional Configurable Security Headers to APIs for Admin UI
- β #492 - [Feature Request]: Change UI ID field name to UUID
- β #452 - [Bug]: integrationType should only support REST, not MCP (Remove Integration Type: MCP)
- β #405 - [Bug]: Fix the go time server annotation (it shows as destructive)
- β #404 - [Feature Request]: Add resources and prompts/prompt templates to time server
- β #380 - [Feature Request]: REST Endpoints for Go fast-time-server
- β #368 - [Feature Request]: Enhance Metrics Tab UI with Virtual Servers and Top 5 Performance Tables
- β #364 - [Feature Request]: Add Log File Support to ContextForge
- β #344 - [CHORE]: Implement additional security headers and CORS configuration
- β #320 - [Feature Request]: Update Streamable HTTP to fully support Virtual Servers
- β #319 - [Feature Request]: AI Middleware Integration / Plugin Framework for extensible gateway capabilities
- β #317 - [CHORE]: Script to add relative file path header to each file and verify top level docstring
- β #315 - [CHORE] Check SPDX headers Makefile and GitHub Actions target - ensure all files have File, Author(s) and SPDX headers
- β #313 - [DESIGN]: Architecture Decisions and Discussions for AI Middleware and Plugin Framework (Enables #319)
- β #208 - [AUTH FEATURE]: HTTP Header Passthrough (forward headers to MCP server)
π Completed Bugs (22)
- β #774 - [Bug]: Tools Annotations not working and need specificity for mentioning annotations
- β #765 - [Bug]: illegal IP address string passed to inet_aton during discovery process
- β #753 - [BUG] Tool invocation returns 'Invalid method' error after PR #746
- β #744 - [BUG] Gateway fails to connect to services behind CDNs/load balancers due to DNS resolution
- β #741 - [Bug]: Enhance Server Creation/Editing UI for Prompt and Resource Association
- β #728 - [Bug]: Streamable HTTP Translation Feature: Connects but Fails to List Tools, Resources, or Support Tool Calls
- β #716 - [Bug]: Resources and Prompts not displaying in Admin Dashboard while Tools are visible
- β #704 - [Bug]: Virtual Servers don't actually work as advertised v0.5.0
- β #696 - [Bug]: SSE Tool Invocation Fails After Integration Type Migration post PR #678
- β #694 - [BUG]: Enhanced Validation Missing in GatewayCreate
- β #689 - Getting "Unknown SSE event: keepalive" when trying to use virtual servers
- β #685 - [Bug]: Multiple Fixes and improved security for HTTP Header Passthrough Feature
- β #666 - [Bug]:Vague/Unclear Error Message "Validation Failed" When Adding a REST Tool
- β #661 - [Bug]: Database migration runs during doctest execution
- β #649 - [Bug]: Duplicate Gateway Registration with Equivalent URLs Bypasses Uniqueness Check
- β #646 - [Bug]: MCP Server/Federated Gateway Registration is failing
- β #560 - [Bug]: Can't list tools when running inside of a docker
- β #557 - [BUG] Cleanup tool descriptions to remove newlines and truncate text
- β #526 - [Bug]: Unable to add multiple headers when adding a gateway through UI (draft)
- β #520 - [Bug]: Resource mime-type is always stored as text/plain
- β #518 - [Bug]: Runtime error from Redis when multiple sessions exist
- β #417 - [Bug]: Intermittent doctest failure in /mcpgateway/cache/resource_cache.py:7
π§ Completed Chores (8)
- β #481 - [Bug]: Intermittent test_resource_cache.py::test_expiration - AssertionError: assert 'bar' is None (draft)
- β #480 - [Bug]: Alembic treated as first party dependency by isort
- β #479 - [Bug]: Update make commands for alembic
- β #478 - [Bug]: Alembic migration is broken
- β #436 - [Bug]: Verify content length using the content itself when the content-length header is absent.
- β #280 - [CHORE]: Add mutation testing with mutmut for test quality validation
- β #256 - [CHORE]: Implement comprehensive fuzz testing automation and Makefile targets (hypothesis, atheris, schemathesis , RESTler)
- β #254 - [CHORE]: Async Code Testing and Performance Profiling Makefile targets (flake8-async, cprofile, snakeviz, aiomonitor)
π Completed Documentation (4)
- β #306 - Quick Start (manual install) gunicorn fails
- β #186 - [Feature Request]: Granular Configuration Export & Import (via UI & API)
- β #185 - [Feature Request]: Portable Configuration Export & Import CLI (registry, virtual servers and prompts)
- β
#94 - [Feature Request]: Transport-Translation Bridge (
mcpgateway.translate) any to any protocol conversion cli tool
β Completed Questions (3)
π¦ Completed Sample Servers (3)
Release 0.5.0 - Enterprise Operability, Auth, Configuration & ObservabilityΒΆ
Release 0.5.0 - Completed (100%)
Due: 05 Aug 2025 | Status: Closed Enterprise Operability, Auth, Configuration & Observability
β¨ Completed Features (4)
- β #663 - [Feature Request]: Add basic auth support for API Docs
- β #623 - [Feature Request]: Display default values from input_schema in test tool screen
- β #506 - [Feature Request]: New column for "MCP Server Name" in Global tools/resources etc
- β #392 - [Feature Request]: UI checkbox selection for servers, tools, and resources
π Completed Bugs (20)
- β #631 - [Bug]: Inconsistency in acceptable length of Tool Names for tools created via UI and programmatically
- β #630 - [Bug]: Gateway update fails silently in UI, backend throws ValidationInfo error
- β #622 - [Bug]: Test tool UI passes boolean inputs as on/off instead of true/false
- β #620 - [Bug]: Test tool UI passes array inputs as strings
- β #613 - [Bug]: Fix lint-web issues in admin.js
- β #610 - [Bug]: Edit tool in Admin UI sends invalid "STREAMABLE" value for Request Type
- β #603 - [Bug]: Unexpected error when registering a gateway with the same name.
- β #601 - [Bug]: APIs for gateways in admin and main do not mask auth values
- β #598 - [Bug]: Long input names in tool creation reflected back to user in error message
- β #591 - [Bug] Edit Prompt Fails When Template Field Is Empty
- β #584 - [Bug]: Can't register Github MCP Server in the MCP Registry
- β #579 - [Bug]: Edit tool update fail integration_type="REST"
- β #578 - [Bug]: Adding invalid gateway URL does not return an error immediately
- β #521 - [Bug]: Gateway ID returned as null by Gateway Create API
- β #507 - [Bug]: Makefile missing .PHONY declarations and other issues
- β #434 - [Bug]: Logs show"Invalid HTTP request received"
- β #430 - [Bug]: make serve doesn't check if I'm already running an instance (run-gunicorn.sh) letting me start the server multiple times
- β #423 - [Bug]: Redundant Conditional Expression in Content Validation
- β #373 - [Bug]: Clarify Difference Between "Reachable" and "Available" Status in Version Info
- β #357 - [Bug]: Improve consistency of displaying error messages
π Completed Security (1)
- β #425 - [SECURITY FEATURE]: Make JWT Token Expiration Mandatory when REQUIRE_TOKEN_EXPIRATION=true (depends on #87)
π§ Completed Chores (9)
- β #638 - [CHORE]: Add Makefile and GitHub Actions support for Snyk (test, code-test, container-test, helm charts)
- β #615 - [CHORE]: Add pypi package linters: check-manifest pyroma and verify target to GitHub Actions
- β #590 - [CHORE]: Integrate DevSkim static analysis tool via Makefile
- β
#410 - [CHORE]: Add
make lint filename|dirnametarget to Makefile - β #403 - [CHORE]: Add time server (and configure it post-deploy) to docker-compose.yaml
- β #397 - [CHORE]: Migrate run-gunicorn-v2.sh to run-gunicorn.sh and have a single file (improved startup script with configurable flags)
- β #390 - [CHORE]: Add lint-web to CI/CD and add additional linters to Makefile (jshint jscpd markuplint)
- β #365 - [CHORE]: Fix Database Migration Commands in Makefile
- β #363 - [CHORE]: Improve Error Messages - Replace Raw Technical Errors with User-Friendly Messages
Release 0.4.0 - Bugfixes, Security, Resilience (retry with exponential backoff), code quality and technical debt (test coverage, linting, security scans, GitHub Actions, Makefile, Helm improvements)ΒΆ
Release 0.4.0 - Completed (100%)
Due: 22 Jul 2025 | Status: Closed Bugfixes, Security, Resilience (retry with exponential backoff), code quality and technical debt (test coverage, linting, security scans, GitHub Actions, Makefile, Helm improvements)
β¨ Completed Features (9)
- β #456 - [Feature Request]: HTTPX Client with Smart Retry and Backoff Mechanism
- β #351 - CHORE: Checklist for complete End-to-End Validation Testing for All API Endpoints, UI and Data Validation
- β #340 - [Security]: Add input validation for main API endpoints (depends on #339 /admin API validation)
- β #339 - [Security]: Add input validation for /admin endpoints
- β #338 - [Security]: Eliminate all lint issues in web stack
- β #336 - [Security]: Implement output escaping for user data in UI
- β #233 - [Feature Request]: Contextual Hover-Help Tooltips in UI
- β #181 - [Feature Request]: Test MCP Server Connectivity Debugging Tool
- β #177 - [Feature Request]: Persistent Admin UI Filter State
π Completed Bugs (26)
- β #508 - [BUG]: "PATCH" in global tools while creating REST API integration through UI
- β #495 - [Bug]: test_admin_tool_name_conflict creates record in actual db
- β #476 - [Bug]:UI Does Not Show Error for Duplicate Server Name
- β
#472 - [Bug]: auth_username and auth_password not getting set in GET /gateways/
API - β #471 - [Bug]: _populate_auth not working
- β #424 - [Bug]: ContextForge Doesn't Detect HTTPS/TLS Context or respect X-Forwarded-Proto when using Federation
- β #419 - [Bug]: Remove unused lock_file_path from config.py (trips up bandit)
- β #416 - [Bug]: Achieve 100% bandit lint for version.py (remove git command from version.py, tests and UI and rely on semantic version only)
- β #412 - [Bug]: Replace assert statements with explicit error handling in translate.py and fix bandit lint issues
- β #396 - [Bug]: Test server URL does not work correctly
- β #387 - [Bug]: Respect GATEWAY_TOOL_NAME_SEPARATOR for gateway slug
- β #384 - [Bug]: Push image to GHCR incorrectly runs in PR
- β #382 - [Bug]: API incorrectly shows version, use semantic version from init
- β #378 - [Bug] Fix Unit Tests to Handle UI-Disabled Mode
- β #374 - [Bug]: Fix "metrics-loading" Element Not Found Console Warning
- β #371 - [Bug]: Fix Makefile to let you pick docker or podman and work consistently with the right image name
- β #369 - [Bug]: Fix Version Endpoint to Include Semantic Version (Not Just Git Revision)
- β #367 - [Bug]: Fix "Test Server Connectivity" Feature in Admin UI
- β #366 - [Bug]: Fix Dark Theme Visibility Issues in Admin UI
- β #361 - [Bug]: Prompt and RPC Endpoints Accept XSS Content Without Validation Error
- β #359 - [BUG]: Gateway validation accepts invalid transport types
- β #356 - [Bug]: Annotations not editable
- β #355 - [Bug]: Large empty space after line number in text boxes
- β #354 - [Bug]: Edit screens not populating fields
- β #352 - [Bug]: Resources - All data going into content
- β
#213 - [Bug]:Can't use
STREAMABLEHTTP
π Completed Security (1)
- β #552 - [SECURITY CHORE]: Add comprehensive input validation security test suite
π§ Completed Chores (13)
- β #558 - [CHORE]: Ignore tests/security/test_input_validation.py in pre-commit for bidi-controls
- β #499 - [CHORE]: Add nodejsscan security scanner
- β #467 - [CHORE]: Achieve 100% docstring coverage (make interrogate) - currently at 96.3%
- β #433 - [CHORE]: Fix all Makefile targets to work without pre-activated venv and check for OS depends
- β #421 - [CHORE]: Achieve zero flagged Bandit issues
- β #415 - [CHORE]: Additional Python Security Scanners
- β #399 - [Test]: Create e2e acceptance test docs
- β #375 - [CHORE]: Fix yamllint to Ignore node_modules Directory
- β #362 - [CHORE]: Implement Docker HEALTHCHECK
- β #305 - [CHORE]: Add vulture (dead code detect) and unimport (unused import detect) to Makefile and GitHub Actions
- β #279 - [CHORE]: Implement security audit and vulnerability scanning with grype in Makefile and GitHub Actions
- β #249 - [CHORE]: Achieve 60% doctest coverage and add Makefile and CI/CD targets for doctest and coverage
- β #210 - [CHORE]: Raise pylint from 9.16/10 -> 10/10
π Completed Documentation (3)
Release 0.3.0 - Annotations and multi-server tool federationsΒΆ
Release 0.3.0 - Completed (100%)
Due: 08 Jul 2025 | Status: Closed Annotations and multi-server tool federations
β¨ Completed Features (8)
- β #265 - [Feature Request]: Sample MCP Server - Go (fast-time-server)
- β #179 - [Feature Request]: Configurable Connection Retries for DB and Redis
- β #159 - [Feature Request]: Add auto activation of mcp-server, when it goes up back again
- β #154 - [Feature Request]: Export connection strings to various clients from UI and via API
- β #135 - [Feature Request]: Dynamic UI Picker for Tool, Resource, and Prompt Associations
- β #116 - [Feature Request]: Namespace Composite Key & UUIDs for Tool Identity
- β #100 - Add path parameter or replace value in input payload for a REST API?
- β #26 - [Feature]: Add dark mode toggle to Admin UI
π Completed Bugs (9)
- β #316 - [Bug]: Correctly create filelock_path: str = "tmp/gateway_service_leader.lock" in /tmp not current directory
- β
#303 - [Bug]: Update manager.py and admin.js removed
is_activefield - replace with separateenabledandreachablefields from migration - β
#302 - [Bug]: Alembic configuration not packaged with pip wheel,
pip install . && mcpgatewayfails on db migration - β #197 - [Bug]: Pytest run exposes warnings from outdated Pydantic patterns, deprecated stdlib functions
- β #189 - [Bug]: Close button for parameter input scheme does not work
- β #152 - [Bug]: not able to add Github Remote Server
- β #132 - [Bug]: SBOM Generation Failure
- β #131 - [Bug]: Documentation Generation fails due to error in Makefile's image target
- β #28 - [Bug]: Reactivating a gateway logs warning due to 'dict' object used as Pydantic model
π Completed Documentation (1)
- β #18 - [Docs]: Add Developer Workstation Setup Guide for Mac (Intel/ARM), Linux, and Windows
Release 0.2.0 - Streamable HTTP, Infra-as-Code, Dark ModeΒΆ
Release 0.2.0 - Completed (100%)
Due: 24 Jun 2025 | Status: Closed Streamable HTTP, Infra-as-Code, Dark Mode
β¨ Completed Features (3)
π Completed Bugs (2)
π Completed Documentation (3)
Release 0.1.0 - Initial releaseΒΆ
Release 0.1.0 - Completed (100%)
Due: 05 Jun 2025 | Status: Closed Initial release
β¨ Completed Features (3)
π Completed Bugs (3)
π Completed Documentation (2)
LegendΒΆ
- β¨ Feature Request - New functionality or enhancement
- π Bug - Issues that need to be fixed
- π Security - Security features and improvements
- β‘ Performance - Performance optimizations
- π§ Chore - Maintenance, tooling, or infrastructure work
- π Documentation - Documentation improvements or additions
- π Plugin Features - Plugin framework and plugin implementations
- π¦ Sample Servers - Sample MCP server implementations
- β Question - User questions (typically closed after resolution)
- β Completed - Issue has been resolved and closed
Contributing
Want to contribute to any of these features? Check out the individual GitHub issues for more details and discussion!