Skip to main content
Glama
suxiongye
by suxiongye

RandomWeb3MCP - Web3 Random Element Generation Service

RandomWeb3MCP is a random element generation service based on EVM block hash. The service provides various random element generation tools that can be used in games, finance, testing, and other fields.

Features

  • Verifiability: All random numbers are generated based on blockchain hash, ensuring fairness and verifiability

  • Diversity: Supports various random number generation scenarios, from basic random numbers to complex probability distributions

  • Reliability: Uses blockchain as entropy source to ensure randomness quality

  • Usability: Provides simple and intuitive API interfaces for easy integration

Related MCP server: Random Value MCP Server

Installation

git clone git@github.com:suxiongye/random-web3-mcp.git
pip install -e .

Quick Start

Configuration in tico or Cursor

Add random-web3-mcp service configuration in Cursor settings:

{
  "mcpServers": {
    "random-web3-mcp": {
      "command": "uv",
      "args": ["--directory", "local_repo_directory/zxl-mcp-server", "run", "main.py"]
    }
  }
}

Tool List

generate_basic_random

Name

Basic Random Number Generator

Function

Generate a random integer within the specified range

Parameters

  • min_value (int, optional): Minimum value (inclusive). Defaults to 0.

  • max_value (int, optional): Maximum value (inclusive). Defaults to 1000000.

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing the random number result

Application Scenarios

  1. Lottery systems

  2. Game random numbers

  3. Random ID generation

  4. Test data generation

generate_random_array

Name

Random Array Generator

Function

Generate a random array of specified length

Parameters

  • array_length (int, optional): Array length. Defaults to 1.

  • min_value (int, optional): Minimum value. Defaults to 0.

  • max_value (int, optional): Maximum value. Defaults to 1000000.

  • salt (str, optional): Random number salt value. Defaults to ''

Returns

JSON string containing the random array

Application Scenarios

  1. Batch random number generation

  2. Random sampling

  3. Test dataset generation

  4. Random task assignment

generate_random_weighted

Name

Weighted Random Selector

Function

Randomly select an option based on weights

Parameters

  • options (List[str]): List of options

  • weights (List[int]): Corresponding weight list (0-1000)

  • salt (str, optional): Random number salt value. Defaults to ''

Returns

JSON string containing the selection result

Application Scenarios

  1. Lottery systems (prizes with different probabilities)

  2. Random drops (weighted item drops)

  3. Task assignment (based on priority)

  4. A/B testing (experiment groups with different ratios)

generate_random_feature

Name

Random Feature Allocator

Function

Generate a set of random feature values for objects, each feature value within its specified range. Feature values are encoded into a bitmap, with each feature occupying 8 bits

Parameters

  • feature_count (int): Number of features to generate

  • feature_max_values (List[int]): List of maximum values for each feature, length must equal feature_count

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing feature values and bitmap, formatted as:

{
    "requestId": "Generated request ID",
    "features": [List of feature values],
    "featureBitmap": Feature bitmap value
}

Application Scenarios

  1. Game character attribute generation (strength, agility, intelligence, etc.)

  2. Equipment attribute randomization (attack, defense, speed, etc.)

  3. Biological trait simulation (genes, traits, etc.)

  4. Random scene generation (terrain, weather, environment, etc.)

generate_distribution

Name

Probability Distribution Random Generator

Function

Generate random numbers according to specified probability distribution type and parameters. Supports various common probability distributions.

Parameters

  • distribution_type (int): Distribution type:

    • 1 = Uniform distribution (parameters: [min_value, max_value])

    • 2 = Normal distribution (parameters: [mean, standard_deviation])

    • 3 = Exponential distribution (parameters: [scale_parameter])

    • 4 = Binomial distribution (parameters: [trials, success_probability])

  • distribution_parameters (List[float]): Distribution parameter list

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing random value and distribution information, formatted as:

{
    "requestId": "Generated request ID",
    "randomValue": Generated random value,
    "distributionMetadata": {
        "distributionType": Distribution type,
        ...Distribution parameters
    }
}

