services: gateway: build: . command: uvicorn mcp_gateway:app --host 0.0.0.0 --port 8000 ports: - "8000:8000" environment: - TAVILY_MCP_URL=http://tavily:8001/research - ALPHAVANTAGE_MCP_URL=http://alphavantage:8002/market_data - PRIVATE_MCP_URL=http://portfolio:8003/portfolio_data - TAVILY_API_KEY=${TAVILY_API_KEY} - ALPHA_VANTAGE_API_KEY=${ALPHA_VANTAGE_API_KEY} - GOOGLE_API_KEY=${GOOGLE_API_KEY} networks: - aegis-net tavily: build: . command: uvicorn tavily_mcp:app --host 0.0.0.0 --port 8001 ports: - "8001:8001" environment: - TAVILY_API_KEY=${TAVILY_API_KEY} networks: - aegis-net alphavantage: build: . command: uvicorn alphavantage_mcp:app --host 0.0.0.0 --port 8002 ports: - "8002:8002" environment: - ALPHA_VANTAGE_API_KEY=${ALPHA_VANTAGE_API_KEY} networks: - aegis-net portfolio: build: . command: uvicorn private_mcp:app --host 0.0.0.0 --port 8003 ports: - "8003:8003" volumes: - ./portfolio.db:/app/portfolio.db networks: - aegis-net monitor: build: . command: python monitor.py environment: - MCP_GATEWAY_URL=http://gateway:8000/route_agent_request - TAVILY_API_KEY=${TAVILY_API_KEY} - ALPHA_VANTAGE_API_KEY=${ALPHA_VANTAGE_API_KEY} depends_on: - gateway networks: - aegis-net frontend: build: . command: streamlit run app.py --server.port 8501 --server.address 0.0.0.0 ports: - "8501:8501" environment: - MCP_GATEWAY_URL=http://gateway:8000/route_agent_request - GOOGLE_API_KEY=${GOOGLE_API_KEY} depends_on: - gateway networks: - aegis-net networks: aegis-net: driver: bridge