# Run with `mix run --no-halt demo-engine.exs` from the pinned library. # This loopback-only bridge is for a local pg_mcp installation. Never expose port 4040. token_file = System.fetch_env!("DEMO_TOKEN_FILE") token = token_file |> File.read!() |> Jason.decode!() issuer = token["issuer"] || "https://mcp.elixirmcp.dev" if token["resource"] != issuer <> "/mcp", do: raise("Use an OAuth token for the /mcp resource") System.put_env("DEMO_ACCESS_TOKEN", Map.fetch!(token, "access_token")) Application.put_env(:noizu_mcp, :allow_insecure_transports, true) {:ok, _} = Supervisor.start_link( [ Noizu.MCP.Engine, {Bandit, plug: {Noizu.MCP.Transport.StreamableHTTP.Plug, server: Noizu.MCP.Engine, origins: :localhost}, ip: {127, 0, 0, 1}, port: 4040} ], strategy: :one_for_one ) {:ok, _} = Noizu.MCP.Engine.Servers.insert( [ %{ "name" => "demo", "transport" => "http", "url" => issuer <> "/mcp", "auth_ref" => "env:DEMO_ACCESS_TOKEN", "enabled" => true } ], nil ) IO.puts("Demo engine listening on 127.0.0.1:4040. Restart after refreshing the upstream token.") Process.sleep(:infinity)