UNPKG

random-tables-mcp

Version:

An MCP (Model Context Protocol) server for managing and rolling on random-table assets used in tabletop RPGs. Create, update, and roll on random tables with support for nested tables, weighted entries, and range-based results.

50 lines (49 loc) 1.87 kB
import { RollTemplateEntity } from '../../domain/entities/roll-template-entity.js'; import { TemplateEvaluationResult } from '../../use-cases/evaluate-template-use-case.js'; /** * Interface for roll template operations. */ export interface RollTemplateService { /** * Creates a new roll template. * @param name Template name. * @param description Optional description. * @param template The template string. * @returns The ID of the created template. */ createTemplate(name: string, description: string, template: string): Promise<string>; /** * Gets a template by its ID. * @param id The ID of the template to get. * @returns The template, or null if not found. */ getTemplate(id: string): Promise<RollTemplateEntity | null>; /** * Updates an existing template. * @param id The ID of the template to update. * @param updates Object containing the updates to apply. */ updateTemplate(id: string, updates: { name?: string; description?: string; template?: string; }): Promise<void>; /** * Lists templates based on optional filter criteria. * @param filter Optional filter criteria. * @returns An array of templates matching the filter. */ listTemplates(filter?: Record<string, unknown>): Promise<RollTemplateEntity[]>; /** * Deletes a template by its ID. * @param id The ID of the template to delete. */ deleteTemplate(id: string): Promise<void>; /** * Evaluates a template by resolving all references to tables. * @param id The ID of the template to evaluate. * @param count The number of evaluations to perform (default: 1). * @returns An array of template evaluation results. */ evaluateTemplate(id: string, count?: number): Promise<TemplateEvaluationResult[]>; }