Description
As a container user that runs MCP servers in Docker Desktop, I want to attach those to context-forge via STDIO so the context forge can expose those via /sse.
Current issue: running MCP servers that support only STDIO is cumbersome, not user-friendly, and can break dependencies if not containerized. Also something needs to start those servers. Docker Desktop offers an easy solution to run those servers via STDIO. We need conext-forge to be able to consume Conteinerized MCP Servers via STDIO.
🧭 Type of Feature
Please select the most appropriate category:
- [ X ] Enhancement to existing functionality
- New feature or capability
- [ X ] New MCP-compliant server
- New component or integration
- Developer tooling or test improvement
- Packaging, automation, and deployment (ex: pypi, docker, quay.io, kubernetes, terraform)
- Other (please describe below)
🧭 Epic
Title: Backend containerized MCP servers with STDIO
Goal: Docker Desktop offers a simple way to install MCP servers, most support only STDIO, i want context-forge to expose those via HTTP with Auth.
Why now: Simple to adopt for beginners. Backward compatibility.
🙋♂️ User Story 1
As a: container user running MCP servers in Docker Desktop
I want: to attach those STDIO-based servers to context-forge
So that: context-forge can expose them via /sse with authentication and can be reused with my MCP clients.
✅ Acceptance Criteria
Scenario: Connect STDIO-based MCP server running in a container
Given a containerized MCP server running with STDIO only
When context-forge is configured to connect via STDIO
Then the server is exposed via /sse endpoint with auth
Scenario: Auto-start STDIO-based MCP container
Given no active MCP server container
When context-forge is initialized
Then it starts the defined STDIO-based container automatically
🙋♂️ User Story 2
As a: beginner developer or non-infrastructure user
I want: to run STDIO-only MCP servers using Docker without manual networking setups
So that: I can develop and test without needing deep server configuration knowledge
✅ Acceptance Criteria
Scenario: Beginner sets up context-forge and Dockerized MCP servers
Given Docker Desktop is installed
When user launches context-forge with MCP server config
Then the container starts and is integrated via STDIO seamlessly
📐 Design Sketch (optional)
Include a diagram, sketch, or flow (use Mermaid if desired):
flowchart TD
A[Client] -->|POST /completions| B(Context Forge)
B -->|STDIO| C[Dockerized MCP Server]
🔗 MCP Standards Check
- [ X ] Change adheres to current MCP specifications
- [ X ] No breaking changes to existing MCP-compliant integrations
- [ X ] If deviations exist, please describe them below:
🔄 Alternatives Considered
- Manually connecting MCP servers over TCP or HTTP
- Custom scripts to proxy STDIO to HTTP
- Running standalone MCP servers outside container scope
All alternatives require more setup or break consistency with containerized workflows.
📓 Additional Context
Running non-communicable containerized MCP servers that support only STDIO is currently cumbersome and often breaks dependencies. Docker Desktop provides a convenient and reliable environment for such workloads. By allowing context-forge to connect to these via STDIO and expose them over /sse, users benefit from an easy, portable, and scalable local development setup.