As versões mais recentes do MapServer (6.0+) suportam clustering no servidor - http://mapserver.org/mapfile/cluster.html
Desde a versão 6.0, o MapServer tem a capacidade de combinar vários recursos de uma camada de pontos em recursos únicos (agregados) com base em suas posições relativas. Somente camadas POINT são suportadas. Esse recurso foi adicionado através do MS RFC 69: Suporte para agrupamento de recursos em camadas de pontos.
A proposta para essa funcionalidade é detalhada em: http://mapserver.org/development/rfc/ms-rfc-69.html
Uma configuração de exemplo abaixo:
LAYER
NAME "my-cluster"
TYPE POINT
...
CLUSTER
MAXDISTANCE 20 # in pixels
REGION "ellipse" # can be rectangle or ellipse
GROUP (expression) # an expression to create separate groups for each value
FILTER (expression) # a logical expression to specify the grouping condition
END
Essa camada pode ser servida como qualquer outra como WMS (o MapServer também suporta ladrilhos).
Eu não tentei isso e os documentos não são claros, mas também podem oferecer suporte a um serviço WFS em cluster.
Uma alternativa é fazer cluster no nível do banco de dados, e não no servidor da Web, e você pode usar qualquer cluster WMS Server see - Spatial com PostGIS .