Application Scenarios

  1. Financial market simulation (return distribution, risk analysis)

  2. Natural phenomena simulation (particle distribution, noise generation)

  3. Load testing (user behavior distribution)

  4. Statistical sampling (experimental data generation)

generate_random_event

Name

Random Event Trigger

Function

Trigger a series of events based on given probabilities, each event has an independent trigger probability. Uses bitmap to record trigger status for easy processing.

Parameters

  • event_count (int): Total number of events

  • event_probabilities (List[int]): Trigger probability for each event (0-1000, representing 0-100%)

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing event trigger results, formatted as:

{
    "requestId": "Generated request ID",
    "triggeredEvents": Event trigger bitmap,
    "eventResults": [
        {
            "eventId": Event ID,
            "probability": Trigger probability,
            "triggered": Whether triggered,
            "randomValue": Random value
        },
        ...
    ]
}

Application Scenarios

  1. Game random events (trigger plot, drop items)

  2. Probability effect determination (skill trigger, combo determination)

  3. Risk event simulation (fault prediction, accident events)

  4. Multiple condition determination (combined probability events)

generate_random_seed

Name

Random Seed Generator

Function

Generate high-entropy random seed for encryption or other scenarios requiring high-quality random numbers. Uses blockchain hash as entropy source to ensure randomness.

Parameters

  • seed_length (int): Length of seed to generate (in bytes)

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing random seed, formatted as:

{
    "requestId": "Generated request ID",
    "randomSeed": "Random seed in hexadecimal format",
    "entropy": Estimated entropy value
}

Application Scenarios

  1. Key generation (encryption keys, signature seeds)

  2. Security tokens (session identifiers, authentication tokens)

  3. Random number initialization (PRNG seeds, simulation initial states)

  4. Unique identifier generation (UUID seeds, random identifiers)

shuffle_array

Name

Random Array Shuffler

Function

Randomly shuffle the input array, ensuring each element has an equal probability of appearing in any position. Uses Fisher-Yates shuffle algorithm to ensure fairness.

Parameters

  • input_array (List): Array to be shuffled, elements can be of any type

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing the shuffled array, formatted as:

{
    "requestId": "Generated request ID",
    "shuffledArray": [Shuffled array]
}

Application Scenarios

  1. Game shuffling (playing cards, mahjong tiles)

  2. Random ordering (question order, playlist)

  3. Random grouping (team assignment, experiment grouping)

  4. Data shuffling (training dataset, test cases)

generate_coordinate

Name

Random Coordinate Generator

Function

Generate random coordinate points in a specified dimensional space, each dimension has its own value range. Supports coordinate generation in any number of dimensions.

Parameters

  • dimensions (int): Number of coordinate dimensions (1D, 2D, 3D, etc.)

  • min_values (List[float]): List of minimum values for each dimension

  • max_values (List[float]): List of maximum values for each dimension

  • coordinate_count (int): Number of coordinate points to generate

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing random coordinates, formatted as:

{
    "requestId": "Generated request ID",
    "coordinates": [
        [x1, y1, z1, ...],  # First point coordinates
        [x2, y2, z2, ...],  # Second point coordinates
        ...
    ]
}

Application Scenarios

  1. Game object positioning (NPC locations, item distribution)

  2. Particle systems (effect generation, particle distribution)

  3. Map generation (terrain height, resource distribution)

  4. Spatial sampling (3D modeling, spatial analysis)

generate_rarity

Name

Rarity Random Allocator

Function

Generate random coordinate points in a specified dimensional space, each dimension has its own value range. Supports coordinate generation in any number of dimensions.

Parameters

  • item_count: Project quantity

  • rarity_tiers: Rarity level array

  • rarity_percentages: Probability percentage for each rarity level

  • guaranteed_minimums: Guaranteed quantity for each rarity level (optional)

  • salt (str, optional): Random number salt value for increased randomness. Defaults to ''

Returns

JSON string containing random rarity array, formatted as:

{
    "requestId": "Generated request ID",
    "rarityDistribution": [Rarity allocation result]
}

