<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_server( max_workers: int, options: Optional[List[Tuple[str, Any]]] = None, interceptors: Optional[List[grpc.ServerInterceptor]] = None, ) -> grpc.Server: """Creates a gRPC server The gRPC server is created with the provided options and intercepts each incoming RPCs via the provided interceptors. The created server is configured with the following default options: - "grpc.max_send_message_length": 100MB, - "grpc.max_receive_message_length": 100MB. :param max_workers: the maximum number of workers to use in the underlying futures.ThreadPoolExecutor to be used by the Server to execute RPC handlers. :param options: optional list of key-value pairs to configure the channel. :param interceptors: optional list of server interceptors. :returns: a gRPC server. """

    # The list of possible options is available here:
    # https://grpc.io/grpc/core/group__grpc__arg__keys.html
    options = (options or []) + [
        ("grpc.max_send_message_length", grpc_max_msg_size),
        ("grpc.max_receive_message_length", grpc_max_msg_size),
    ]
    interceptors = [base.ServerInterceptorWrapper(i)
                    for i in (interceptors or [])]
    server = grpc.server(ThreadPoolExecutor(max_workers=max_workers),
                         options=options, interceptors=interceptors)

    for i in interceptors:
        i.bind(server)

    return server