MCP 랜드
UUID, 숫자, 문자열, 비밀번호, 가우시안 분포, 주사위 굴리기, 카드 뽑기 등 다양한 난수 생성 유틸리티를 제공하는 MCP(모델 컨텍스트 프로토콜) 서버입니다.
설치
지엑스피1
또는 전역적으로 설치:
npm install -g mcp-randRelated MCP server: RandomUser MCP Server
특징
UUID 생성기
RFC 4122 버전 4 UUID를 생성합니다.
안전한 난수 생성을 위해 Node의 기본 암호화 모듈을 사용합니다.
매개변수가 필요하지 않습니다
난수 생성기
지정된 범위 내에서 난수를 생성합니다
구성 가능한 최소값 및 최대값(포함)
매개변수가 제공되지 않으면 기본값은 0-100 범위입니다.
가우시안 난수 생성기
가우스(정규) 분포에 따라 난수를 생성합니다.
0-1 범위로 정규화됨
매개변수가 필요하지 않습니다
난수 문자열 생성기
구성 가능한 길이와 문자 집합을 사용하여 무작위 문자열을 생성합니다.
다양한 문자 집합을 지원합니다:
영숫자(기본값): AZ, az, 0-9
숫자: 0-9
소문자: az
대문자: AZ
특수: !@#$%^&*()_+-=[]{};'"\|,.<>/?
구성 가능한 문자열 길이(기본값은 10)
비밀번호 생성기
다양한 문자 유형을 혼합하여 강력한 비밀번호를 생성합니다.
각 유형(대문자, 소문자, 숫자, 특수문자)에서 최소한 한 문자가 포함되어 있는지 확인합니다.
구성 가능한 길이(최소 8, 기본값 16)
경고: 비밀번호는 로컬로 생성되지만 전용 비밀번호 관리자를 사용하는 것이 좋습니다.
주사위 롤러
표준 주사위 표기법을 사용하여 여러 개의 주사위를 굴립니다.
"2d6"(6면체 주사위 2개), "1d20"(20면체 주사위 1개)과 같은 표기법을 지원합니다.
각 주사위 세트에 대한 개별 롤과 총합을 반환합니다.
한 번에 여러 개의 다른 주사위 세트를 굴릴 수 있습니다(예: "2d6", "1d20", "4d4")
카드 서랍
표준 52장 덱에서 카드를 뽑습니다.
Base64 인코딩을 사용하여 추첨 간 데크 상태를 유지합니다.
뽑은 카드와 남은 덱 상태를 반환합니다.
덱 크기에 맞춰 원하는 수의 카드를 뽑을 수 있습니다.
각 추첨 전에 사용 가능한 카드를 적절히 섞습니다.
용법
CLI 도구로서
npx mcp-randMCP 클라이언트와의 통합
MCP 클라이언트 구성에 추가:
{
"mcpServers": {
"mcp-rand": {
"command": "node",
"args": ["path/to/mcp-rand/build/index.js"],
"disabled": false,
"alwaysAllow": []
}
}
}사용 예
// Generate UUID
const uuid = await client.callTool('generate_uuid', {});
console.log(uuid); // e.g., "550e8400-e29b-41d4-a716-446655440000"
// Generate random number
const number = await client.callTool('generate_random_number', {
min: 1,
max: 100
});
console.log(number); // e.g., 42
// Generate Gaussian random number
const gaussian = await client.callTool('generate_gaussian', {});
console.log(gaussian); // e.g., 0.6827
// Generate random string
const string = await client.callTool('generate_string', {
length: 15,
charset: 'alphanumeric'
});
console.log(string); // e.g., "aB9cD8eF7gH6iJ5"
// Generate password
const password = await client.callTool('generate_password', {
length: 20
});
console.log(password); // e.g., "aB9#cD8$eF7@gH6*iJ5"
// Roll dice
const rolls = await client.callTool('roll_dice', {
dice: ['2d6', '1d20', '4d4']
});
console.log(rolls);
/* Output example:
[
{
"dice": "2d6",
"rolls": [3, 1],
"total": 4
},
{
"dice": "1d20",
"rolls": [4],
"total": 4
},
{
"dice": "4d4",
"rolls": [2, 3, 2, 3],
"total": 10
}
]
*/
// Draw cards
const draw1 = await client.callTool('draw_cards', {
count: 5
});
console.log(draw1);
/* Output example:
{
"drawnCards": [
{ "suit": "hearts", "value": "A" },
{ "suit": "diamonds", "value": "7" },
{ "suit": "clubs", "value": "K" },
{ "suit": "spades", "value": "2" },
{ "suit": "hearts", "value": "10" }
],
"remainingCount": 47,
"deckState": "t//+///bDw=="
}
*/
// Draw more cards using previous deck state
const draw2 = await client.callTool('draw_cards', {
count: 3,
deckState: draw1.deckState
});
console.log(draw2);
/* Output example:
{
"drawnCards": [
{ "suit": "diamonds", "value": "Q" },
{ "suit": "clubs", "value": "5" },
{ "suit": "spades", "value": "J" }
],
"remainingCount": 44,
"deckState": "l//+//zbDw=="
}
*/기여하다
개발 설정 및 지침은 CONTRIBUTING.md를 참조하세요.
특허
아이에스씨