Application Scenarios

  1. Game item drops (different rarity equipment, items)

  2. Lottery systems (prizes with different probabilities)

  3. Resource allocation (different rarity resources, materials)

  4. Random event trigger (different probability events)

Application Scenarios

Game Development

  • Random item drops

  • Character attribute generation

  • Map random generation

  • Probability event trigger

Financial Application

  • Risk simulation

  • Investment portfolio analysis

  • Market behavior simulation

Test Data

  • Random test case generation

  • Load test data

  • Performance test sample

Scientific Calculation

  • Monte Carlo simulation

  • Particle system simulation

  • Random sampling

Notes

  1. All random number generation depends on the blockchain hash of the Trust Chain, please ensure normal network connection

  2. Weighted random selector weight value range is 0-1000, representing 0-100% probability

  3. Probability distribution parameters need to provide correct parameter list according to specific distribution type

  4. It is recommended to use salt parameter in production environment to increase randomness

Error Handling

Service may return error types:

{
    "error": "Error message",
    "code": "Error code",
    "requestId": "Request ID"
}

Common error codes:

  • INVALID_PARAMS: Parameter error

  • NETWORK_ERROR: Network connection error

  • CHAIN_ERROR: Blockchain access error

  • INTERNAL_ERROR: Internal service error

Performance Consideration

  • Each random number generation request needs to access the blockchain, which may have a certain delay

  • It is recommended to cache frequently used random numbers

  • Pay attention to request frequency when handling a large number of concurrent requests

Contribution Guide

Welcome to submit Issue and Pull Request to help improve this project. Before submitting, please ensure:

  1. Code conforms to PEP 8 specification

  2. Appropriate test cases are added

  3. Related documents are updated

License

This project uses MIT License. See LICENSE file for details.

Available Tools

10 tools
generate_basic_randomA

Basic Random Number Generator

Generate a random integer within the specified range

Args:
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".
    min_value (int, optional): Minimum value (inclusive). Defaults to 0.
    max_value (int, optional): Maximum value (inclusive). Defaults to 1000000.

Returns:
    str: JSON string containing the random number result

Application Scenarios:
1. Lottery systems
2. Game random numbers
3. Random ID generation
4. Test data generation
ParametersJSON Schema
NameRequiredDescriptionDefault
max_valueNo
min_valueNo
saltNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool generates random integers within inclusive bounds and returns JSON strings, but doesn't mention randomness quality, performance characteristics, or potential limitations. It adds basic behavioral context but could be more comprehensive for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Args, Returns, Application Scenarios) and front-loads the core purpose. While efficient, the 'Application Scenarios' section could be more concise by grouping similar use cases or using bullet points more effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no annotations and no output schema, the description provides adequate coverage of inputs and basic behavior but lacks details about the JSON return format structure, error conditions, or performance considerations. It's minimally viable but has clear gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate - and it does by explaining all 3 parameters: salt ('for increased randomness'), min_value ('Minimum value (inclusive)'), and max_value ('Maximum value (inclusive)'). It provides meaningful semantics beyond the bare schema, though it could elaborate on how salt affects randomness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Generate a random integer') and resource ('within the specified range'), distinguishing it from sibling tools like generate_random_array or generate_random_weighted. The title 'Basic Random Number Generator' reinforces this purpose without being tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear context for when to use this tool (lottery systems, game random numbers, etc.), but it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools. This gives good guidance but lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_coordinateA

Random Coordinate Generator

Generate random coordinate points in a specified dimensional space, each dimension has its own value range.
Supports coordinate generation in any number of dimensions.

Args:
    dimensions (int): Number of coordinate dimensions (1D, 2D, 3D, etc.)
    min_values (List[float]): List of minimum values for each dimension
    max_values (List[float]): List of maximum values for each dimension
    coordinate_count (int): Number of coordinate points to generate
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".

Returns:
    str: JSON string containing random coordinates, formatted as:
    {
        "requestId": "Generated request ID",
        "coordinates": [
            [x1, y1, z1, ...],  # First point coordinates
            [x2, y2, z2, ...],  # Second point coordinates
            ...
        ]
    }

