I have this scenario. Where i am writing one apps in Android usging bash/python. So that via PC i can connect to the Android and from Android using USB i can connect the destination PC/Server.
But what API is available to send all my Android requests to USB, so that i can remotely have assistance for the Server PC via Android? Is there any other available open-source framework for doing such?

or

Follow up:
There is already “Tethering and portable hotspot” option in my mobile. Without installing any third party apps.

So once i enabled it, i have new interface called usb0 with ip address in the same subnet of Android + Laptop.
Then i installed simply SSHDroid server in Android, now from 3G i can connect to the Android. Now PC and Android both has usb0 interface with same subnet for sharing data that solves all the remote access problem.
On my laptop:
$ ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether d4:be:d9:55:91:4a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.219/24 brd 192.168.0.255 scope global eth0
inet6 fe80::d6be:d9ff:fe55:914a/64 scope link
valid_lft forever preferred_lft forever
7: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether c6:8a:95:bf:fa:2b brd ff:ff:ff:ff:ff:ff
inet 192.168.42.202/24 brd 192.168.42.255 scope global usb0
inet6 fe80::c48a:95ff:febf:fa2b/64 scope link
valid_lft forever preferred_lft forever
On my Android mobile:
/data/data/berserker.android.apps.sshdroid/home # ip addr
11: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 6e:54:53:29:68:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.42.129/24 brd 192.168.42.255 scope global usb0
inet6 fe80::6c54:53ff:fe29:688c/64 scope link
valid_lft forever preferred_lft forever
15: wlan0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 50:01:bb:e3:fb:d7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.163/24 brd 192.168.0.255 scope global wlan0
inet6 fe80::5201:bbff:fee3:fbd7/64 scope link
valid_lft forever preferred_lft forever
what you want to do should be possible but will require effort. There are apps to enable USB tethering but I don’t think they work universally for all devices. That can create a network you can use to communicate with the connected server. If you install ssh server on the android, that can be used to tunnel your connection to the internal servers. Port forwarding is another option. I think you would most probably need a rooted phone. That if inbound connections to your phone are possible with your 3g carrier.
If inbound connections are not possible, then you can setup a script on your phone or one of the servers to try ssh a particular machine (your PC or home router) every 5 minutes creating a tunnel to internal network.
To have stable hostnames you can use some dynamic dns service like dnsdynamic.org because your public IP addresses would most probably change at least on the 3G end.
I think though that it would be far easier to just buy a cheap router box with USB for a 3G dongle. Or you can put a 3G dongle into one of your servers and use it as a router. Actually you can try using your android phone as a USB modem dongle, I’m finding this guide.
It all depends on particular device capabilities and luck but in conclusion, if it was me, I would first try using the android phone as a usb modem dongle and use a dynamic dns service so I always know the current IP of the 3G connection. Then use ssh to connect to the server running the 3G connection. From that server one can ssh to any other server.
Then I would try using a dedicated router with some usb 3G dongle.
I would never go for the hassle configuring an android phone working as a router, sounds too time consuming.
Hope that helps.