Hi Jonathan. Are you aware of the Tor control protocol [1]? This already provides an RPC method for other applications to communicate with a Tor instance. Most often this is used via TorCtl which is in Python [2], though there's Java and C# counterparts too.
This gives a means of querying information, receiving events, creating/destroying circuits (which was your initial project idea), etc.
Cheers! -Damian
[1] https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt [2] https://gitweb.torproject.org/pytorctl.git