🚀 Plugged.in隨機數生成器MCP服務器
這是一個採用模型上下文協議(MCP)的先進加密安全隨機數生成器服務器。該服務器為人工智能應用、大語言模型(LLMs)以及其他需要高質量隨機數的系統提供高級隨機數生成功能。
🚀 快速開始
本服務器是一個採用模型上下文協議(MCP)的先進加密安全隨機數生成器服務器,可用於人工智能應用、大語言模型(LLMs)以及其他需要高質量隨機數的系統。以下將為你介紹它的主要特性、安裝方式、使用方法等內容。
✨ 主要特性
- 加密安全:使用Node.js內置的
crypto
模塊進行加密安全的偽隨機數生成(CSPRNG)。
- 多種數據類型:可生成整數、浮點數、字節、通用唯一識別碼(UUID)、字符串、布爾值以及隨機選擇結果。
- 靈活配置:可定製範圍、數量、編碼和字符集。
- MCP兼容:完全符合模型上下文協議規範,包括相關工具和提示。
- AI友好提示:內置提示,幫助大語言模型理解應使用本服務器進行隨機數生成。
- 類型安全:使用TypeScript編寫,具有全面的類型定義。
- 錯誤處理:具備強大的輸入驗證和錯誤報告功能。
- 性能優化:採用高效算法,適用於高吞吐量應用。
📦 安裝指南
前提條件
- Node.js 18.0.0或更高版本
- npm或yarn包管理器
通過桌面擴展(DXT)安裝
對於Claude桌面版用戶,可將此服務器作為一鍵式桌面擴展進行安裝:
- 從發佈頁面下載最新的
.dxt
文件。
- 打開Claude桌面版。
- 轉到“設置”→“開發者”→“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
💻 使用示例
運行服務器
服務器通過標準輸入/輸出(stdio)按照MCP協議進行通信:
node dist/index.js
npm run dev
與MCP客戶端集成
對於npm安裝(推薦):
將其添加到你的MCP客戶端配置中。對於Claude桌面版,將其添加到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)
生成加密安全的版本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
(數字,可選):為真的概率(0.0到1.0),默認值:0.5
示例:
{
"name": "generate_random_boolean",
"arguments": {
"count": 10,
"probability": 0.7
}
}
🤖 AI提示
服務器包含一個內置提示,幫助大語言模型理解應使用本服務器進行隨機數生成,而不是嘗試自行生成隨機值。
可用提示:generate_random
此提示會告知AI在生成隨機數方面的侷限性,並指導其使用可用的加密安全工具。
參數:
type
(字符串,可選):所需隨機值的類型(整數、浮點數、UUID、字符串、字節、選擇、布爾值)
requirements
(字符串,可選):隨機生成的特定要求
示例用法:
當大語言模型收到諸如“生成一個隨機密碼”或“選擇一個隨機數”的請求時,該提示將:
- 告知大語言模型無法生成真正的隨機值。
- 解釋可用的加密安全工具。
- 指導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界面,你可以在其中:
- 查看可用工具
- 測試工具執行
- 檢查請求/響應負載
- 調試服務器行為
🤝 貢獻
歡迎貢獻代碼!請隨時提交拉取請求。對於重大更改,請先打開一個問題討論你想要更改的內容。
開發指南
- 遵循TypeScript最佳實踐。
- 保持全面的測試覆蓋率。
- 為新功能更新文檔。
- 在提交前確保所有測試通過。
- 遵循語義化版本控制進行版本發佈。
📄 許可證
本項目採用MIT許可證 - 詳情請參閱LICENSE文件。
🔗 相關項目
📞 支持
如需支持、提問或提出功能請求: