mcpField
R
Random Number Mcp

Random Number Mcp

ローカル
github.com/zazencodes開発ツール5115 週間前に更新

Random Number Mcp について

Random Number MCP は、Python 標準ライブラリで構築された MCP サーバーで、乱数の整数、浮動小数点数、重み付き選択、シャッフル、セキュアトークンの生成機能を LLM に提供します。擬似乱数と暗号学的に安全な関数の両方を含みます。

主な機能

  1. 01整数と浮動小数点数の乱数生成
  2. 02重み付きリストからの選択
  3. 03リストのシャッフルと重複なし抽出
  4. 04secrets モジュールによるセキュアトークンと整数の生成

活用シーン

  1. 01シミュレーションやゲームでの乱数結果の生成
  2. 02キーやセッション用のセキュアトークンの作成
  3. 03候補リストからのランダムな項目の選択

MCP 対応

本プロジェクトは乱数生成ツールを MCP クライアントに公開する MCP サーバーです。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"random-number": {
"command": "uvx",
"args": [
"random-number-mcp"
]
}
}
}
起動コマンドuvx random-number-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypirandom-number-mcp0.1.2

ツール

7

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
highintegerはい
lowintegerはい

詳細

ランダム番号 MCP

Python 標準ライブラリを使った基本的な乱数生成ユーティリティです。擬似乱数と暗号学的に安全な操作に対応し、整数、浮動小数点数、重み付き選択、リストのシャッフル、安全なトークン生成を行えます。

エージェントスキル版をお探しですか? random-number-skills は、MCP サーバーではなくエージェントスキルとして、同じ乱数生成戦略を実装しています。

デモ動画

https://github.com/user-attachments/assets/303a441a-2b10-47e3-b2a5-c8b51840e362

ランダム番号 MCP サーバー

ツール

ツール目的Python 関数
random_int乱数の整数を生成するrandom.randint()
random_float乱数の浮動小数点数を生成するrandom.uniform()
random_choicesリストから項目を選択する(重みを指定可能)random.choices()
random_shuffle項目をシャッフルした新しいリストを返すrandom.sample()
random_sample母集団から重複なしで k 個の項目を選択するrandom.sample()
secure_token_hex暗号学的に安全な 16 進数トークンを生成するsecrets.token_hex()
secure_random_int暗号学的に安全な整数を生成するsecrets.randbelow()

セットアップ

Claude Desktop

Claude Desktop の設定ファイルに次の内容を追加します。

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "random-number": {
      "command": "uvx",
      "args": ["random-number-mcp"]
    }
  }
}

ツールのリファレンス

random_int

low から high まで(両端を含む)のランダムな整数を生成します。

パラメーター:

  • low (int): 下限(含む)
  • high (int): 上限(含む)

例:

{
  "name": "random_int",
  "arguments": {
    "low": 1,
    "high": 100
  }
}
random_float

low から high までのランダムな浮動小数点数を生成します。

パラメーター:

  • low (float, optional): 下限(デフォルト: 0.0)
  • high (float, optional): 上限(デフォルト: 1.0)

例:

{
  "name": "random_float",
  "arguments": {
    "low": 0.5,
    "high": 2.5
  }
}
random_choices

母集団から重複を許可して k 個の項目を選択します。重みを指定することもできます。

パラメーター:

  • population (list): 選択対象の項目のリスト
  • k (int, optional): 選択する項目数(デフォルト: 1)
  • weights (list, optional): 各項目の重み(デフォルト: すべて同じ重み)

例:

{
  "name": "random_choices",
  "arguments": {
    "population": ["red", "blue", "green", "yellow"],
    "k": 2,
    "weights": [0.4, 0.3, 0.2, 0.1]
  }
}
random_shuffle

項目をランダムな順序に並べた新しいリストを返します。

パラメーター:

  • items (list): シャッフルする項目のリスト

例:

{
  "name": "random_shuffle",
  "arguments": {
    "items": [1, 2, 3, 4, 5]
  }
}
random_sample

母集団から重複なしで k 個の項目を選択します。

パラメーター:

  • population (list): 選択対象の項目のリスト
  • k (int): 選択する項目数

例:

{
  "name": "random_sample",
  "arguments": {
    "population": ["a", "b", "c", "d", "e"],
    "k": 2
  }
}
secure_token_hex

暗号学的に安全なランダムの 16 進数トークンを生成します。

パラメーター:

  • nbytes (int, optional): ランダムなバイト数(デフォルト: 32)

例:

{
  "name": "secure_token_hex",
  "arguments": {
    "nbytes": 16
  }
}
secure_random_int

upper_bound 未満の暗号学的に安全なランダム整数を生成します。

パラメーター:

  • upper_bound (int): 上限(含まない)

例:

{
  "name": "secure_random_int",
  "arguments": {
    "upper_bound": 1000
  }
}

セキュリティに関する考慮事項

このパッケージは、標準的な擬似乱数関数(シミュレーションやゲームなどに適しています)と、暗号学的に安全な関数(トークンやキーなどに適しています)の両方を提供します。

  • 標準関数(random_int、random_float、random_choices、random_shuffle): Python の random モジュールを使用します。高速ですが、暗号学的に安全ではありません。
  • 安全な関数(secure_token_hex、secure_random_int): Python の secrets モジュールを使用します。低速ですが、暗号学的に安全です。

開発

前提条件
  • Python 3.10+
  • uv パッケージマネージャー
セットアップ
# Clone the repository
git clone https://github.com/example/random-number-mcp
cd random-number-mcp

# Install dependencies
uv sync --dev

# Run tests
uv run pytest

# Run linting
uv run ruff check --fix
uv run ruff format

# Type checking
uv run mypy src/
MCP クライアントの設定
{
  "mcpServers": {
    "random-number-dev": {
      "command": "uv",
      "args": [
        "--directory",
        "<path_to_your_repo>/random-number-mcp",
        "run",
        "random-number-mcp"
      ]
    }
  }
}

注記: <path_to_your_repo>/random-number-mcp を、クローンしたリポジトリの絶対パスに置き換えてください。

ビルド
# Build package
uv build

# Test installation
uv run --with dist/*.whl random-number-mcp
リリースチェックリスト
  1. バージョンを更新する:

    • pyproject.toml、src/random_number_mcp/__init__.py、server.json の version 番号を引き上げます。
  2. 変更履歴を更新する:

    • リリース用の項目を CHANGELOG.md に追加します。

      • git diff のコンテキストを使って、コーディングエージェントとリリースノートの下書きを作成します。
      最新リリースに合わせて @CHANGELOG.md を更新してください。
      重要な変更、バグ修正、新機能をすべて記載してください。
      git diff は次のとおりです:
      [GIT_DIFF]
      
    • 保留中の他の変更とともにコミットします。

  3. GitHub リリースを作成する:

    • GitHub の UI で新しいリリースの下書きを作成します。
      • UI でリリースタグを付けます。
    • GitHub ワークフローによって、パッケージが自動的にビルドされ、PyPI に公開されます。

MCP Inspector でのテスト

このサーバーを調査または開発するには、MCP Inspector の npm ユーティリティを使用してください。

# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Run local development server with the inspector
npx @modelcontextprotocol/inspector uv run random-number-mcp

# Run PyPI production server with the inspector
npx @modelcontextprotocol/inspector uvx random-number-mcp

MCP Registry

mcp-name: io.github.zazencodes/random-number-mcp

ライセンス

MIT ライセンスです。詳細は LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。