Skip to main content
Glama
suxiongye
by suxiongye

RandomWeb3MCP - Web3 随机元素生成服务

RandomWeb3MCP 是基于 EVM 区块哈希的随机数生成服务,提供多种随机数生成工具,可用于游戏、金融、测试等领域。

特征

  • 可验证性:所有随机数均基于区块链哈希生成,确保公平性和可验证性

  • 多样性:支持各种随机数生成场景,从基本随机数到复杂的概率分布

  • 可靠性:使用区块链作为熵源,确保随机性质量

  • 可用性:提供简单直观的 API 接口,方便集成

Related MCP server: Random Value MCP Server

安装

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

快速入门

tico 或 Cursor 中的配置

在 Cursor 设置中添加 random-web3-mcp 服务配置:

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

工具清单

生成基本随机数

姓名

基本随机数生成器

功能

生成指定范围内的随机整数

参数

  • min_value(int,可选):最小值(含)。默认为 0。

  • max_value(int,可选):最大值(含)。默认为 1000000。

  • salt(字符串,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含随机数结果的 JSON 字符串

应用场景

  1. 彩票系统

  2. 游戏随机数

  3. 随机 ID 生成

  4. 测试数据生成

生成随机数组

姓名

随机数组生成器

功能

生成指定长度的随机数组

参数

  • array_length (int,可选):数组长度。默认为 1。

  • min_value(int,可选):最小值。默认为 0。

  • max_value(int,可选):最大值。默认为 1000000。

  • salt (str, 可选): 随机数盐值。默认为 ''

返回

包含随机数组的 JSON 字符串

应用场景

  1. 批量随机数生成

  2. 随机抽样

  3. 测试数据集生成

  4. 随机任务分配

生成随机加权

姓名

加权随机选择器

功能

根据权重随机选择一个选项

参数

  • 选项(List [str]):选项列表

  • weights (List[int]): 对应的权重列表(0-1000)

  • salt (str, 可选): 随机数盐值。默认为 ''

返回

包含选择结果的 JSON 字符串

应用场景

  1. 彩票系统(不同概率的奖品)

  2. 随机掉落(加重物品掉落)

  3. 任务分配(基于优先级)

  4. A/B 测试(不同比例的实验组)

生成随机特征

姓名

随机特征分配器

功能

为对象生成一组随机特征值,每个特征值在其指定范围内。特征值被编码成位图,每个特征占用 8 位

参数

  • feature_count(int):要生成的特征数量

  • feature_max_values (List[int]):每个特征的最大值列表,长度必须等于 feature_count

  • salt(str,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含特征值和位图的 JSON 字符串,格式为:

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

应用场景

  1. 游戏角色属性生成(力量、敏捷、智力等)

  2. 装备属性随机化(攻击、防御、速度等)

  3. 生物性状模拟(基因、性状等)

  4. 随机场景生成(地形、天气、环境等)

生成分布

姓名

概率分布随机生成器

功能

根据指定的概率分布类型及参数生成随机数。支持各种常见的概率分布。

参数

  • distribution_type(int):分布类型:

    • 1 = 均匀分布(参数:[min_value,max_value])

    • 2 = 正态分布(参数:[平均值,标准差])

    • 3 = 指数分布(参数:[scale_parameter])

    • 4 = 二项分布(参数:[试验次数,成功概率])

  • distribution_parameters (List[float]): 分布参数列表

  • salt(字符串,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含随机值及分布信息的JSON字符串,格式为:

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

应用场景

  1. 金融市场模拟(收益分布、风险分析)

  2. 自然现象模拟(粒子分布、噪声产生)

  3. 负载测试(用户行为分布)

  4. 统计抽样(实验数据生成)

生成随机事件

姓名

随机事件触发器

功能

根据给定的概率触发一系列事件,每个事件都有独立的触发概率。使用位图记录触发状态,方便处理。

参数

  • event_count (int):事件总数

  • event_probabilities (List[int]): 每个事件的触发概率(0-1000,代表0-100%)

  • salt(str,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含事件触发结果的JSON字符串,格式为:

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

应用场景

  1. 游戏随机事件(触发剧情、掉落物品)

  2. 概率效果判定(技能触发、连击判定)

  3. 风险事件模拟(故障预测、事故事件)

  4. 多重条件确定(组合概率事件)

生成随机种子

姓名

随机种子生成器

功能

生成高熵随机种子,用于加密或其他需要高质量随机数的场景。使用区块链哈希作为熵源,确保随机性。

参数

  • seed_length(int):要生成的种子的长度(以字节为单位)

  • salt(str,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含随机种子的 JSON 字符串,格式为:

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

应用场景

  1. 密钥生成(加密密钥、签名种子)

  2. 安全令牌(会话标识符、身份验证令牌)

  3. 随机数初始化(PRNG种子、模拟初始状态)

  4. 唯一标识符生成(UUID 种子、随机标识符)

随机数组

姓名

随机数组洗牌器

功能

随机打乱输入数组,确保每个元素出现在任意位置的概率均等。使用 Fisher-Yates 打乱算法来确保公平性。

参数

  • input_array(列表):要打乱的数组,元素可以是任何类型

  • salt(字符串,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含混洗数组的 JSON 字符串,格式如下:

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

应用场景

  1. 游戏洗牌(扑克牌、麻将牌)

  2. 随机排序(问题顺序、播放列表)

  3. 随机分组(团队分配、实验分组)

  4. 数据混洗(训练数据集、测试用例)

生成坐标

姓名

随机坐标生成器

功能

在指定维度空间中生成随机坐标点,每个维度都有各自的取值范围。支持任意维度的坐标生成。

参数

  • 维度(int):坐标维度数(1D、2D、3D 等)

  • min_values (List[float]):每个维度的最小值列表

  • max_values (List[float]):每个维度的最大值列表

  • coordinate_count(int):要生成的坐标点的数量

  • salt(字符串,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含随机坐标的 JSON 字符串,格式为:

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

应用场景

  1. 游戏对象定位(NPC位置、物品分布)

  2. 粒子系统(效果生成、粒子分布)

  3. 地图生成(地形高度、资源分布)

  4. 空间采样(3D建模、空间分析)

生成稀有度

姓名

稀有度随机分配器

功能

在指定维度空间中生成随机坐标点,每个维度都有各自的取值范围。支持任意维度的坐标生成。

参数

  • item_count:项目数量

  • rarity_tiers:稀有度等级数组

  • rarity_percentages:每个稀有度等级的概率百分比

  • guaranteed_minimums:每个稀有度等级的保证数量(可选)

  • salt(字符串,可选):用于增加随机性的随机数盐值。默认为 ''

返回

包含随机稀有度数组的 JSON 字符串,格式如下:

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

应用场景

  1. 游戏物品掉落(不同稀有度的装备、物品)

  2. 彩票系统(不同概率的奖品)

  3. 资源配置(不同稀有度的资源、材料)

  4. 随机事件触发(不同概率事件)

应用场景

游戏开发

  • 随机物品掉落

  • 角色属性生成

  • 地图随机生成

  • 概率事件触发

财务申请

  • 风险模拟

  • 投资组合分析

  • 市场行为模拟

测试数据

  • 随机测试用例生成

  • 加载测试数据

  • 性能测试样例

科学计算

  • 蒙特卡罗模拟

  • 粒子系统模拟

  • 随机抽样

笔记

  1. 所有随机数生成均依赖于信任链的区块链哈希,请确保网络连接正常

  2. 加权随机选择器权重值范围是0-1000,代表0-100%的概率

  3. 概率分布参数需要根据具体的分布类型提供正确的参数列表

  4. 生产环境建议使用salt参数增加随机性

错误处理

服务可能返回错误类型:

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

常见错误代码:

  • INVALID_PARAMS :参数错误

  • NETWORK_ERROR :网络连接错误

  • CHAIN_ERROR :区块链访问错误

  • INTERNAL_ERROR :内部服务错误

性能考虑

  • 每个随机数生成请求都需要访问区块链,可能会有一定的延迟

  • 建议缓存经常使用的随机数

  • 处理大量并发请求时要注意请求频率

贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进本项目。提交前请确保:

  1. 代码符合PEP 8规范

  2. 添加适当的测试用例

  3. 相关文件已更新

执照

本项目使用 MIT 许可证。详情请参阅LICENSE文件。

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
    174 PyPI
    51
    MIT
  • F
    license
    B
    quality
    D
    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