Andrew,
XMLRPC or SOAP will do this for you. Depending on the library you use, you might have to write a wrapper tcl proc to hide the xmlrpc/soap calling code.
This is all done over HTTP, so you could also just map a URL to a tcl proc, and parse the URL parameters.
I can give you more information if you need it.