Finding all small monoids with the help of GAP In GAP there is the command AllSmallGroups(n) to construct all finite groups of order $n$ up to isomorphism.

Question: Is there a similar method (or package) in GAP that produces all finite monoids (or even semigroups) of order $n$ up to isomorphism?

This is probably a much harder problem than for groups but already a program which works till $n=10$ might be helpful.
 A: The Smallsemi package (https://gap-packages.github.io/smallsemi/), as its description says, "is a data library of semigroups of small size. It provides all semigroups with at most 8 elements as well as various information about these objects". For example:
gap> LoadPackage("smallsemi");
-----------------------------------------------------------------------------
Smallsemi -   A library of small semigroups
by Andreas Distler & James Mitchell
For contents, type: ?Smallsemi:
Loading Smallsemi 0.6.12 ...
-----------------------------------------------------------------------------
true
gap> NrSmallSemigroups(6);
15973
gap> NrSmallSemigroups(3);
18
gap> AllSmallSemigroups(3,IsMonoidAsSemigroup,true);
#I  Smallsemi: loading data for semigroup properties. Please be patient.
[ <small semigroup of size 3>, <small semigroup of size 3>, 
  <small semigroup of size 3>, <small semigroup of size 3>, 
  <small semigroup of size 3>, <small semigroup of size 3> ]

Please see the documentation at https://gap-packages.github.io/smallsemi/doc/chap0.html. In particular, note functions like EnumeratorOfSmallSemigroups and IteratorOfSmallSemigroups which should help to deal with large collections of semigroups.
Remark: The number of semigroups and monoids of small orders is given in OEIS A001423 and A058133 respectively.
A: I have not seen such a construction package, and I think it is unlikely that such a package exists:
From experience in constructing groups (or combinatorial structures) the enumeration process relies on two parts:
An extension process of smaller objects (cohomology in the case of groups), as well as an effective isomorphism test.
I have seen neither for monoids (though one could try to implement brute-force versions) -- indeed https://mathoverflow.net/questions/308245/how-to-show-two-semigroups-are-isomorphic indicates that the isomorphism test for semigroups would be harder than one for groups.