Application Scenarios:
1. Game object positioning (NPC locations, item distribution)
2. Particle systems (effect generation, particle distribution)
3. Map generation (terrain height, resource distribution)
4. Spatial sampling (3D modeling, spatial analysis)
ParametersJSON Schema
NameRequiredDescriptionDefault
coordinate_countYes
dimensionsYes
max_valuesYes
min_valuesYes
saltNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by explaining the random generation behavior, optional salt parameter for increased randomness, and the JSON return format. It doesn't mention performance characteristics, rate limits, or error conditions, but provides substantial behavioral context beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (title, description, Args, Returns, Application Scenarios) and front-loaded core functionality. While comprehensive, it could be slightly more concise by integrating the 'Args' explanations more naturally into the flow rather than as a separate labeled section.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, 0% schema description coverage, and no output schema, the description provides complete context: clear purpose, detailed parameter semantics, return format specification with JSON structure example, and practical usage scenarios. This fully compensates for the lack of structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing detailed parameter explanations in the 'Args' section. Each parameter's purpose is clearly explained (dimensions as 'Number of coordinate dimensions', min/max_values as range lists, coordinate_count as 'Number of coordinate points to generate', salt as 'Random number salt value for increased randomness').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Generate random coordinate points in a specified dimensional space' with specific details about dimensional ranges and coordinate generation. It distinguishes itself from sibling tools like 'generate_basic_random' or 'generate_random_array' by focusing specifically on coordinate generation with dimensional constraints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear context for when to use this tool (game positioning, particle systems, map generation, spatial sampling). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools for different random generation needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_distributionA

Probability Distribution Random Generator

Generate random numbers according to specified probability distribution type and parameters.
Supports various common probability distributions.

Args:
    distribution_type (int): Distribution type:
        1 = Uniform distribution (parameters: [min_value, max_value])
        2 = Normal distribution (parameters: [mean, standard_deviation])
        3 = Exponential distribution (parameters: [scale_parameter])
        4 = Binomial distribution (parameters: [trials, success_probability])
    distribution_parameters (List[float]): Distribution parameter list
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".

Returns:
    str: JSON string containing random value and distribution information, formatted as:
    {
        "requestId": "Generated request ID",
        "randomValue": Generated random value,
        "distributionMetadata": {
            "distributionType": Distribution type,
            ...Distribution parameters
        }
    }

Application Scenarios:
1. Financial market simulation (return distribution, risk analysis)
2. Natural phenomena simulation (particle distribution, noise generation)
3. Load testing (user behavior distribution)
4. Statistical sampling (experimental data generation)
ParametersJSON Schema
NameRequiredDescriptionDefault
distribution_parametersYes
distribution_typeYes
saltNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's function and return format but lacks details on error handling, rate limits, or side effects. It mentions the 'salt' parameter for 'increased randomness' but does not explain how this affects behavior or if there are any constraints. The description adds basic context but misses deeper behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, returns, application scenarios) and front-loaded key information. However, the 'Application Scenarios' section is somewhat lengthy and could be more concise. Most sentences earn their place, but there is minor verbosity in the scenarios list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no annotations, no output schema), the description is largely complete. It explains the tool's purpose, parameters, and return format in detail. However, it lacks information on error cases or limitations (e.g., parameter validation, distribution constraints). For a tool with no structured output schema, the return format description is helpful but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It provides detailed semantics for all parameters: 'distribution_type' with enumerated values and corresponding 'distribution_parameters' for each type, and 'salt' as optional for randomness. This adds significant meaning beyond the bare schema, fully documenting parameter usage and relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate random numbers according to specified probability distribution type and parameters.' It specifies the verb ('generate') and resource ('random numbers') with the constraint of following probability distributions. It distinguishes from siblings like 'generate_basic_random' by emphasizing distribution-based generation rather than basic random number generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear context for when to use this tool (e.g., financial simulation, natural phenomena simulation). However, it does not explicitly state when NOT to use it or name specific alternatives among the sibling tools (e.g., when to use 'generate_basic_random' instead). The guidance is contextual but lacks explicit exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_random_arrayA

