As was mentioned, driving JMP using automation. From Python you would need to load one of the Python to COM packages to allow interoperating with JMP's COM automation layer. Second, would be to launch a JMP process from Python, as if you were launching from the command line with the .jsl script as a command line parameter (I believe this should work, but have not tested). And lastly you could write a JSL script that listens on a socket and lets you send commands to JMP across the socket. However you couldn't just send the JSL, since JSL isn't multi-threaded, and it's your script that's maintaining the socket. Your socket handling script would have parse the recieved data and issues the jsl commands from within it's script.
Python support is currently only one way. JMP can acess python modules and pass data to the running python script and retrieve that data, because it is accessing data in the JMP launched python interpreter. At present there is no
functionality which would allow you to call into JMP from a seperately launched Python instance.