🚀 Plugged.in Random Number Generator MCP Server
最先端の暗号学的に安全な乱数生成サーバーで、Model Context Protocol (MCP)を実装しています。このサーバーは、AIアプリケーション、大規模言語モデル(LLM)、その他の高品質な乱数を必要とするシステムに高度な乱数生成機能を提供します。
🚀 クイックスタート
このサーバーは、暗号学的に安全な乱数生成機能を提供し、AIアプリケーションやLLMなどに最適です。以下のセクションでは、インストール方法、使用方法、利用可能なツールなどについて説明します。
✨ 主な機能
- 暗号学的に安全:Node.jsの組み込み
crypto
モジュールを使用して、暗号学的に安全な疑似乱数生成(CSPRNG)を行います。
- 複数のデータ型:整数、浮動小数点数、バイト、UUID、文字列、ブール値、ランダム選択を生成できます。
- 柔軟な設定:範囲、個数、エンコーディング、文字セットをカスタマイズできます。
- MCP互換:ツールやプロンプトを含むModel Context Protocol仕様と完全に互換性があります。
- AIフレンドリーなプロンプト:LLMが乱数生成にこのサーバーを使用すべきことを理解するための組み込みプロンプトがあります。
- 型安全:包括的な型定義を持つTypeScriptで記述されています。
- エラー処理:堅牢な入力検証とエラー報告が行われます。
- パフォーマンス最適化:高スループットなアプリケーションに適した効率的なアルゴリズムを使用しています。
📦 インストール
前提条件
- Node.js 18.0.0以上
- npmまたはyarnパッケージマネージャー
デスクトップ拡張機能(DXT)を通じたインストール
Claude Desktopのユーザーは、このサーバーをワンクリックでデスクトップ拡張機能としてインストールできます。
- リリースページから最新の
.dxt
ファイルをダウンロードします。
- Claude Desktopを開きます。
- 設定 → 開発者 → MCPサーバーに移動します。
- 「ファイルからインストール」をクリックし、ダウンロードした
.dxt
ファイルを選択します。
npmからのインストール
npm install -g pluggedin-random-number-generator-mcp
または、プロジェクト内にローカルインストールする場合は:
npm install pluggedin-random-number-generator-mcp
Smitheryでのデプロイ
Smitheryを使用してこのMCPサーバーをクラウドにデプロイできます。
- このリポジトリをフォークします。
- あなたのGitHubアカウントをSmitheryに接続します。
- デプロイメントタブに移動します。
- 「デプロイ」をクリックします。
サーバーには、簡単なデプロイのための
smithery.yaml
設定ファイルが含まれています。
ソースからのビルド
git clone https://github.com/VeriTeknik/pluggedin-random-number-generator-mcp.git
cd pluggedin-random-number-generator-mcp
npm install
npm run build
npm run build:dxt
💻 使用例
基本的な使用法
サーバーの実行
サーバーはMCPプロトコルに従って標準入出力(stdio)を介して通信します。
node dist/index.js
npm run dev
MCPクライアントとの統合
npmインストールの場合(推奨)
MCPクライアントの設定に追加します。Claude Desktopの場合は、claude_desktop_config.json
に追加します。
{
"mcpServers": {
"random-generator": {
"command": "npx",
"args": ["-y", "pluggedin-random-number-generator-mcp@latest"]
}
}
}
これにより、グローバルインストールを必要とせずに、npmから最新バージョンを常に使用できます。
ローカルインストールの場合
{
"mcpServers": {
"random-generator": {
"command": "node",
"args": ["node_modules/pluggedin-random-number-generator-mcp/dist/index.js"]
}
}
}
高度な使用法
利用可能なツール
1. ランダムな整数の生成
指定された範囲内で暗号学的に安全なランダムな整数を生成します。
パラメーター:
min
(整数、オプション): 最小値(含む)、デフォルト: 0
max
(整数、オプション): 最大値(含む)、デフォルト: 100
count
(整数、オプション): 生成する整数の個数、デフォルト: 1、最大: 1000
例:
{
"name": "generate_random_integer",
"arguments": {
"min": 1,
"max": 100,
"count": 5
}
}
2. ランダムな浮動小数点数の生成
暗号学的に安全なランダムな浮動小数点数を生成します。
パラメーター:
min
(数値、オプション): 最小値(含む)、デフォルト: 0.0
max
(数値、オプション): 最大値(含まない)、デフォルト: 1.0
count
(整数、オプション): 生成する浮動小数点数の個数、デフォルト: 1、最大: 1000
precision
(整数、オプション): 丸める小数点以下の桁数、デフォルト: 6、最大: 15
例:
{
"name": "generate_random_float",
"arguments": {
"min": 0.0,
"max": 1.0,
"count": 3,
"precision": 4
}
}
3. ランダムなバイトの生成
様々なエンコーディングで暗号学的に安全なランダムなバイトを生成します。
パラメーター:
length
(整数、オプション): 生成するバイト数、デフォルト: 32、最大: 1024
encoding
(文字列、オプション): 出力エンコーディング ("hex", "base64", "binary")、デフォルト: "hex"
例:
{
"name": "generate_random_bytes",
"arguments": {
"length": 32,
"encoding": "hex"
}
}
4. UUIDの生成
暗号学的に安全なUUIDバージョン4識別子を生成します。
パラメーター:
count
(整数、オプション): 生成するUUIDの個数、デフォルト: 1、最大: 100
format
(文字列、オプション): UUID形式 ("standard", "compact")、デフォルト: "standard"
例:
{
"name": "generate_uuid",
"arguments": {
"count": 3,
"format": "standard"
}
}
5. ランダムな文字列の生成
カスタマイズ可能な文字セットで暗号学的に安全なランダムな文字列を生成します。
パラメーター:
length
(整数、オプション): 文字列の長さ、デフォルト: 16、最大: 256
charset
(文字列、オプション): 文字セット ("alphanumeric", "alphabetic", "numeric", "hex", "base64", "ascii_printable")、デフォルト: "alphanumeric"
count
(整数、オプション): 生成する文字列の個数、デフォルト: 1、最大: 100
例:
{
"name": "generate_random_string",
"arguments": {
"length": 12,
"charset": "alphanumeric",
"count": 2
}
}
6. ランダムな選択の生成
暗号学的に安全な乱数を使用して、提供されたリストからアイテムをランダムに選択します。
パラメーター:
choices
(配列、必須): 選択する文字列アイテムの配列
count
(整数、オプション): 選択するアイテムの個数、デフォルト: 1
allow_duplicates
(ブール値、オプション): 重複選択を許可するかどうか、デフォルト: true
例:
{
"name": "generate_random_choice",
"arguments": {
"choices": ["apple", "banana", "cherry", "date"],
"count": 2,
"allow_duplicates": false
}
}
7. ランダムなブール値の生成
構成可能な確率で暗号学的に安全なランダムなブール値を生成します。
パラメーター:
count
(整数、オプション): 生成するブール値の個数、デフォルト: 1、最大: 1000
probability
(数値、オプション): trueの確率(0.0から1.0)、デフォルト: 0.5
例:
{
"name": "generate_random_boolean",
"arguments": {
"count": 10,
"probability": 0.7
}
}
AIプロンプト
サーバーには、LLMが乱数生成を自分で行うのではなく、このサーバーを使用すべきことを理解するための組み込みプロンプトが含まれています。
利用可能なプロンプト: generate_random
このプロンプトは、AIが乱数生成における制限を理解し、利用可能な暗号学的に安全なツールを使用するように誘導します。
パラメーター:
type
(文字列、オプション): 必要な乱数値のタイプ (integer, float, uuid, string, bytes, choice, boolean)
requirements
(文字列、オプション): 乱数生成の特定の要件
使用例:
LLMが「ランダムなパスワードを生成して」や「ランダムな数字を選んで」といった要求を受け取った場合、プロンプトは以下のように動作します。
- LLMが真にランダムな値を生成できないことを認識します。
- 利用可能な暗号学的に安全なツールを説明します。
- タスクに適したツールを使用するようにAIを誘導します。
これにより、アプリケーション内のすべての乱数生成が、予測可能なAI生成パターンではなく、適切な暗号化方法を使用することが保証されます。
🔧 技術詳細
セキュリティ機能
このサーバーはいくつかのセキュリティのベストプラクティスを実装しています。
- 暗号学的に安全な乱数:すべての乱数生成には、Node.jsの
crypto
モジュール関数 (randomBytes
, randomInt
, randomUUID
) を使用しており、セキュリティに敏感なアプリケーションに適した暗号学的に安全な疑似乱数を提供します。
- 入力検証:すべての入力パラメーターの包括的な検証を行い、注入攻撃を防止し、データの整合性を確保します。
- レート制限:生成個数に組み込み制限があり、リソース枯渇攻撃を防止します。
- エラー処理:システム状態に関する機密情報を漏洩しない安全なエラーメッセージが表示されます。
テスト
サーバーには、すべての機能を検証する包括的なテストスイートが含まれています。
node test.js
テストスイートは以下をカバーしています。
- ツールの検出とリスト表示
- すべての乱数生成関数
- 入力検証とエラー処理
- 出力形式の検証
- 統計的特性の検証
パフォーマンス
サーバーは、セキュリティを維持しながらパフォーマンスが最適化されています。
- 効率的なアルゴリズム:最適化されたネイティブ暗号関数を使用しています。
- メモリ管理:効率的なバッファ処理により、最小限のメモリ使用量です。
- 並行リクエスト:複数の同時リクエストをサポートするスレッドセーフな設計です。
- 拡張性:高スループットなアプリケーションに適しています。
開発
プロジェクト構造
pluggedin-random-number-generator-mcp/
├── src/
│ └── index.ts # メインサーバーの実装
├── dist/ # コンパイルされたJavaScript出力
├── test.js # 包括的なテストスイート
├── package.json # プロジェクト設定
├── tsconfig.json # TypeScript設定
└── README.md # このドキュメント
ビルド
npm run build
開発モード
npm run dev
MCPインスペクターでのテスト
MCPインスペクターツールを使用してサーバーをテストできます。
npm run inspector
これにより、MCPインスペクターのWebインターフェースが起動し、以下のことができます。
- 利用可能なツールを表示する
- ツールの実行をテストする
- リクエスト/レスポンスペイロードを検査する
- サーバーの動作をデバッグする
🤝 コントリビューション
コントリビューションは大歓迎です!プルリクエストを送信してください。大規模な変更の場合は、まず変更したい内容について議論するためのIssueを開いてください。
開発ガイドライン
- TypeScriptのベストプラクティスに従ってください。
- 包括的なテストカバレッジを維持してください。
- 新機能についてはドキュメントを更新してください。
- 送信する前にすべてのテストが通過することを確認してください。
- リリースにはセマンティックバージョニングに従ってください。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEファイルを参照してください。
🔗 関連プロジェクト
📞 サポート
サポート、質問、または機能要求については、以下の方法でお問い合わせください。