Typically Wordpress's XML-RPC interface is used for integrations where a client is updating posts. In those cases it makes sense that post data returned through the XML-RPC interface doesn't expand shortcodes.

However, I worked on an implementation that was an exception. An application needed a way to read data from Wordpress. At least at the time, the popular Jetpack JSON API didn't have support for custom post types, so we were left with XML-RPC or rolling a more custom solution.

The downside with XML-RPC was that it didn't render shortcodes by default, and the app it was integrating with would have no idea what to do with these shortcodes. Fortunately, changing this only required a few pieces of code.

Create a customized XML-RPC method

This is a good idea because than the standard methods continue to work as expected. Fortunately you can have your custom function be based on one of the existing ones. For example, here, I'm basically extending the getPosts method

function custom_xmlrpc_getPosts( $args ) {
    global $wp_xmlrpc_server;
    $posts = $wp_xmlrpc_server->wp_getPosts( $args );

    foreach ($posts as &$post) {

        // Expand shortcodes
        $post['post_content'] = do_shortcode( $post['post_content'] );
        // Convert to paragraphs
        $post['post_content'] = wpautop( $post['post_content'] );

    return $posts;

Notice I'm also calling wpautop, which will automagically add the <p> tags to the post like it would when rendering on your Wordpress front-end.

Register your XML-RPC method

You need to tell Wordpress about your new method:

function add_custom_xml_rpc_methods( $methods ) {
    $methods['custom.getPosts'] = array( $this, 'custom_xmlrpc_getPosts' );
    return $methods;
add_filter( 'xmlrpc_methods', 'add_custom_xml_rpc_methods' ) );

Use the method

That's it! You should now be able to call the new method, custom.getPosts in my case, using the same parameters that the base getPosts method supports. The difference is that shortcodes will be expanded and paragraph tags added.