Random Mcp

io.github.eldeshv2.1.0更新於 Oct 7, 2026

Generate random values and probability distribution samples.

已驗證Streamable HTTP可網頁執行Developer ToolsData & Analytics

概覽

AI 產生的概覽

一個遠端 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 等密鑰。
安裝前請注意
連線時需以 GitHub 登入並授予 read:user 權限範圍,伺服器會對已授權用戶端簽發 mcp:use 存取權杖。README 明確說明此服務並非用於產生加密金鑰或驗證權杖,因此不要用它產生機密。工具呼叫只產生數值、不寫入資料,但 README 提到用戶端可設定為自動執行工具,無需每次確認。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Random Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "random-mcp": {
      "type": "http",
      "url": "https://random-mcp.eldesh-tools.workers.dev/mcp"
    }
  }
}

README

[random-mcp icon]

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 を設定する必要はありません。

text
https://random-mcp.eldesh-tools.workers.dev/mcp

Notion AI への接続

  1. Settings > Connections > MCP > Custom MCP を選択します
  2. MCP server URL に https://random-mcp.eldesh-tools.workers.dev/mcp を指定します。独自インスタンスを利用する場合は、そのデプロイ先 URL を指定します
  3. 次のように各項目を埋めて Connect します
    • Name: Notion 内で識別するための名前(例: random-mcp)
    • Authentication: OAuth
  4. アクセス許可画面で Approve を選択します
  5. GitHub にサインインし、GitHub OAuth App による認証を完了します
  6. ツールが表示されたら、必要なツールを有効化します
  7. Notion AI からツール実行ごとの確認なしで呼び出したい場合は、実行設定を Run automatically に変更します

Agent への指示

Agent の指示には例えば次のように追加し、乱択が必要な際に必ず random-mcp が使われるようにします。

text
## 乱択- 乱数生成、くじ引き、シャッフル、無作為抽出など、結果にランダム性を必要とするすべての処理では、接続済みの MCP サーバー `random-mcp` を必ず使用する。- 内部処理によって乱択を生成、模擬、または近似してはならない。- `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: 確率分布名。省略時はuniform
  • count: 生成数。1以上1,000以下、既定値は1
distribution追加フィールド意味・制約
uniformmin, maxmin以上max以下の整数一様分布
bernoulliprobability指定確率で1、それ以外は0
binomialtrials, probability二項分布。成功確率をprobabilityとする独立な試行をtrials回行ったときの成功回数
poissonlambda母数lambdaのポアソン分布

パラメーターの組み合わせには、次の制約があります。

  • 二項分布: trialsは0以上100,000以下の安全な整数で、trials * count <= 100000
  • ポアソン分布: lambdaは0以上100以下で、lambda * count <= 10000

引数の例: {"min":5,"max":10,"count":20}

random_double

指定した確率分布に従う浮動小数点数を指定数生成し、values配列で返します。

  • distribution: 確率分布名。省略時はuniform
  • count: 生成数。1以上1,000以下、既定値は1
distribution追加フィールド意味・制約
uniformmin, max半開区間[min, max)の連続一様分布
normalmean, standard_deviation平均と標準偏差を指定した正規分布
lognormalmu, sigmalog(X)が平均mu、標準偏差sigmaの正規分布に従う対数正規分布
exponentialrate率rateの指数分布。rate > 0

引数の例: {"distribution":"normal","mean":0,"standard_deviation":1,"count":20}

random_choice

候補から指定数の要素を選択し、values配列で返します。

  • choices: 候補文字列の配列。1個以上1,000個以下
  • weights: 各候補の相対的な重み。省略時は等確率
  • count: 選択数。1以上1,000以下、既定値は1
  • with_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 アカウント

依存関係をインストールします。

sh
npm install

ローカル用 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 を作成します。

dotenv
GITHUB_CLIENT_ID=<GitHub OAuth App の Client ID>GITHUB_CLIENT_SECRET=<GitHub OAuth App の Client secret>COOKIE_ENCRYPTION_KEY=<Cookie の暗号化に使用するランダムな値>GLAMA_MAINTAINER_EMAIL=<Glamaアカウントのメールアドレス>

GLAMA_MAINTAINER_EMAIL は /.well-known/glama.json の応答内容を確認するための任意設定です。ローカルでこの確認をしない場合は省略できます。

COOKIE_ENCRYPTION_KEY は、例えば次のコマンドで生成できます。

sh
openssl rand -hex 32

wrangler.jsonc のバインディング、互換日付、互換フラグ、または .dev.vars の変数名を変更した場合は、Workers ランタイムと環境変数の型定義を更新します。

sh
npm run types

生成される worker-configuration.d.ts はリポジトリへコミットします。型定義が設定と一致していることは npm run typecheck で確認できます。

起動

ローカルサーバーを起動します。

sh
npm run dev

通常、MCP エンドポイントは次の URL になります。

text
http://localhost:8787/mcp

ランディングページは http://localhost:8787/ で確認できます。

[!NOTE] Wrangler が Request.cf を取得できないという警告を表示しても、最後に Ready on http://localhost:8787 と表示され、このプロジェクトが Request.cf を使用していなければ動作確認を続けられます。

MCP Inspector による動作確認

ローカルサーバーを起動した状態で MCP Inspector の Web UI を起動します。

sh
npx --yes @modelcontextprotocol/inspector@latest

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 へログインします。

sh
npx wrangler login

本番用 GitHub OAuth App の認証情報と Cookie 暗号化キーを Cloudflare Secret として登録します。

sh
npx wrangler secret put GITHUB_CLIENT_IDnpx wrangler secret put GITHUB_CLIENT_SECRETnpx wrangler secret put COOKIE_ENCRYPTION_KEY

COOKIE_ENCRYPTION_KEY には、ローカル開発と同様にランダムな値を使用します。.dev.vars は Cloudflare へ自動的には反映されないため、本番 Worker で使用する値は Cloudflare Secret として登録する必要があります。

デプロイ

GitHub OAuth App の Authorization callback URL がデプロイ先 Worker の /callback を指していることと、wrangler.jsonc の OAUTH_KV が利用可能な KV namespace を指していることを確認します。

デプロイします。

sh
npm run deploy

公開 URL は通常、次の形式です。

text
https://random-mcp.<subdomain>.workers.dev/mcp

デプロイ後、公開された URL へ MCP クライアントまたは MCP Inspector から接続し、GitHub OAuth の認可とツールの呼び出しを確認します。

公式サーバーのリリース

公式サーバーは Cloudflare の Git 連携によってデプロイされます。release ブランチへの push を契機に自動デプロイされるため、公式環境のリリースに npm run deploy は使用しません。

保守担当者向けの手順は RELEASE.md を参照してください。

ライセンス

MIT License の下で公開しています。

來源:README.md,提交 0177e02

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v2.1.0最新Sep 16, 2026