random-mcp
random-mcp
MCP-сервер (Model Context Protocol) для генерации случайных чисел, работающий на Cloudflare Workers. Из MCP-клиентов, таких как Notion Agent, можно генерировать целые числа, числа с плавающей запятой, взвешенный выбор и выборки из различных распределений вероятностей.
Цель
Цель — не позволять языковой модели самой выбирать случайные числа, а дать возможность вызывать внешнюю процедуру генерации случайных чисел как MCP-инструмент.
Если доверить выбор случайных чисел языковой модели, то обучающие данные и тенденции вывода модели повлияют на результат, и будут получены статистически смещённые значения. Например, даже если попросить «выбери случайное целое число от 1 до 10», модель будет склоняться к определённым значениям (например, 7), и это не будут случайные числа в полном смысле. Поэтому операции, требующие случайности, должны выполняться не по автономному решению модели, а через инструменты данного сервера.
В качестве источника случайности используется Web Crypto API. При генерации целых чисел применяется rejection sampling, чтобы избежать смещения из-за остатка от деления. Однако этот API не предназначен для генерации криптографических ключей или токенов аутентификации.
Related MCP server: Universal MCP Server
Использование
Подключение к Notion AI
Выберите Settings > Connections > MCP > Custom MCP
Укажите URL развёрнутого сервера в MCP server URL (существующий сервис:
https://random-mcp.eldesh-tools.workers.dev/mcp)Заполните поля, как указано ниже, и нажмите
ConnectName: имя для идентификации в Notion (например,
random-mcp)Authentication: OAuth
На экране разрешений выберите
ApproveВойдите в GitHub и завершите аутентификацию через GitHub OAuth App
Когда появятся инструменты, включите нужные
Если вы хотите вызывать инструменты из Notion AI без запроса подтверждения на каждое выполнение, измените настройку выполнения на
Run automatically
Инструкции для агента
Добавьте в инструкции агента, например, следующее, чтобы random-mcp обязательно использовался, когда требуется случайный выбор.
## 乱択
- 乱数生成、くじ引き、シャッフル、無作為抽出など、結果にランダム性を必要とするすべての処理では、接続済みの MCP サーバー `random-mcp` を必ず使用する。
- 内部処理によって乱択を生成、模擬、または近似してはならない。
- `random-mcp` が利用できない場合やエラーになった場合は、別の方法で代替せず、その旨をユーザーに伝える。Аутентификация
Сервер принимает Streamable HTTP-подключения на /mcp. Для авторизации MCP-клиентов используется OAuth 2.1, а для аутентификации пользователей — GitHub OAuth.
При авторизации сначала отображается экран разрешений MCP-клиента, после чего происходит переход к экрану аутентификации GitHub. Разрешение, запрашиваемое у GitHub, — read:user. Авторизованным MCP-клиентам выдаётся токен доступа с областью mcp:use.
Инструменты
random-mcp содержит четыре инструмента, показанные ниже. Каждый из них принимает JSON-объект с указанными полями.
random_int
Генерирует одно целое число в заданном диапазоне.
min: минимальное значениеmax: максимальное значение
Пример аргументов: {"min": 5, "max": 10}
random_double
Генерирует одно число с плавающей запятой в заданном диапазоне.
min: минимальное значениеmax: максимальное значение
Пример аргументов: {"min": 1.41421, "max": 3.14159}
random_choice
Выбирает один элемент из списка кандидатов.
choices: массив строк-кандидатов. От 1 до 1000 элементовweights: относительные веса каждого кандидата. Если не указано, вероятности равны
При указании weights количество элементов должно совпадать с choices, и хотя бы одно значение должно быть положительным.
Пример аргументов: {"choices":["A","B","C"],"weights":[1,2,1]}
random_sample
Генерирует несколько выборок из указанного распределения вероятностей.
distribution: название распределения вероятностейparameters: имя поля, содержащего параметры для соответствующего распределенияcount: количество выборок. От 1 до 100, по умолчанию 1
|
| Смысл и ограничения |
|
| непрерывное равномерное распределение от |
|
| нормальное распределение с заданными средним и стандартным отклонением |
|
| логнормальное распределение, при котором |
|
| экспоненциальное распределение со скоростью |
|
| 1 с заданной вероятностью, иначе 0 |
|
| количество успехов в |
|
| распределение Пуассона с параметром |
Существуют дополнительные ограничения на объём вычислений.
Биномиальное распределение:
trials— безопасное целое число от 0 до 100 000,trials * count <= 100000Распределение Пуассона:
lambdaот 0 до 100,lambda * count <= 10000
Пример аргументов: {"distribution":"uniform","parameters":{"min":5,"max":15},"count":3}
Среда разработки
Node.js 22.19.0 или выше
npm
учётная запись GitHub
учётная запись Cloudflare (для развёртывания)
Установите зависимости.
npm installЛокальная разработка
Создание GitHub OAuth App
Создайте OAuth App в Developer settings на GitHub. Поскольку URL обратного вызова отличается в локальной среде и в продакшене, создайте отдельные OAuth App для каждой среды.
Для OAuth App, используемого в локальной разработке, задайте следующие значения.
Homepage URL:
http://localhost:8787Authorization callback URL:
http://localhost:8787/callback
В продакшн OAuth App замените часть http://localhost:8787 на origin Worker, на который выполняется развёртывание. URL обратного вызова существующего сервиса: https://random-mcp.eldesh-tools.workers.dev/callback.
После создания получите Client ID и Client secret. OAuth-область, которую это приложение запрашивает у GitHub, — read:user.
Переменные окружения
Создайте .dev.vars в корне проекта.
GITHUB_CLIENT_ID=<GitHub OAuth App の Client ID>
GITHUB_CLIENT_SECRET=<GitHub OAuth App の Client secret>
COOKIE_ENCRYPTION_KEY=<Cookie の暗号化に使用するランダムな値>COOKIE_ENCRYPTION_KEY можно сгенерировать, например, следующей командой.
openssl rand -hex 32Временный state OAuth сохраняется в Cloudflare KV, указанном в привязке OAUTH_KV в wrangler.jsonc. При развёртывании в другом аккаунте Cloudflare создайте KV namespace и замените id в wrangler.jsonc на его namespace ID.
Запуск
Запустите локальный сервер.
npm run devОбычно MCP-эндпоинт доступен по следующему URL.
http://localhost:8787/mcp[!NOTE] Даже если Wrangler выводит предупреждение о том, что не может получить
Request.cf, в конце будет показаноReady on http://localhost:8787, и если этот проект не используетRequest.cf, можно продолжить проверку.
Проверка работы с помощью MCP Inspector
При запущенном локальном сервере запустите веб-интерфейс MCP Inspector.
npx --yes @modelcontextprotocol/inspector@latestВ Inspector выберите Streamable HTTP и укажите http://localhost:8787/mcp в качестве адреса подключения. При подключении в браузере запускается процесс авторизации OAuth, поэтому разрешите доступ и завершите аутентификацию GitHub. Для проверки продакшена измените адрес подключения на URL развёрнутого MCP.
После подключения убедитесь, что на экране Tools отображаются инструменты, перечисленные в разделе Инструменты.
Развёртывание на Cloudflare Workers
Войдите в 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Убедитесь, что Authorization callback URL GitHub OAuth App указывает на /callback Worker, на который выполняется развёртывание, и что OAUTH_KV в wrangler.jsonc указывает на доступный KV namespace.
Выполните развёртывание.
npm run deployПубличный URL обычно имеет следующий вид.
https://random-mcp.<subdomain>.workers.dev/mcp[!IMPORTANT]
.dev.varsне передаётся в Cloudflare автоматически. Продакшн Worker использует значения, зарегистрированные в Cloudflare Secret.
Лицензия
Опубликовано под лицензией MIT License.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA deployable MCP server on Cloudflare Workers that enables using custom tools with AI models without requiring authentication.
- FlicenseNot gradedqualityDmaintenanceA universal MCP server providing calculator and API calling tools, deployable on Cloudflare Workers.
- FlicenseNot gradedqualityDmaintenanceA remote MCP server with GitHub OAuth deployed on Cloudflare Workers, providing math, GitHub user info, and image generation tools.
- FlicenseNot gradedqualityCmaintenanceA remote MCP server deployed on Cloudflare Workers with OAuth login, enabling tools like math operations to be called via natural language.
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eldesh/random-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server