Random Array Generator

Generate a random array of specified length

Args:
    salt (str, optional): Random number salt value. Defaults to "".
    array_length (int, optional): Array length. Defaults to 1.
    min_value (int, optional): Minimum value. Defaults to 0.
    max_value (int, optional): Maximum value. Defaults to 1000000.
    allow_duplicates (bool, optional): Allow duplicate values. Defaults to True.

Returns:
    str: JSON string containing the random array

Application Scenarios:
1. Batch random number generation
2. Random sampling
3. Test dataset generation
4. Random task assignment
ParametersJSON Schema
NameRequiredDescriptionDefault
allow_duplicatesNo
array_lengthNo
max_valueNo
min_valueNo
saltNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('JSON string containing the random array') and the default values for parameters, but doesn't mention important behavioral aspects like whether the generation is deterministic with the salt, performance characteristics, or error conditions for invalid parameter combinations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, Args, Returns, Application Scenarios) and every sentence earns its place. It's appropriately sized for a tool with 5 parameters and provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description does a good job covering the essentials: purpose, parameters, return format, and usage scenarios. However, it lacks information about error handling, performance considerations, and the relationship between parameters (like what happens when array_length > (max_value-min_value+1) with allow_duplicates=false).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate - and it does by documenting all 5 parameters with their types, purposes, and default values in the 'Args' section. This adds significant value beyond the bare schema. However, it doesn't explain the salt's effect on randomness or constraints like min_value <= max_value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Generate a random array of specified length' which is a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from sibling tools like 'generate_basic_random' or 'shuffle_array', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear context for when to use this tool (batch generation, sampling, test data, task assignment), giving practical guidance. However, it doesn't explicitly state when NOT to use this tool or mention alternatives among the sibling tools, which would be needed for a score of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_random_eventA

Random Event Trigger

Trigger a series of events based on given probabilities, each event has an independent trigger probability.
Uses bitmap to record trigger status for easy processing.

Args:
    event_count (int): Total number of events
    event_probabilities (List[int]): Trigger probability for each event (0-1000, representing 0-100%)
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".

Returns:
    str: JSON string containing event trigger results, formatted as:
    {
        "requestId": "Generated request ID",
        "triggeredEvents": Event trigger bitmap,
        "eventResults": [
            {
                "eventId": Event ID,
                "probability": Trigger probability,
                "triggered": Whether triggered,
                "randomValue": Random value
            },
            ...
        ]
    }

Application Scenarios:
1. Game random events (trigger plot, drop items)
2. Probability effect determination (skill trigger, combo determination)
3. Risk event simulation (fault prediction, accident events)
4. Multiple condition determination (combined probability events)
ParametersJSON Schema
NameRequiredDescriptionDefault
event_countYes
event_probabilitiesYes
saltNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it triggers events probabilistically, uses a bitmap for status recording, and returns a JSON string with detailed results. However, it lacks information on side effects, error handling, or performance characteristics like rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with sections (Args, Returns, Application Scenarios) but is somewhat verbose. Sentences like 'Uses bitmap to record trigger status for easy processing' add value, but the list of scenarios could be more concise. It's front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0% schema coverage, the description provides good context: it explains the tool's purpose, parameters, return format, and usage scenarios. However, it doesn't cover error cases or edge behaviors, leaving some gaps for a probabilistic tool with 3 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: 'event_count' as total number of events, 'event_probabilities' as trigger probabilities (0-1000 for 0-100%), and 'salt' as a random number salt for increased randomness. This clarifies beyond the bare schema, though it could detail format constraints more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Trigger a series of events based on given probabilities, each event has an independent trigger probability.' It specifies the verb ('trigger') and resource ('events'), though it doesn't explicitly differentiate from siblings like 'generate_random_weighted' or 'generate_random_array' beyond mentioning 'bitmap' recording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear contexts for when to use this tool (e.g., game random events, probability effect determination, risk simulation). However, it doesn't explicitly state when not to use it or name alternatives among siblings, such as when simpler random generation might suffice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_random_featureA

