You could perhaps use a true telnet or SSH server and just set the user's login shell to be IPython. For instance, given a user whose name is 'adam', perhaps you could change the user's /etc/passwd
line to something like:
adam:x:1000:1000:Adam Frist,,,:/home/adam:/usr/bin/ipython
Typically the final segment in the line is an actual login shell like bash, but it doesn't have to be. The advantage is that you can skip coding the solution yourself, but there may be a disadvantage in that you might have to hack environment variable or the Python path for it to work.
You can read more about the /etc/passwd
file at the Linux Information Project.