@@ -236,3 +236,96 @@ Allow choosing which MCP protocol version each virtual server uses.
236
236
**Team-Level Scopes:** As a platform admin, I want to define teams and grant scopes to teams so that I can manage permissions for groups of users.
237
237
238
238
**Global Scopes:** As a platform admin, I want to set global default scopes so that baseline permissions apply to all users.
239
+
240
+
241
+ Here are the new markdown blocks for the two requested features:
242
+
243
+ ---
244
+
245
+ ## 🛠️ Developer Experience
246
+
247
+ Absolutely! Here are the two new features in your exact ` mkdocs-material ` + ` admonition ` format:
248
+
249
+ ---
250
+
251
+ ### 🧭 Epic: Chrome MCP Plugin Integration
252
+
253
+ ???+ "Browser-Based MCP Management"
254
+ ** Plugin Accessibility:**
255
+ As a developer, I want a Chrome extension to manage MCP configurations, servers, and connections directly from the browser
256
+ ** So that** I can reduce dependency on local CLI tools and improve accessibility.
257
+
258
+ ```
259
+ **Key Features:**
260
+ - **Real-Time Session Control:** Monitor and interact with MCP sessions via a browser UI.
261
+ - **Cross-Platform Compatibility:** Ensure the plugin works seamlessly across devices and operating systems.
262
+ - **Secure API Proxy:** Route requests securely via `mcpgateway.translate` or `mcpgateway.wrapper` for token-based access.
263
+
264
+ **Implementation Notes:**
265
+ - Distributed via the Chrome Web Store.
266
+ - Uses JWT tokens stored in extension config or injected from Admin UI.
267
+ - Interfaces with public `/servers`, `/tools`, `/resources`, and `/message` endpoints.
268
+ ```
269
+
270
+ ---
271
+
272
+ ### 🧭 Epic: Transport-Translation Bridge (` mcpgateway.translate ` )
273
+
274
+ ???+ "CLI Bridge for Any-to-Any Transport"
275
+ ** Goal:** As a CLI user or integrator, I want to bridge stdio-only MCP servers to modern transports like SSE, WS, or Streamable HTTP
276
+
277
+ **So that** I can use legacy binaries in web clients or tunnel remote services locally.
278
+
279
+ **Scenarios:**
280
+ - **Stdio ➜ SSE:**
281
+ Expose a local binary (e.g., `uvx mcp-server-git`) at `http://localhost:9000/sse`.
282
+
283
+ - **SSE ➜ Stdio:**
284
+ Tunnel a remote SSE server to `stdin/stdout` so CLI tools can talk to it natively.
285
+
286
+ - **Health & CORS:**
287
+ Add `/healthz` and CORS allowlist for reverse proxies and browser integrations.
288
+
289
+ - **Dockerized:**
290
+ Run the bridge as a standalone container from GHCR with no Python installed.
291
+
292
+ **Example CLI Usage:**
293
+
294
+ ```bash
295
+ mcpgateway.translate \
296
+ --stdio "uvx mcp-server-git" \
297
+ --port 9000 \
298
+ --ssePath /sse \
299
+ --messagePath /message \
300
+ --healthEndpoint /healthz \
301
+ --cors "https://app.example.com"
302
+ ```
303
+
304
+ **Design:**
305
+
306
+ - Uses async pumps between transport pairs (e.g., `Stdio ↔ SSE`, `SSE ↔ WS`).
307
+ - Maintains JSON-RPC fidelity and session state.
308
+ - Adapts message framing (e.g., Base64 for binary over SSE).
309
+ - Secure headers injected via `--header` or `--oauth2Bearer`.
310
+
311
+ **Docker:**
312
+
313
+ ```bash
314
+ docker run --rm -p 9000:9000 \
315
+ ghcr.io/ibm/mcp-context-forge:translate
316
+ ```
317
+
318
+ **Acceptance Criteria:**
319
+
320
+ - CLI and Docker bridge exposes `/sse` and `/message` for bidirectional MCP.
321
+ - Session ID and keep-alives handled automatically.
322
+ - Fully observable (`--logLevel`, Prometheus metrics, JWT headers, etc).
323
+ - Invalid flag combinations yield clean error output.
324
+
325
+ **Security:**
326
+
327
+ - Honors `MCP_AUTH_TOKEN` and CORS allowlist.
328
+ - Redacts tokens in logs.
329
+ - Supports TLS verification toggle (`--skipSSLVerify`).
330
+
331
+ ---
0 commit comments