Skip to main content
Glama

Multi-Cloud Infrastructure MCP Server

by nomadslayer
envoy.yaml9.44 kB
# AI Envoy Gateway Configuration for MCP # https://github.com/envoyproxy/ai-gateway admin: address: socket_address: address: 0.0.0.0 port_value: 10000 static_resources: listeners: # Main proxy listener - name: main_listener address: socket_address: address: 0.0.0.0 port_value: 8080 filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http codec_type: AUTO route_config: name: local_route virtual_hosts: # MCP API routes - name: mcp_api domains: ["*"] routes: # Telemetry endpoint - match: prefix: "/v1/telemetry" route: cluster: clickhouse_cluster timeout: 10s typed_per_filter_config: envoy.filters.http.ext_authz: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute envoy.filters.http.ratelimit: "@type": type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute rate_limits: - actions: - request_headers: header_name: "x-source" descriptor_key: "source" # Deployment endpoint - match: prefix: "/v1/deployments" route: cluster: mcp_api_cluster timeout: 30s retry_policy: retry_on: "5xx" num_retries: 3 typed_per_filter_config: envoy.filters.http.ratelimit: "@type": type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimitPerRoute rate_limits: - actions: - request_headers: header_name: "x-provider" descriptor_key: "provider" # Provider API proxies - match: prefix: "/providers/runpod" route: cluster: runpod_api_cluster timeout: 60s retry_policy: retry_on: "5xx,refused-stream" num_retries: 2 - match: prefix: "/providers/vastai" route: cluster: vastai_api_cluster timeout: 60s retry_policy: retry_on: "5xx,refused-stream" num_retries: 2 # Default route to MCP API - match: prefix: "/" route: cluster: mcp_api_cluster timeout: 30s http_filters: # Rate limiting filter - name: envoy.filters.http.ratelimit typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit domain: mcp_deployments failure_mode_deny: false rate_limit_service: grpc_service: envoy_grpc: cluster_name: ratelimit_cluster transport_api_version: V3 # Observability - Request ID - name: envoy.filters.http.uuid typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.uuid.v3.Uuid # Metrics and tracing - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router # Access logging access_log: - name: envoy.access_loggers.file typed_config: "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog path: /dev/stdout format: "[%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %REQ(X-REQUEST-ID)% \"%REQ(USER-AGENT)%\"\n" clusters: # MCP API cluster - name: mcp_api_cluster type: STRICT_DNS lb_policy: ROUND_ROBIN connect_timeout: 5s circuit_breakers: thresholds: - priority: DEFAULT max_connections: 1000 max_pending_requests: 1000 max_requests: 1000 max_retries: 3 load_assignment: cluster_name: mcp_api_cluster endpoints: - lb_endpoints: - endpoint: address: socket_address: address: mcp-api port_value: 8000 health_checks: - timeout: 5s interval: 30s unhealthy_threshold: 3 healthy_threshold: 1 http_health_check: path: /health # ClickHouse cluster for telemetry - name: clickhouse_cluster type: STRICT_DNS lb_policy: ROUND_ROBIN connect_timeout: 5s load_assignment: cluster_name: clickhouse_cluster endpoints: - lb_endpoints: - endpoint: address: socket_address: address: clickhouse port_value: 8123 health_checks: - timeout: 5s interval: 30s unhealthy_threshold: 3 healthy_threshold: 1 http_health_check: path: /ping # RunPod API cluster - name: runpod_api_cluster type: LOGICAL_DNS lb_policy: ROUND_ROBIN connect_timeout: 10s dns_lookup_family: V4_ONLY circuit_breakers: thresholds: - priority: DEFAULT max_connections: 100 max_pending_requests: 100 max_requests: 100 max_retries: 3 load_assignment: cluster_name: runpod_api_cluster endpoints: - lb_endpoints: - endpoint: address: socket_address: address: api.runpod.io port_value: 443 transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext sni: api.runpod.io # Vast.ai API cluster - name: vastai_api_cluster type: LOGICAL_DNS lb_policy: ROUND_ROBIN connect_timeout: 10s dns_lookup_family: V4_ONLY circuit_breakers: thresholds: - priority: DEFAULT max_connections: 100 max_pending_requests: 100 max_requests: 100 max_retries: 3 load_assignment: cluster_name: vastai_api_cluster endpoints: - lb_endpoints: - endpoint: address: socket_address: address: api.vast.ai port_value: 443 transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext sni: api.vast.ai # Rate limit service cluster (optional - for advanced rate limiting) - name: ratelimit_cluster type: STRICT_DNS lb_policy: ROUND_ROBIN connect_timeout: 1s load_assignment: cluster_name: ratelimit_cluster endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ratelimit port_value: 8081 # Tracing configuration (optional) tracing: http: name: envoy.tracers.opentelemetry typed_config: "@type": type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig grpc_service: envoy_grpc: cluster_name: otel_collector timeout: 1s # Stats configuration stats_sinks: - name: envoy.stat_sinks.prometheus typed_config: "@type": type.googleapis.com/envoy.extensions.stat_sinks.prometheus.v3.PrometheusStatsSinkConfig

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nomadslayer/infra-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server