Random Feature Allocator

Generate a set of random feature values for objects, each feature value within its specified range.
Feature values are encoded into a bitmap, with each feature occupying 8 bits.

Args:
    feature_count (int): Number of features to generate
    feature_max_values (List[int]): List of maximum values for each feature, length must equal feature_count
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".

Returns:
    str: JSON string containing feature values and bitmap, formatted as:
    {
        "requestId": "Generated request ID",
        "features": [List of feature values],
        "featureBitmap": Feature bitmap value
    }

Application Scenarios:
1. Game character attribute generation (strength, agility, intelligence, etc.)
2. Equipment attribute randomization (attack, defense, speed, etc.)
3. Biological trait simulation (genes, traits, etc.)
4. Random scene generation (terrain, weather, environment, etc.)
ParametersJSON Schema
NameRequiredDescriptionDefault
feature_countYes
feature_max_valuesYes
saltNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it generates random values within specified ranges, encodes them into an 8-bit bitmap, and returns a JSON string with specific fields. It also mentions the optional salt parameter for increased randomness. However, it doesn't cover potential limitations like rate limits, error conditions, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, returns, application scenarios) and front-loads the core functionality. Most sentences earn their place by providing essential information. However, the 'Application Scenarios' section could be slightly more concise, and the description is somewhat longer than minimal necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides substantial context: clear purpose, parameter semantics, return format, and usage scenarios. It effectively compensates for the lack of structured metadata. The main gap is the absence of explicit error handling or boundary case information, preventing a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must fully compensate. It does this excellently by explaining all three parameters: feature_count (number of features), feature_max_values (list of maximum values with length constraint), and salt (optional random number salt with default value). The description adds crucial semantic information beyond the bare schema, including the relationship between feature_count and feature_max_values length.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a set of random feature values for objects, each feature value within its specified range.' It specifies the verb (generate) and resource (random feature values) with details about encoding into a bitmap. However, it doesn't explicitly differentiate from sibling tools like generate_basic_random or generate_random_array, which may also generate random values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear contexts for when to use this tool (e.g., game character attribute generation, equipment attribute randomization). This gives practical guidance on appropriate use cases. However, it doesn't explicitly state when NOT to use it or mention alternatives among sibling tools, which would be needed for a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_random_seedA

Random Seed Generator

Generate high-entropy random seed for encryption or other scenarios requiring high-quality random numbers.
Uses blockchain hash as entropy source to ensure randomness.

Args:
    seed_length (int): Length of seed to generate (in bytes)
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".

Returns:
    str: JSON string containing random seed, formatted as:
    {
        "requestId": "Generated request ID",
        "randomSeed": "Random seed in hexadecimal format",
        "entropy": Estimated entropy value
    }

Application Scenarios:
1. Key generation (encryption keys, signature seeds)
2. Security tokens (session identifiers, authentication tokens)
3. Random number initialization (PRNG seeds, simulation initial states)
4. Unique identifier generation (UUID seeds, random identifiers)
ParametersJSON Schema
NameRequiredDescriptionDefault
saltNo
seed_lengthYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it explains the entropy source (blockchain hash), describes the return format in detail, and mentions the optional salt parameter with its default value. It doesn't cover potential limitations like rate limits or error conditions, but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, returns, scenarios) and front-loaded with the core purpose. While comprehensive, some sentences in the scenarios section could be more concise, but overall it maintains good information density with minimal redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (security-focused random generation), lack of annotations, and absence of output schema, the description provides excellent completeness. It covers purpose, parameters, return format, use cases, and implementation details (entropy source), giving the agent everything needed to understand and invoke this tool correctly without structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains what 'seed_length' represents (bytes), clarifies that 'salt' is optional with a default value and its purpose ('for increased randomness'), and provides context about how these parameters affect the generation process, fully compensating for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Generate') and resource ('high-entropy random seed'), and distinguishes it from siblings by specifying its unique use for encryption/security scenarios requiring high-quality randomness, unlike more general random generation tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance through the 'Application Scenarios' section, listing four specific use cases (key generation, security tokens, etc.), and implicitly distinguishes it from siblings by emphasizing high-quality randomness for security applications, which helps the agent select this over other random generation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_random_weightedA

