Skip to main content
Glama
turlockmike

MCP Rand

by turlockmike

MCPランド

npmバージョン ライセンス: ISC

UUID、数値、文字列、パスワード、ガウス分布、サイコロを振る、カードの描画など、さまざまな乱数生成ユーティリティを提供するモデル コンテキスト プロトコル (MCP) サーバー。

インストール

npm install mcp-rand

またはグローバルにインストールします:

npm install -g mcp-rand

Related MCP server: RandomUser MCP Server

特徴

UUIDジェネレータ

  • RFC 4122 バージョン 4 UUID を生成する

  • 安全な乱数生成のためにNodeのネイティブ暗号モジュールを使用する

  • パラメータは必要ありません

乱数ジェネレータ

  • 指定された範囲内で乱数を生成します

  • 設定可能な最小値と最大値(両端を含む)

  • パラメータが指定されていない場合は、デフォルトで 0 ~ 100 の範囲になります。

ガウス乱数ジェネレータ

  • ガウス(正規)分布に従う乱数を生成します

  • 0~1の範囲に正規化

  • パラメータは必要ありません

ランダム文字列ジェネレータ

  • 設定可能な長さと文字セットでランダムな文字列を生成します

  • 複数の文字セットをサポートします:

    • 英数字 (デフォルト): A ~ Z、a ~ z、0 ~ 9

    • 数字: 0~9

    • 小文字: a〜z

    • 大文字: AZ

    • 特殊: !@#$%^&*()_+-=[]{};'"\|,.<>/?

  • 設定可能な文字列の長さ(デフォルトは10)

パスワードジェネレーター

  • さまざまな文字タイプを組み合わせた強力なパスワードを生成します

  • 各タイプ(大文字、小文字、数字、特殊文字)から少なくとも 1 文字が含まれていることを確認します。

  • 設定可能な長さ(最小 8、デフォルト 16)

  • 警告: パスワードはローカルで生成されますが、専用のパスワードマネージャーを使用することをお勧めします。

ダイスローラー

  • 標準的なサイコロ表記法を使用して複数のサイコロを振る

  • 「2d6」(6面ダイス2個)、「1d20」(20面ダイス1個)などの表記をサポートします。

  • 各サイコロセットの個々のロールと合計を返します

  • 複数の異なるサイコロセットを一度に振ることができます(例:「2d6」、「1d20」、「4d4」)

カード引き出し

  • 標準的な52枚のカードデッキからカードを引く

  • base64エンコードを使用して、ドロー間のデッキの状態を維持します。

  • 引いたカードと残りのデッキの状態を返します

  • デッキサイズまで任意の数のカードを引くことをサポートします

  • 各ドローの前に利用可能なカードを適切にシャッフルする

使用法

CLIツールとして

npx mcp-rand

MCPクライアントとの統合

MCP クライアント構成に追加します:

{
  "mcpServers": {
    "mcp-rand": {
      "command": "node",
      "args": ["path/to/mcp-rand/build/index.js"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

使用例

// Generate UUID
const uuid = await client.callTool('generate_uuid', {});
console.log(uuid); // e.g., "550e8400-e29b-41d4-a716-446655440000"

// Generate random number
const number = await client.callTool('generate_random_number', {
  min: 1,
  max: 100
});
console.log(number); // e.g., 42

// Generate Gaussian random number
const gaussian = await client.callTool('generate_gaussian', {});
console.log(gaussian); // e.g., 0.6827

// Generate random string
const string = await client.callTool('generate_string', {
  length: 15,
  charset: 'alphanumeric'
});
console.log(string); // e.g., "aB9cD8eF7gH6iJ5"

// Generate password
const password = await client.callTool('generate_password', {
  length: 20
});
console.log(password); // e.g., "aB9#cD8$eF7@gH6*iJ5"

// Roll dice
const rolls = await client.callTool('roll_dice', {
  dice: ['2d6', '1d20', '4d4']
});
console.log(rolls);
/* Output example:
[
  {
    "dice": "2d6",
    "rolls": [3, 1],
    "total": 4
  },
  {
    "dice": "1d20",
    "rolls": [4],
    "total": 4
  },
  {
    "dice": "4d4",
    "rolls": [2, 3, 2, 3],
    "total": 10
  }
]
*/

// Draw cards
const draw1 = await client.callTool('draw_cards', {
  count: 5
});
console.log(draw1);
/* Output example:
{
  "drawnCards": [
    { "suit": "hearts", "value": "A" },
    { "suit": "diamonds", "value": "7" },
    { "suit": "clubs", "value": "K" },
    { "suit": "spades", "value": "2" },
    { "suit": "hearts", "value": "10" }
  ],
  "remainingCount": 47,
  "deckState": "t//+///bDw=="
}
*/

// Draw more cards using previous deck state
const draw2 = await client.callTool('draw_cards', {
  count: 3,
  deckState: draw1.deckState
});
console.log(draw2);
/* Output example:
{
  "drawnCards": [
    { "suit": "diamonds", "value": "Q" },
    { "suit": "clubs", "value": "5" },
    { "suit": "spades", "value": "J" }
  ],
  "remainingCount": 44,
  "deckState": "l//+//zbDw=="
}
*/

貢献

開発のセットアップとガイドラインについては、 CONTRIBUTING.md を参照してください。

ライセンス

ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/turlockmike/mcp-rand'

If you have feedback or need assistance with the MCP directory API, please join our Discord server