// MCP URL validation blocks embedded credentials and unsupported schemes even on trusted networks. import gleeunit/should @external(erlang, "albedo_mcp", "url_allowed") fn allowed(url: String) -> Bool pub fn mcp_http_trusted_network_test() -> Nil { allowed("http://100.64.0.19:8787/mcp") |> should.be_true allowed("http://nas.lan:8787/mcp") |> should.be_true allowed("https://mcp.example.com/mcp") |> should.be_true allowed("http://127.0.0.1:8787/mcp") |> should.be_true } pub fn mcp_url_rejects_embedded_credentials_and_invalid_schemes_test() -> Nil { allowed("http://user:secret@nas.lan/mcp") |> should.be_false allowed("http://nas.lan/mcp#fragment") |> should.be_false allowed("file:///tmp/server") |> should.be_false allowed("http:///missing-host") |> should.be_false }