RandomWeb3MCP
Um serviço de geração de elementos aleatórios baseado no hash de bloco EVM para jogos, finanças, testes e outros campos.
Documentação
RandomWeb3MCP - Serviço de Geração de Elementos Aleatórios Web3
RandomWeb3MCP é um serviço de geração de elementos aleatórios baseado em hash de bloco EVM. O serviço fornece diversas ferramentas de geração de elementos aleatórios que podem ser usadas em jogos, finanças, testes e outros campos.
Recursos
- Verificabilidade: Todos os números aleatórios são gerados com base no hash da blockchain, garantindo justiça e verificabilidade
- Diversidade: Suporta vários cenários de geração de números aleatórios, desde números aleatórios básicos até distribuições de probabilidade complexas
- Confiabilidade: Usa a blockchain como fonte de entropia para garantir a qualidade da aleatoriedade
- Usabilidade: Fornece interfaces de API simples e intuitivas para fácil integração
Instalação
git clone git@github.com:suxiongye/random-web3-mcp.git
pip install -e .
Início Rápido
Configuração no tico ou Cursor
Adicione a configuração do serviço random-web3-mcp nas configurações do Cursor:
{
"mcpServers": {
"random-web3-mcp": {
"command": "uv",
"args": ["--directory", "local_repo_directory/zxl-mcp-server", "run", "main.py"]
}
}
}
Lista de Ferramentas
generate_basic_random
Nome
Gerador Básico de Números Aleatórios
Função
Gera um número inteiro aleatório dentro do intervalo especificado
Parâmetros
- min_value (int, opcional): Valor mínimo (inclusivo). Padrão: 0.
- max_value (int, opcional): Valor máximo (inclusivo). Padrão: 1000000.
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo o resultado do número aleatório
Cenários de Aplicação
- Sistemas de loteria
- Números aleatórios em jogos
- Geração de IDs aleatórios
- Geração de dados de teste
generate_random_array
Nome
Gerador de Array Aleatório
Função
Gera um array aleatório de comprimento especificado
Parâmetros
- array_length (int, opcional): Comprimento do array. Padrão: 1.
- min_value (int, opcional): Valor mínimo. Padrão: 0.
- max_value (int, opcional): Valor máximo. Padrão: 1000000.
- salt (str, opcional): Valor de salt do número aleatório. Padrão: ''
Retorno
String JSON contendo o array aleatório
Cenários de Aplicação
- Geração em lote de números aleatórios
- Amostragem aleatória
- Geração de conjuntos de dados de teste
- Atribuição aleatória de tarefas
generate_random_weighted
Nome
Seletor Aleatório Ponderado
Função
Seleciona aleatoriamente uma opção com base em pesos
Parâmetros
- options (List[str]): Lista de opções
- weights (List[int]): Lista de pesos correspondentes (0-1000)
- salt (str, opcional): Valor de salt do número aleatório. Padrão: ''
Retorno
String JSON contendo o resultado da seleção
Cenários de Aplicação
- Sistemas de loteria (prêmios com probabilidades diferentes)
- Drops aleatórios (drops de itens ponderados)
- Atribuição de tarefas (com base em prioridade)
- Testes A/B (grupos de experimento com proporções diferentes)
generate_random_feature
Nome
Alocador Aleatório de Características
Função
Gera um conjunto de valores de características aleatórios para objetos, cada valor de característica dentro do seu intervalo especificado. Os valores de características são codificados em um bitmap, com cada característica ocupando 8 bits
Parâmetros
- feature_count (int): Número de características a gerar
- feature_max_values (List[int]): Lista de valores máximos para cada característica, o comprimento deve ser igual a feature_count
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo valores de características e bitmap, formatada como:
{
"requestId": "Generated request ID",
"features": [List of feature values],
"featureBitmap": Feature bitmap value
}
Cenários de Aplicação
- Geração de atributos de personagens de jogos (força, agilidade, inteligência, etc.)
- Randomização de atributos de equipamentos (ataque, defesa, velocidade, etc.)
- Simulação de características biológicas (genes, traços, etc.)
- Geração aleatória de cenários (terreno, clima, ambiente, etc.)
generate_distribution
Nome
Gerador Aleatório de Distribuição de Probabilidade
Função
Gera números aleatórios de acordo com o tipo de distribuição de probabilidade e parâmetros especificados. Suporta várias distribuições de probabilidade comuns.
Parâmetros
- distribution_type (int): Tipo de distribuição:
- 1 = Distribuição uniforme (parâmetros: [min_value, max_value])
- 2 = Distribuição normal (parâmetros: [mean, standard_deviation])
- 3 = Distribuição exponencial (parâmetros: [scale_parameter])
- 4 = Distribuição binomial (parâmetros: [trials, success_probability])
- distribution_parameters (List[float]): Lista de parâmetros da distribuição
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo valor aleatório e informações da distribuição, formatada como:
{
"requestId": "Generated request ID",
"randomValue": Generated random value,
"distributionMetadata": {
"distributionType": Distribution type,
...Distribution parameters
}
}
Cenários de Aplicação
- Simulação de mercado financeiro (distribuição de retornos, análise de risco)
- Simulação de fenômenos naturais (distribuição de partículas, geração de ruído)
- Teste de carga (distribuição de comportamento do usuário)
- Amostragem estatística (geração de dados experimentais)
generate_random_event
Nome
Gatilho de Evento Aleatório
Função
Dispara uma série de eventos com base em probabilidades fornecidas, cada evento tem uma probabilidade de disparo independente. Usa bitmap para registrar o status do disparo para facilitar o processamento.
Parâmetros
- event_count (int): Número total de eventos
- event_probabilities (List[int]): Probabilidade de disparo para cada evento (0-1000, representando 0-100%)
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo resultados de disparo de eventos, formatada como:
{
"requestId": "Generated request ID",
"triggeredEvents": Event trigger bitmap,
"eventResults": [
{
"eventId": Event ID,
"probability": Trigger probability,
"triggered": Whether triggered,
"randomValue": Random value
},
...
]
}
Cenários de Aplicação
- Eventos aleatórios em jogos (disparar enredo, dropar itens)
- Determinação de efeitos de probabilidade (disparo de habilidades, determinação de combos)
- Simulação de eventos de risco (previsão de falhas, eventos de acidente)
- Determinação de múltiplas condições (eventos de probabilidade combinada)
generate_random_seed
Nome
Gerador de Seed Aleatória
Função
Gera seed aleatória de alta entropia para criptografia ou outros cenários que exigem números aleatórios de alta qualidade. Usa hash da blockchain como fonte de entropia para garantir a aleatoriedade.
Parâmetros
- seed_length (int): Comprimento da seed a gerar (em bytes)
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo seed aleatória, formatada como:
{
"requestId": "Generated request ID",
"randomSeed": "Random seed in hexadecimal format",
"entropy": Estimated entropy value
}
Cenários de Aplicação
- Geração de chaves (chaves de criptografia, seeds de assinatura)
- Tokens de segurança (identificadores de sessão, tokens de autenticação)
- Inicialização de números aleatórios (seeds de PRNG, estados iniciais de simulação)
- Geração de identificadores únicos (seeds de UUID, identificadores aleatórios)
shuffle_array
Nome
Embaralhador de Array Aleatório
Função
Embaralha aleatoriamente o array de entrada, garantindo que cada elemento tenha probabilidade igual de aparecer em qualquer posição. Usa o algoritmo de embaralhamento Fisher-Yates para garantir justiça.
Parâmetros
- input_array (List): Array a ser embaralhado, os elementos podem ser de qualquer tipo
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo o array embaralhado, formatada como:
{
"requestId": "Generated request ID",
"shuffledArray": [Shuffled array]
}
Cenários de Aplicação
- Embaralhamento em jogos (cartas de baralho, peças de mahjong)
- Ordenação aleatória (ordem de perguntas, playlist)
- Agrupamento aleatório (atribuição de times, agrupamento de experimentos)
- Embaralhamento de dados (conjunto de treinamento, casos de teste)
generate_coordinate
Nome
Gerador de Coordenadas Aleatórias
Função
Gera pontos de coordenadas aleatórios em um espaço dimensional especificado, cada dimensão tem seu próprio intervalo de valores. Suporta geração de coordenadas em qualquer número de dimensões.
Parâmetros
- dimensions (int): Número de dimensões de coordenadas (1D, 2D, 3D, etc.)
- min_values (List[float]): Lista de valores mínimos para cada dimensão
- max_values (List[float]): Lista de valores máximos para cada dimensão
- coordinate_count (int): Número de pontos de coordenadas a gerar
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo coordenadas aleatórias, formatada como:
{
"requestId": "Generated request ID",
"coordinates": [
[x1, y1, z1, ...], # First point coordinates
[x2, y2, z2, ...], # Second point coordinates
...
]
}
Cenários de Aplicação
- Posicionamento de objetos em jogos (localizações de NPCs, distribuição de itens)
- Sistemas de partículas (geração de efeitos, distribuição de partículas)
- Geração de mapas (altura do terreno, distribuição de recursos)
- Amostragem espacial (modelagem 3D, análise espacial)
generate_rarity
Nome
Alocador Aleatório de Raridade
Função
Gera pontos de coordenadas aleatórios em um espaço dimensional especificado, cada dimensão tem seu próprio intervalo de valores. Suporta geração de coordenadas em qualquer número de dimensões.
Parâmetros
- item_count: Quantidade de itens
- rarity_tiers: Array de níveis de raridade
- rarity_percentages: Porcentagem de probabilidade para cada nível de raridade
- guaranteed_minimums: Quantidade garantida para cada nível de raridade (opcional)
- salt (str, opcional): Valor de salt do número aleatório para maior aleatoriedade. Padrão: ''
Retorno
String JSON contendo array de raridade aleatório, formatada como:
{
"requestId": "Generated request ID",
"rarityDistribution": [Rarity allocation result]
}
Cenários de Aplicação
- Drops de itens em jogos (equipamentos, itens de raridades diferentes)
- Sistemas de loteria (prêmios com probabilidades diferentes)
- Alocação de recursos (recursos, materiais de raridades diferentes)
- Disparo de eventos aleatórios (eventos de probabilidades diferentes)
Cenários de Aplicação
Desenvolvimento de Jogos
- Drops aleatórios de itens
- Geração de atributos de personagens
- Geração aleatória de mapas
- Disparo de eventos de probabilidade
Aplicação Financeira
- Simulação de risco
- Análise de carteira de investimentos
- Simulação de comportamento de mercado
Dados de Teste
- Geração aleatória de casos de teste
- Dados de teste de carga
- Amostra de teste de desempenho
Cálculo Científico
- Simulação de Monte Carlo
- Simulação de sistemas de partículas
- Amostragem aleatória
Observações
- Toda a geração de números aleatórios depende do hash da blockchain da Trust Chain, por favor garanta uma conexão de rede normal
- O intervalo de valores de peso do seletor aleatório ponderado é 0-1000, representando 0-100% de probabilidade
- Os parâmetros de distribuição de probabilidade precisam fornecer a lista de parâmetros correta de acordo com o tipo específico de distribuição
- É recomendado usar o parâmetro salt em ambiente de produção para aumentar a aleatoriedade
Tratamento de Erros
O serviço pode retornar tipos de erro:
{
"error": "Error message",
"code": "Error code",
"requestId": "Request ID"
}
Códigos de erro comuns:
INVALID_PARAMS: Erro de parâmetroNETWORK_ERROR: Erro de conexão de redeCHAIN_ERROR: Erro de acesso à blockchainINTERNAL_ERROR: Erro interno do serviço
Considerações de Desempenho
- Cada solicitação de geração de números aleatórios precisa acessar a blockchain, o que pode ter um certo atraso
- É recomendado armazenar em cache números aleatórios usados com frequência
- Preste atenção à frequência de solicitações ao lidar com um grande número de solicitações concorrentes
Guia de Contribuição
Bem-vindo(a) a enviar Issue e Pull Request para ajudar a melhorar este projeto. Antes de enviar, por favor garanta:
- O código está em conformidade com a especificação PEP 8
- Casos de teste apropriados são adicionados
- Documentos relacionados são atualizados
Licença
Este projeto usa a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.