Skip to content

Commit 5505950

Browse files
committed
Phoenix container
Signed-off-by: Mihai Criveti <[email protected]>
1 parent 1b5cd76 commit 5505950

File tree

7 files changed

+387
-5
lines changed

7 files changed

+387
-5
lines changed

docker-compose.phoenix-simple.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Simplified Phoenix Observability Stack for MCP Gateway
2+
#
3+
# Usage:
4+
# Start Phoenix: docker-compose -f docker-compose.phoenix-simple.yml up -d
5+
# Stop Phoenix: docker-compose -f docker-compose.phoenix-simple.yml down
6+
# With MCP Gateway: docker-compose -f docker-compose.yml -f docker-compose.phoenix-simple.yml up -d
7+
8+
services:
9+
# ──────────────────────────────────────────────────────────────────────
10+
# Phoenix Server - Simple SQLite setup for quick start
11+
# ──────────────────────────────────────────────────────────────────────
12+
phoenix:
13+
image: arizephoenix/phoenix:latest
14+
container_name: phoenix
15+
restart: unless-stopped
16+
ports:
17+
- "6006:6006" # Phoenix UI and OTLP HTTP collector
18+
- "4317:4317" # OTLP gRPC collector
19+
environment:
20+
# SQLite Configuration (simple, no external DB needed)
21+
- PHOENIX_WORKING_DIR=/data
22+
- PHOENIX_ENABLE_AUTH=false
23+
- PHOENIX_LOG_LEVEL=info
24+
- PHOENIX_GRPC_PORT=4317
25+
- PHOENIX_HTTP_PORT=6006
26+
volumes:
27+
- phoenix-data:/data
28+
healthcheck:
29+
test: ["CMD", "curl", "-f", "http://localhost:6006/health"]
30+
interval: 30s
31+
timeout: 10s
32+
retries: 3
33+
start_period: 40s
34+
35+
volumes:
36+
phoenix-data:
37+
driver: local

docker-compose.with-phoenix.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# MCP Gateway with Phoenix Observability
2+
# This extends the main docker-compose.yml with Phoenix integration
3+
#
4+
# Usage:
5+
# docker-compose -f docker-compose.yml -f docker-compose.with-phoenix.yml up -d
6+
7+
services:
8+
# Override gateway to add Phoenix environment variables
9+
gateway:
10+
environment:
11+
# Phoenix Observability Integration
12+
- PHOENIX_ENDPOINT=http://phoenix:6006
13+
- OTEL_EXPORTER_OTLP_ENDPOINT=http://phoenix:4317
14+
- OTEL_SERVICE_NAME=mcp-gateway
15+
- OTEL_TRACES_EXPORTER=otlp
16+
- OTEL_METRICS_EXPORTER=otlp
17+
- OTEL_RESOURCE_ATTRIBUTES=deployment.environment=docker,service.namespace=mcp
18+
19+
# Add Phoenix service
20+
phoenix:
21+
image: arizephoenix/phoenix:latest
22+
container_name: phoenix
23+
restart: unless-stopped
24+
networks:
25+
- mcpnet
26+
ports:
27+
- "6006:6006" # Phoenix UI and OTLP HTTP collector
28+
- "4317:4317" # OTLP gRPC collector
29+
environment:
30+
# SQLite Configuration (simple setup)
31+
- PHOENIX_WORKING_DIR=/data
32+
- PHOENIX_ENABLE_AUTH=false
33+
- PHOENIX_LOG_LEVEL=info
34+
- PHOENIX_GRPC_PORT=4317
35+
- PHOENIX_HTTP_PORT=6006
36+
volumes:
37+
- phoenix-data:/data
38+
healthcheck:
39+
test: ["CMD", "curl", "-f", "http://localhost:6006/health"]
40+
interval: 30s
41+
timeout: 10s
42+
retries: 3
43+
start_period: 40s
44+
45+
volumes:
46+
phoenix-data:
47+
driver: local

docker-compose.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ services:
5555
# - CERT_FILE=/app/certs/cert.pem
5656
# - KEY_FILE=/app/certs/key.pem
5757

58+
# Phoenix Observability Integration (uncomment when using Phoenix)
59+
# - PHOENIX_ENDPOINT=${PHOENIX_ENDPOINT:-http://phoenix:6006}
60+
# - OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT:-http://phoenix:4317}
61+
# - OTEL_SERVICE_NAME=${OTEL_SERVICE_NAME:-mcp-gateway}
62+
# - OTEL_TRACES_EXPORTER=${OTEL_TRACES_EXPORTER:-otlp}
63+
# - OTEL_METRICS_EXPORTER=${OTEL_METRICS_EXPORTER:-otlp}
64+
# - OTEL_RESOURCE_ATTRIBUTES=${OTEL_RESOURCE_ATTRIBUTES:-deployment.environment=docker,service.namespace=mcp}
65+
5866
depends_on: # Default stack: Postgres + Redis + Alembic migration
5967
postgres:
6068
condition: service_healthy # ▶ wait for DB

