Random Number Mcp について
Random Number MCP は、Python 標準ライブラリで構築された MCP サーバーで、乱数の整数、浮動小数点数、重み付き選択、シャッフル、セキュアトークンの生成機能を LLM に提供します。擬似乱数と暗号学的に安全な関数の両方を含みます。
主な機能
- 01整数と浮動小数点数の乱数生成
- 02重み付きリストからの選択
- 03リストのシャッフルと重複なし抽出
- 04secrets モジュールによるセキュアトークンと整数の生成
活用シーン
- 01シミュレーションやゲームでの乱数結果の生成
- 02キーやセッション用のセキュアトークンの作成
- 03候補リストからのランダムな項目の選択
MCP 対応
本プロジェクトは乱数生成ツールを MCP クライアントに公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| high | integer | はい | |
| low | integer | はい |
詳細
ランダム番号 MCP
Python 標準ライブラリを使った基本的な乱数生成ユーティリティです。擬似乱数と暗号学的に安全な操作に対応し、整数、浮動小数点数、重み付き選択、リストのシャッフル、安全なトークン生成を行えます。
エージェントスキル版をお探しですか? random-number-skills は、MCP サーバーではなくエージェントスキルとして、同じ乱数生成戦略を実装しています。
デモ動画
https://github.com/user-attachments/assets/303a441a-2b10-47e3-b2a5-c8b51840e362
ツール
| ツール | 目的 | 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
リリースチェックリスト
-
バージョンを更新する:
pyproject.toml、src/random_number_mcp/__init__.py、server.jsonのversion番号を引き上げます。
-
変更履歴を更新する:
-
リリース用の項目を
CHANGELOG.mdに追加します。git diffのコンテキストを使って、コーディングエージェントとリリースノートの下書きを作成します。
最新リリースに合わせて @CHANGELOG.md を更新してください。 重要な変更、バグ修正、新機能をすべて記載してください。 git diff は次のとおりです: [GIT_DIFF] -
保留中の他の変更とともにコミットします。
-
-
GitHub リリースを作成する:
- GitHub の UI で新しいリリースの下書きを作成します。
- UI でリリースタグを付けます。
- GitHub ワークフローによって、パッケージが自動的にビルドされ、PyPI に公開されます。
- GitHub の UI で新しいリリースの下書きを作成します。
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 ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。