Zum Inhalt springen
MCP ThesaurusMCP Thesaurus

random mcp

CommunityIncomplete39/100Beanspruchen

streamable-httpMITupdated 11d ago

Cloudflare Workers 䞊で動䜜する、乱数生成甚の MCPModel Context Protocolサヌバヌです。Notion Agent などの MCP クラむアントから、敎数・浮動小数点数・重み付き遞択・各皮確率分垃の暙本を生成できたす。

QuellcodeWebsite

Was kannst du mit random mcp machen?

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 を蚭定する必芁はありたせん。

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 が䜿われるようにしたす。

## 乱択
- 乱数生成、くじ匕き、シャッフル、無䜜為抜出など、結果にランダム性を必芁ずするすべおの凊理では、接続枈みの 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 远加フィヌルド 意味・制玄
uniform min, max min以䞊max以䞋の敎数䞀様分垃
bernoulli probability 指定確率で1、それ以倖は0
binomial trials, probability 二項分垃。成功確率をprobabilityずする独立な詊行をtrials回行ったずきの成功回数
poisson lambda 母数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 远加フィヌルド 意味・制玄
uniform min, max 半開区間[min, max)の連続䞀様分垃
normal mean, standard_deviation 平均ず暙準偏差を指定した正芏分垃
lognormal mu, sigma log(X)が平均mu、暙準偏差sigmaの正芏分垃に埓う察数正芏分垃
exponential rate 率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 アカりント

䟝存関係をむンストヌルしたす。

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 を䜜成したす。

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 は、䟋えば次のコマンドで生成できたす。

openssl rand -hex 32

wrangler.jsonc のバむンディング、互換日付、互換フラグ、たたは .dev.vars の倉数名を倉曎した堎合は、Workers ランタむムず環境倉数の型定矩を曎新したす。

npm run types

生成される worker-configuration.d.ts はリポゞトリぞコミットしたす。型定矩が蚭定ず䞀臎しおいるこずは npm run typecheck で確認できたす。

起動

ロヌカルサヌバヌを起動したす。

npm run dev

通垞、MCP ゚ンドポむントは次の URL になりたす。

http://localhost:8787/mcp

ランディングペヌゞは http://localhost:8787/ で確認できたす。

[!NOTE] Wrangler が Request.cf を取埗できないずいう譊告を衚瀺しおも、最埌に Ready on http://localhost:8787 ず衚瀺され、このプロゞェクトが Request.cf を䜿甚しおいなければ動䜜確認を続けられたす。

MCP Inspector による動䜜確認

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

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 ぞログむンしたす。

npx wrangler login

本番甚 GitHub OAuth App の認蚌情報ず Cookie 暗号化キヌを Cloudflare Secret ずしお登録したす。

npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET
npx 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 を指しおいるこずを確認したす。

デプロむしたす。

npm run deploy

公開 URL は通垞、次の圢匏です。

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

デプロむ埌、公開された URL ぞ MCP クラむアントたたは MCP Inspector から接続し、GitHub OAuth の認可ずツヌルの呌び出しを確認したす。

公匏サヌバヌのリリヌス

公匏サヌバヌは Cloudflare の Git 連携によっおデプロむされたす。release ブランチぞの push を契機に自動デプロむされるため、公匏環境のリリヌスに npm run deploy は䜿甚したせん。

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

ラむセンス

MIT License の䞋で公開しおいたす。