Weighted Random Selector

Randomly select an option based on weights

Args:
    options (List[str]): List of options
    weights (List[int]): Corresponding weight list (0-1000)
    salt (str, optional): Random number salt value. Defaults to "".

Returns:
    str: JSON string containing the selection result

Application Scenarios:
1. Lottery systems (prizes with different probabilities)
2. Random drops (weighted item drops)
3. Task assignment (based on priority)
4. A/B testing (experiment groups with different ratios)
ParametersJSON Schema
NameRequiredDescriptionDefault
optionsYes
saltNo
weightsYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the core functionality (weighted random selection) and return format (JSON string), but lacks details on potential side effects, error handling, or performance characteristics. It adequately describes what the tool does but could benefit from more behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, returns, scenarios) and front-loaded key information. It's appropriately sized but includes some redundancy (e.g., restating 'Weighted Random Selector' in the first line). Every sentence adds value, though minor trimming could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no annotations, and no output schema, the description is moderately complete. It covers purpose, parameters, returns, and usage scenarios, but lacks details on error cases, output structure beyond 'JSON string,' or how it differs from siblings. Given the complexity, it's adequate but has gaps in full contextual understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage, the description compensates by explaining parameters in the 'Args' section: options as a list of strings, weights as corresponding integers (0-1000), and salt as an optional string with a default. This adds meaningful semantics beyond the bare schema, though it doesn't fully detail validation rules or interdependencies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Weighted Random Selector' and 'Randomly select an option based on weights.' It specifies the verb (select) and resource (option) with the weighted mechanism. However, it doesn't explicitly differentiate from sibling tools like 'generate_basic_random' or 'generate_rarity,' which might also involve random selection but with different approaches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance through the 'Application Scenarios' section, listing four specific use cases (e.g., lottery systems, A/B testing). This clearly indicates when to use this tool, though it doesn't explicitly state when not to use it or name alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_rarityC

Rarity Distributor Args: item_count: Number of items rarity_tiers: Array of rarity tiers rarity_percentages: Probability percentage for each rarity tier guaranteed_minimums: Minimum guaranteed count for each rarity tier (optional) salt: Additional entropy source

ParametersJSON Schema
NameRequiredDescriptionDefault
guaranteed_minimumsNo
item_countYes
rarity_percentagesYes
rarity_tiersYes
saltNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It lists parameters but doesn't explain what the tool actually does behaviorally - how items are generated, what the output format is, whether it's deterministic with salt, or any constraints. The title 'Rarity Distributor' suggests distribution behavior but lacks operational details needed for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and structured with a title followed by parameter list. Each parameter gets a brief explanation. There's no wasted text, though it could be more front-loaded with a purpose statement. The structure is clear but could be more efficient in conveying the tool's purpose upfront.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It lists parameters but doesn't explain the tool's operation, output format, or behavioral characteristics. For a tool with this complexity (rarity distribution with probabilities and guarantees), the description should explain how the distribution works, what gets returned, and any constraints or edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists all 5 parameters with brief explanations, adding meaning beyond the schema's property names. However, explanations are minimal (e.g., 'Number of items' for item_count, 'Additional entropy source' for salt) and don't fully clarify parameter relationships or constraints. The description adds some value but doesn't fully compensate for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description provides a title 'Rarity Distributor' which implies distributing items by rarity, but lacks a clear verb-action statement. It distinguishes from siblings by focusing on rarity distribution rather than general random generation, but doesn't explicitly state what the tool does (e.g., 'generate items with specified rarity distribution'). The purpose is somewhat vague but not tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus sibling tools like 'generate_random_weighted' or 'generate_distribution'. The description lists parameters but doesn't provide context about appropriate use cases, prerequisites, or alternatives. Usage is implied through parameter names but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shuffle_arrayA

