UNPKG

mcp-rand

Version:

MCP server providing random generation utilities including UUID, numbers, strings, passwords, Gaussian distribution, dice rolling, and card drawing

47 lines 2.21 kB
#!/usr/bin/env node import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js'; import { SimpleHandlerRegistry } from './handlers/types.js'; import { ListToolsHandler, generateUuidHandler, generateRandomNumberHandler, generateGaussianHandler, generateStringHandler, generatePasswordHandler, rollDiceHandler, drawCardsHandler } from './handlers/index.js'; async function registerHandlers(registry) { registry.register('tools/list', 'list', ListToolsHandler); registry.register('tools/call', 'generate_uuid', generateUuidHandler); registry.register('tools/call', 'generate_random_number', generateRandomNumberHandler); registry.register('tools/call', 'generate_gaussian', generateGaussianHandler); registry.register('tools/call', 'generate_string', generateStringHandler); registry.register('tools/call', 'generate_password', generatePasswordHandler); registry.register('tools/call', 'roll_dice', rollDiceHandler); registry.register('tools/call', 'draw_cards', drawCardsHandler); } async function main() { const registry = new SimpleHandlerRegistry(); await registerHandlers(registry); const server = new Server({ name: 'mcp-rand', version: '0.1.2', }, { capabilities: { tools: {}, }, }); server.setRequestHandler(ListToolsRequestSchema, (request) => { const handler = registry.get('tools/list'); if (handler) { return handler(request); } throw new Error('Handler not found'); }); server.setRequestHandler(CallToolRequestSchema, (request) => { const handler = registry.get('tools/call', request.params.name); if (handler) { return handler(request); } throw new Error(`Handler not found for tool: ${request.params.name}`); }); const transport = new StdioServerTransport(); await server.connect(transport); console.error('MCP server running on stdio'); } main().catch(console.error); //# sourceMappingURL=index.js.map