
Random Mcp
io.github.eldeshv2.1.0更新於 Oct 7, 2026
Generate random values and probability distribution samples.
概覽
一個遠端 MCP 伺服器,可依機率分布產生隨機整數、浮點數以及帶權重的隨機選擇。
- 功能
- 提供三個工具:random_int 依均勻、伯努利、二項或卜瓦松分布產生整數;random_double 依均勻、常態、對數常態或指數分布產生浮點數;random_choice 從字串候選中進行有放回或無放回、可帶權重的抽取。每個工具回傳 values 陣列,單次最多產生 1,000 個值。亂數來源使用 Web Crypto API,整數產生採用拒絕取樣以避免取模偏差。
- 適用情境
- 適合助理需要真正隨機性的情境,例如抽籤、洗牌、抽樣或模擬。README 指出模型自行挑選數值容易偏向特定值,因此把隨機性交給這個伺服器可讓結果更不偏。
- 執行需求
- 使用提供方 workers.dev 網域上的託管端點,透過 Streamable HTTP 連線,採用 OAuth 2.1 授權並以 GitHub 登入,申請 read:user 權限範圍。官方伺服器無需自行設定 Cloudflare 或 GitHub OAuth App。自建執行個體需要 Node.js 22.19.0 以上版本、npm、GitHub 帳號、Cloudflare 帳號,以及 GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET、COOKIE_ENCRYPTION_KEY 等密鑰。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Random Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"random-mcp": {
"type": "http",
"url": "https://random-mcp.eldesh-tools.workers.dev/mcp"
}
}
}README
random-mcp
Cloudflare Workers 上で動作する、乱数生成用の MCP(Model Context Protocol)サーバーです。Notion Agent などの MCP クライアントから、整数・浮動小数点数・重み付き選択・各種確率分布の標本を生成できます。
公式サイト: https://random-mcp.eldesh-tools.workers.dev/
目的
言語モデル自身に乱数を選ばせず、外部の乱数生成処理を MCP ツールとして呼び出せるようにすることを目的としています。
言語モデルに乱数の選択を委ねると、モデルの学習データや出力傾向が結果に影響し、統計的に偏った値が生成されます。たとえば「1から10の整数をランダムに選べ」と指示しても、モデルは特定の値(7など)を好む傾向があり、まっとうな意味での乱数にはなりません。このため、乱数が必要な処理はモデルが自律判断するのではなく、本サーバーのツールを通じて生成する必要があります。
乱数源には Web Crypto API を使用します。整数生成では、剰余による偏りを避けるため rejection sampling を行います。ただし、暗号鍵や認証トークンの生成を目的とした API ではありません。
公式サーバーを利用する
公式サーバーは次の MCP エンドポイントで利用できます。利用者が Cloudflare や GitHub OAuth App を設定する必要はありません。
Notion AI への接続
- Settings > Connections > MCP > Custom MCP を選択します
- MCP server URL に
https://random-mcp.eldesh-tools.workers.dev/mcpを指定します。独自インスタンスを利用する場合は、そのデプロイ先 URL を指定します - 次のように各項目を埋めて
Connectします- Name: Notion 内で識別するための名前(例:
random-mcp) - Authentication: OAuth
- Name: Notion 内で識別するための名前(例:
- アクセス許可画面で
Approveを選択します - GitHub にサインインし、GitHub OAuth App による認証を完了します
- ツールが表示されたら、必要なツールを有効化します
- Notion AI からツール実行ごとの確認なしで呼び出したい場合は、実行設定を
Run automaticallyに変更します
Agent への指示
Agent の指示には例えば次のように追加し、乱択が必要な際に必ず random-mcp が使われるようにします。
認証
サーバーは /mcp で Streamable HTTP 接続を受け付けます。MCP クライアントとの認可には OAuth 2.1、ユーザーの認証には GitHub OAuth を使用します。
認可時には、MCP クライアントのアクセス許可画面を表示した後、GitHub の認証画面へ移動します。GitHub から取得する権限は read:user です。認可済みの MCP クライアントには mcp:use スコープのアクセストークンが発行されます。
ツール
random-mcp には以下に示す3つのツールがあり、それぞれ記載のフィールドを持つJSONオブジェクトを要求します。
random_int
指定した確率分布に従う整数を指定数生成し、values配列で返します。
distribution: 確率分布名。省略時はuniformcount: 生成数。1以上1,000以下、既定値は1
パラメーターの組み合わせには、次の制約があります。
- 二項分布:
trialsは0以上100,000以下の安全な整数で、trials * count <= 100000 - ポアソン分布:
lambdaは0以上100以下で、lambda * count <= 10000
引数の例: {"min":5,"max":10,"count":20}
random_double
指定した確率分布に従う浮動小数点数を指定数生成し、values配列で返します。
distribution: 確率分布名。省略時はuniformcount: 生成数。1以上1,000以下、既定値は1
引数の例: {"distribution":"normal","mean":0,"standard_deviation":1,"count":20}
random_choice
候補から指定数の要素を選択し、values配列で返します。
choices: 候補文字列の配列。1個以上1,000個以下weights: 各候補の相対的な重み。省略時は等確率count: 選択数。1以上1,000以下、既定値は1with_replacement: 復元抽出ではtrue、非復元抽出ではfalse。既定値はtrue
weightsを指定する場合は、choicesと要素数を一致させ、少なくとも一つを正の値にします。
非復元抽出では、countを候補数以下にする必要があります。重みを指定する場合は、正の重みを持つ候補数以下にする必要もあります。
引数の例: {"choices":["A","B","C"],"weights":[1,2,1],"count":2,"with_replacement":false}
ローカル開発
必要な環境
- Node.js 22.19.0以上
- npm
- GitHub アカウント
依存関係をインストールします。
ローカル用 GitHub OAuth App の作成
GitHub の Developer settings で、ローカル開発用の OAuth App を作成します。
次の値を設定します。
- Homepage URL:
http://localhost:8787 - Authorization callback URL:
http://localhost:8787/callback
作成後、Client ID と Client secret を取得します。このアプリケーションが GitHub に要求する OAuth スコープは read:user です。
環境変数
プロジェクト直下に .dev.vars を作成します。
GLAMA_MAINTAINER_EMAIL は /.well-known/glama.json の応答内容を確認するための任意設定です。ローカルでこの確認をしない場合は省略できます。
COOKIE_ENCRYPTION_KEY は、例えば次のコマンドで生成できます。
wrangler.jsonc のバインディング、互換日付、互換フラグ、または .dev.vars の変数名を変更した場合は、Workers ランタイムと環境変数の型定義を更新します。
生成される worker-configuration.d.ts はリポジトリへコミットします。型定義が設定と一致していることは npm run typecheck で確認できます。
起動
ローカルサーバーを起動します。
通常、MCP エンドポイントは次の URL になります。
ランディングページは http://localhost:8787/ で確認できます。
[!NOTE] Wrangler が
Request.cfを取得できないという警告を表示しても、最後にReady on http://localhost:8787と表示され、このプロジェクトがRequest.cfを使用していなければ動作確認を続けられます。
MCP Inspector による動作確認
ローカルサーバーを起動した状態で MCP Inspector の Web UI を起動します。
Inspector で Streamable HTTP を選択し、接続先に http://localhost:8787/mcp を指定します。接続時にブラウザで OAuth の認可フローが開始されるため、アクセスを許可して GitHub 認証を完了します。本番環境を確認する場合は、接続先をデプロイ済みの MCP URL に変更します。
接続後、Tools 画面にツールで示されているものが表示されることを確認します。
[!IMPORTANT] 2026/08/20現在の MCP Inspector では random_int, random_double による入力型に対応したWebUIフォームは導出されません。 これらのツールの動作確認をする場合は MCP Inspector の CLI などを利用してください。
独自インスタンスの構築
この章は、random-mcp の独自インスタンスを新たに Cloudflare Workers へ構築する場合の手順です。公式サーバーのデプロイには使用していません。
構築には Cloudflare アカウントと、本番環境用の GitHub OAuth App が必要です。ローカル環境と本番環境ではコールバック URL が異なるため、OAuth App は環境ごとに作成してください。
本番用 GitHub OAuth App の作成
GitHub の Developer settings で OAuth App を作成し、次の値を設定します。
- Homepage URL: デプロイ先 Worker のオリジン
- Authorization callback URL: デプロイ先 Worker のオリジンに
/callbackを加えた URL
たとえば、Worker のオリジンが https://random-mcp.example.workers.dev の場合、Authorization callback URL は https://random-mcp.example.workers.dev/callback です。
作成後、Client ID と Client secret を取得します。このアプリケーションが GitHub に要求する OAuth スコープは read:user です。
Cloudflare リソースと Worker の設定
OAuth の一時的な state を保存する Cloudflare KV namespace を作成します。次に、wrangler.jsonc で次の項目を独自インスタンス用に変更します。
name: Worker の名前kv_namespacesのOAUTH_KVバインディングにあるid: 作成した KV namespace の ID
Secret の登録
Cloudflare へログインします。
本番用 GitHub OAuth App の認証情報と Cookie 暗号化キーを Cloudflare Secret として登録します。
COOKIE_ENCRYPTION_KEY には、ローカル開発と同様にランダムな値を使用します。.dev.vars は Cloudflare へ自動的には反映されないため、本番 Worker で使用する値は Cloudflare Secret として登録する必要があります。
デプロイ
GitHub OAuth App の Authorization callback URL がデプロイ先 Worker の /callback を指していることと、wrangler.jsonc の OAUTH_KV が利用可能な KV namespace を指していることを確認します。
デプロイします。
公開 URL は通常、次の形式です。
デプロイ後、公開された URL へ MCP クライアントまたは MCP Inspector から接続し、GitHub OAuth の認可とツールの呼び出しを確認します。
公式サーバーのリリース
公式サーバーは Cloudflare の Git 連携によってデプロイされます。release ブランチへの push を契機に自動デプロイされるため、公式環境のリリースに npm run deploy は使用しません。
保守担当者向けの手順は RELEASE.md を参照してください。
ライセンス
MIT License の下で公開しています。
來源:README.md,提交 0177e02
工具
0版本歷史
1- v2.1.0最新Sep 16, 2026
