You can add additional menu buttons using the configuration file menubuttons.json :

{
    "menubuttons": [
        {
          "menu": "main",
          "buttonid": "testbutton",
          "image": "bbuilder_newbutton_items.png",
          "text": "Test Button",
          "help": "This is a test button!",
          "scriptclasses": ["menu_test"],
          "conditions": []
        }
    ]
}

Currently supported are following menu types: main, admin, profilemore, adminactions, clans, manageclan, claninfo

The scriptclasses property defines which script is run when you click the button, here the client-side class clientclasses/menu_test.js:

function onActivated(player, data, newmenu, oldmenu) {
    echo("Menu button activated for " + this.buttonid + "/" + this.menu + ":", data);

    let popup = GUI.showpopup({title: "Test Window"});
    popup.innerHTML = "This is a test window.<br><center><input type=\"submit\" value=\"Test Trigger\" id=\"testbutton\"></center>";
    const self = this;
    GUI.onclick("testbutton", function(event) {
        self.triggerserver("test", "123");
        GUI.hidepopup();
    });
}

This script is opening a new window with a button which is triggering an action on the server, add following server-side class scriptclasses/menu_test.js:

function onClientTest(pl, nr) {
    echo("triggered menu_test: " + nr);
    pl.showmessage("Received test trigger! " + nr);
}

PS: When you show a new popup window, it will automatically add a back button so that the user can return to the previous menu.