It's a protocol that doesn't dictate how you are calling the tool. You can use in-memory transport without needing to spin up a server. Your tool can just be a function, but with the flexibility of serving to other clients.
There isn't much documentation available right now but you can ask coding agent eg. Claude Code to generate an example.