MPL2 is a weak copyleft license that applies at file-level only i.e. only to your library files. It's a great license for the purpose that you have described. Your users can statically or dynamically link to your library with no issues.
If you use MPL2 without Appendix B, your competitors will be able to relicense it under LGPLv2.1 and circumvent the patent retaliation clause of MPL2. On the other hand, without Appendix B, software licensed under LGPLv2.1 and GPLv2 will be able to use your library without license incompatibilities.
AGPL, like GPL (without exception), is not suitable as it forces your users to release all of their source code, and not just extensions to your library. AGPL also has the remote-user-interaction clauses.
The other two suitable licenses are LGPLv2.1 and LGPLv3. Users would normally only dynamically link to LGPL-licensed libraries.
LGPLv3 is overall better than LGPLv2.1, including for unusual linking methods (e.g. C++ template header-only projects), patent grant, patent retaliation etc. but it has the tivoization clause which some companies avoid.
If you're concerned about LGPLv3's tivoization clause, you can add on the LGPLv3 linking exception, which waives the requirement of Installation Information (section 4e). With this exception, your users can also statically or dynamically link to your library with no issues.
If users interact with your software API only via sockets (inter-process communication), then you can simply use GPLv2 or GPLv3 too.
The viral effects of GPL only applies to static and dynamic linking. It doesn't apply to communication via sockets/ IPC.
GPLv3 also has the tivoization clause, same as LGPLv3.