🚀 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文件。
🔗 相关项目
📞 支持
如需支持、提问或提出功能请求: