<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def interactive_server(port=27017, verbose=True, all_ok=False, name='MockupDB', ssl=False, uds_path=None):
 """A `MockupDB` that the mongo shell can connect to. Call `~.MockupDB.run` on the returned server, and clean it up with `~.MockupDB.stop`. If ``all_ok`` is True, replies {ok: 1} to anything unmatched by a specific responder. """

    if uds_path is not None:
        port = None

    server = MockupDB(port=port,
                      verbose=verbose,
                      request_timeout=int(1e6),
                      ssl=ssl,
                      auto_ismaster=True,
                      uds_path=uds_path)
    if all_ok:
        server.append_responder({})
    server.autoresponds('whatsmyuri', you='localhost:12345')
    server.autoresponds({'getLog': 'startupWarnings'},
                        log=['hello from %s!' % name])
    server.autoresponds(OpMsg('buildInfo'), version='MockupDB ' + __version__)
    server.autoresponds(OpMsg('listCollections'))
    server.autoresponds('replSetGetStatus', ok=0)
    server.autoresponds('getFreeMonitoringStatus', ok=0)
    return server