There is a de-facto standard for that: system.listMethods to list supported methods, system.methodSignature to get the parameter and return types for a method, and system.methodHelp to get its documentation. It's not an ideal solution, since method signatures are shallow and not every server implements these methods the same way (or at all), but they are enough to do basic code generation for statically-typed languages. Here's an example of that for OCaml: <a href="http://code.google.com/p/xmlrpc-light/source/browse/trunk/examples/genclient/genclient.ml" rel="nofollow">http://code.google.com/p/xmlrpc-light/source/browse/trunk/ex...</a>