Version 4 (modified by Alec Thomas, 13 years ago) (diff)


Trac XML-RPC Plugin


This plugin allows Trac plugins to export select parts of their interface via XML-RPC.

It also includes some exported functions for manipulating tickets, with plans to include interfaces to other parts of Trac's API.

The XML-RPC URI suffix is /RPC2. For example, for TracHacks the URI would be If the HTTP request to this URI is a normal HTTP request, the XmlRpcPlugin will list all exported functions that the current user has permission to use.


Unfortunately, due to some issues with mod_pythons FieldStorage emultation layer, this plugin requires the patch in [trac-ticket:2509 #T2509] to be applied to your Trac installation.

Once this patch has been applied, install in the same manner as any other Trac plugin:

# python bdist_egg
# cp dist/*.egg /srv/trac/env/plugins

Bugs/Feature Requests

Existing bugs and feature requests for XmlRpcPlugin are here.

If you have any issues, create a new ticket.


Download the zipped source from [download:xmlrpcplugin here].


You can check out the source for XmlRpcPlugin from Subversion at


End-User Usage

Obtain a list of XML-RPC exported functions available to my user:

import xmlrpclib

server = xmlrpclib.ServerProxy("http://athomas:password@localhost/trac-dev/RPC2")

print server.tracrpc.api.list_xmlrpc_functions()

List all tickets that are owned by athomas:

import xmlrpclib

server = xmlrpclib.ServerProxy("http://athomas:password@localhost/trac-dev/RPC2")
print server.tracrpc.ticket.query_tickets("owner=athomas")

API Usage

Export a "hello world' function:

from tracrpc.api import IXMLRPCProvider
from trac.core import Component, implements

class HelloWorld(Component):

  def hello_world(self):
    return "Hello world"

  def get_xmlrpc_functions(self):
    yield ('WIKI_VIEW', self.hello_world)


Author: athomas


Attachments (2)

Download all attachments as: .zip