71 lines
3.2 KiB
Markdown
71 lines
3.2 KiB
Markdown
# Project TODO List
|
|
|
|
This document outlines the tasks that have been completed for the `mcp-bridge` project.
|
|
|
|
## Phase 1: Core Functionality
|
|
|
|
- [x] **Project Setup**
|
|
- [x] Initialize Git repository and connect to remote
|
|
- [x] Create directory structure (`/src`, `/test`, `/dist`)
|
|
- [x] Create placeholder `build-test-deploy.sh` and `install.sh`
|
|
- [x] **Configuration Handling**
|
|
- [x] Implement YAML parsing for `config.yaml`
|
|
- [x] Implement loading of service-specific YAML files
|
|
- [x] Finalize YAML structure (e.g., use a map for services, add `command` for adapter)
|
|
- [x] **HTTP Server**
|
|
- [x] Create basic HTTP server that binds to `localhost`
|
|
- [x] Implement configurable port via command-line flag
|
|
- [x] **MCP Adapter Management**
|
|
- [x] Implement logic to spawn MCP adapters as child processes
|
|
- [x] Manage the lifecycle of adapter processes (start, stop)
|
|
- [x] **MCP Communication**
|
|
- [x] Implement `stdio`-based communication with child processes
|
|
- [x] Implement JSON-RPC 2.0 message serialization/deserialization
|
|
- [x] **Request Routing**
|
|
- [x] Implement handler to parse `?service=` query parameter
|
|
- [x] Route incoming HTTP requests to the correct MCP service based on the query param
|
|
- [x] Handle default service logic when the query param is omitted
|
|
|
|
## Phase 2: Features & Refinements
|
|
|
|
- [x] **Endpoint Mapping**
|
|
- [x] Map HTTP POST requests to the `tools/call` MCP method
|
|
- [x] Pass request body as parameters to the MCP call
|
|
- [x] **Error Handling**
|
|
- [x] Translate MCP errors to appropriate HTTP status codes (400, 500)
|
|
- [x] Implement graceful handling for config errors, missing services, etc.
|
|
- [x] **Logging**
|
|
- [x] Add structured logging for requests, responses, and errors
|
|
- [x] Implement configurable verbosity via a command-line flag (e.g., `-v`)
|
|
- [x] **Configuration Reload**
|
|
- [x] Implement dynamic config reload via `SIGHUP` signal
|
|
- [x] Implement `/reload` HTTP endpoint
|
|
- [x] Define and implement session/process behavior on reload
|
|
|
|
## Phase 3: Testing & Distribution
|
|
|
|
- [x] **Build & Installation Scripts**
|
|
- [x] Populate `build-test-deploy.sh` to compile for multiple architectures (macOS, Linux, Windows) and place binaries in `./dist`
|
|
- [x] Populate `install.sh` to download and install the correct binary for the user's system
|
|
- [x] **Testing**
|
|
- [x] Create basic unit tests for HTTP handling and request routing in `/test`
|
|
- [x] Create integration tests for MCP communication
|
|
- [x] **Documentation**
|
|
- [x] Create `README.md` with comprehensive installation, configuration, and usage instructions
|
|
- [x] Provide sample `config.yaml` and `service1.yaml` files
|
|
- [x] **Finalization**
|
|
- [x] Commit compiled binaries to the `./dist` directory
|
|
- [x] Tag a version `v1.0.0`
|
|
|
|
## Version 1.0.0 Release Notes
|
|
|
|
The initial release of mcp-bridge includes:
|
|
|
|
- HTTP to JSON-RPC translation for MCP adapters
|
|
- Configurable HTTP endpoints mapped to MCP methods
|
|
- Dynamic configuration reloading via SIGHUP or HTTP endpoint
|
|
- Structured JSON logging with configurable verbosity
|
|
- Graceful shutdown and process management
|
|
- Support for multiple concurrent adapters
|
|
- Multi-architecture binaries (macOS/Linux, amd64/arm64)
|
|
- Comprehensive documentation and sample configurations |