docs/docs/architecture/roadmap.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
- ✅ [**#159**](https://github.com/IBM/mcp-context-forge/issues/159) - Add auto activation of mcp-server, when it goes up back again
8181
- ✅ [**#154**](https://github.com/IBM/mcp-context-forge/issues/154) - Export connection strings to various clients from UI and via API
8282
- ✅ [**#135**](https://github.com/IBM/mcp-context-forge/issues/135) - Dynamic UI Picker for Tool, Resource, and Prompt Associations
83-
- ✅ [**#116**](https://github.com/IBM/mcp-context-forge/issues/116) - Namespace Composite Key & UUIDs for Tool Identity
83+
- ✅ [**#116**](https://github.com/IBM/mcp-context-forge/issues/116) - Namespace Composite Key & UUIDs for Tool Identity
8484
- ✅ [**#100**](https://github.com/IBM/mcp-context-forge/issues/100) - Add path parameter or replace value in input payload for a REST API?
8585
- ✅ [**#26**](https://github.com/IBM/mcp-context-forge/issues/26) - Add dark mode toggle to Admin UI
8686

@@ -259,7 +259,7 @@
259259
- [**#276**](https://github.com/IBM/mcp-context-forge/issues/276) - Terraform Module – "mcp-gateway-ibm-cloud" supporting IKS, ROKS, Code Engine targets
260260
- [**#275**](https://github.com/IBM/mcp-context-forge/issues/275) - Terraform Module - "mcp-gateway-gcp" supporting GKE and Cloud Run
261261
- [**#274**](https://github.com/IBM/mcp-context-forge/issues/274) - Terraform Module - "mcp-gateway-azure" supporting AKS and ACA
262-
- [**#273**](https://github.com/IBM/mcp-context-forge/issues/273) - Terraform Module - mcp-gateway-aws supporting both EKS and ECS Fargate targets
262+
- [**#273**](https://github.com/IBM/mcp-context-forge/issues/273) - Terraform Module - "mcp-gateway-aws" supporting both EKS and ECS Fargate targets
263263
- [**#258**](https://github.com/IBM/mcp-context-forge/issues/258) - Universal Client Retry Mechanisms with Exponential Backoff & Random Jitter
264264
- [**#234**](https://github.com/IBM/mcp-context-forge/issues/234) - 🧠 Protocol Feature – Elicitation Support (MCP 2025-06-18)
265265
- [**#217**](https://github.com/IBM/mcp-context-forge/issues/217) - Graceful-Shutdown Hooks for API & Worker Containers (SIGTERM-safe rollouts, DB-pool cleanup, zero-drop traffic)
@@ -276,7 +276,7 @@
276276
- ✅ [**#666**](https://github.com/IBM/mcp-context-forge/issues/666) - [Bug]:Vague/Unclear Error Message "Validation Failed" When Adding a REST Tool
277277
- ✅ [**#661**](https://github.com/IBM/mcp-context-forge/issues/661) - Database migration runs during doctest execution
278278
- ✅ [**#649**](https://github.com/IBM/mcp-context-forge/issues/649) - Duplicate Gateway Registration with Equivalent URLs Bypasses Uniqueness Check
279-
- ✅ [**#646**](https://github.com/IBM/mcp-context-forge/issues/646) - MCP Server/Federated Gateway Registration is failing
279+
- ✅ [**#646**](https://github.com/IBM/mcp-context-forge/issues/646) - MCP Server/Federated Gateway Registration is failing
280280
- [**#625**](https://github.com/IBM/mcp-context-forge/issues/625) - Gateway unable to register gateway or call tools on MacOS
281281
- [**#587**](https://github.com/IBM/mcp-context-forge/issues/587) - REST Tool giving error
282282
- ✅ [**#557**](https://github.com/IBM/mcp-context-forge/issues/557) - [BUG] Cleanup tool descriptions to remove newlines and truncate text
@@ -338,7 +338,7 @@
338338
- [**#270**](https://github.com/IBM/mcp-context-forge/issues/270) - MCP Server – Go Implementation ("libreoffice-server")
339339
- [**#269**](https://github.com/IBM/mcp-context-forge/issues/269) - MCP Server - Go Implementation (LaTeX Service)
340340
- [**#263**](https://github.com/IBM/mcp-context-forge/issues/263) - Sample Agent - CrewAI Integration (OpenAI & A2A Endpoints)
341-
- [**#262**](https://github.com/IBM/mcp-context-forge/issues/262) - Sample Agent - LangChain Integration (OpenAI & A2A Endpoints)
341+
- [**#262**](https://github.com/IBM/mcp-context-forge/issues/262) - Sample Agent - LangChain Integration (OpenAI & A2A Endpoints)
342342
- [**#218**](https://github.com/IBM/mcp-context-forge/issues/218) - Prometheus Metrics Instrumentation using prometheus-fastapi-instrumentator
343343
- [**#186**](https://github.com/IBM/mcp-context-forge/issues/186) - Granular Configuration Export & Import (via UI & API)
344344
- [**#185**](https://github.com/IBM/mcp-context-forge/issues/185) - Portable Configuration Export & Import CLI (registry, virtual servers and prompts)
@@ -550,4 +550,4 @@
550550
-**Completed** - Issue has been resolved and closed
551551

552552
!!! tip "Contributing"
553-
Want to contribute to any of these features? Check out the individual GitHub issues for more details and discussion!
553+
Want to contribute to any of these features? Check out the individual GitHub issues for more details and discussion!

docs/docs/manage/.pages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ nav:
77
- tuning.md
88
- securing.md
99
- ui-customization.md
10+
- observability

docs/docs/manage/observability/.pages

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
nav:
2+
- Phoenix: phoenix-deployment.md

0 commit comments

Comments
 (0)