Random Array Shuffler

Randomly shuffle the input array, ensuring each element has an equal probability of appearing in any position.
Uses Fisher-Yates shuffle algorithm to ensure fairness.

Args:
    input_array (List): Array to be shuffled, elements can be of any type
    salt (str, optional): Random number salt value for increased randomness. Defaults to "".

Returns:
    str: JSON string containing the shuffled array, formatted as:
    {
        "requestId": "Generated request ID",
        "shuffledArray": [Shuffled array]
    }

Application Scenarios:
1. Game shuffling (playing cards, mahjong tiles)
2. Random ordering (question order, playlist)
3. Random grouping (team assignment, experiment grouping)
4. Data shuffling (training dataset, test cases)
ParametersJSON Schema
NameRequiredDescriptionDefault
input_arrayYes
saltNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing the algorithm used (Fisher-Yates), fairness guarantee, and return format. It doesn't mention performance characteristics, error handling, or limitations like array size constraints, which would make it a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections (Args, Returns, Application Scenarios) and front-loaded purpose. The algorithm explanation could be slightly more concise, but every sentence adds value. Not perfectly minimal but efficiently organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no annotations and no output schema, the description provides good coverage: purpose, algorithm, parameters, return format, and usage scenarios. It doesn't explain error cases or performance limits, keeping it from a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate fully. It successfully explains both parameters: 'input_array' as 'Array to be shuffled, elements can be of any type' and 'salt' as 'Random number salt value for increased randomness' with default value. This adds crucial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('shuffle') and resource ('input array'), and distinguishes it from siblings by focusing on array shuffling rather than random generation. The title 'Random Array Shuffler' directly communicates the function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Application Scenarios' section provides clear context for when to use this tool (game shuffling, random ordering, grouping, data shuffling). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv1.0.0
    • First observedgenerate_basic_random
    • First observedgenerate_coordinate
    • First observedgenerate_distribution
    • First observedgenerate_random_array
    • First observedgenerate_random_event
    • First observedgenerate_random_feature
    • First observedgenerate_random_seed
    • First observedgenerate_random_weighted
    • First observedgenerate_rarity
    • First observedshuffle_array

TDQS

A3.6/5.0

Scored across 10 tools

Disambiguation3/5

The tools have overlapping purposes in random generation, with multiple tools generating random numbers or arrays (e.g., generate_basic_random, generate_random_array, generate_distribution). However, descriptions clarify distinctions like coordinate generation, distribution types, or weighted selection, helping agents differentiate between them. Some ambiguity remains, such as between generate_random_array and shuffle_array for array manipulation.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a clear 'generate_' or 'shuffle_' prefix, making them predictable and readable. The naming convention is uniform across all tools, with no mixing of styles or deviations, which aids in easy identification and usage.

Tool Count4/5

With 10 tools, the count is reasonable for a random generation server, covering various aspects like basic numbers, coordinates, distributions, and shuffling. It's slightly heavy but well-scoped, as each tool addresses a specific niche in random generation without being excessive for the domain.

Completeness4/5

The toolset covers a broad range of random generation scenarios, including numbers, arrays, distributions, events, and seeds, with no obvious gaps for core functionalities. Minor gaps might include lack of tools for random string generation or more advanced statistical distributions, but the existing set supports most common use cases effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Production-ready MCP server that provides LLMs with essential random generation abilities, including random integers, floats, choices, shuffling, and cryptographically secure tokens.
    7
    49 PyPI
    51
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    Generates random integers within a specified range and random alphanumeric strings of specified length through MCP protocol integration.
    2
    -
  • A
    license
    B
    quality
    D
    maintenance
    drand-mcp-server is a service that provides verifiable random numbers for model-driven processes in AI applications, supporting the acquisition of random numbers by time or round.
    3
    2
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    An encrypted and secure random number generation server that complies with the MCP protocol, suitable for AI applications, LLMS, and other systems that require high-quality random numbers.
    7
    2
    Apache 2.0