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.

72 lines (71 loc) 3.43 kB
import { RollTemplateEntity } from '../../domain/entities/roll-template-entity.js'; import { RollTemplateService } from '../../ports/primary/roll-template-service.js'; import { CreateTemplateUseCase } from '../create-template-use-case.js'; import { DeleteTemplateUseCase } from '../delete-template-use-case.js'; import { EvaluateTemplateUseCase, TemplateEvaluationResult } from '../evaluate-template-use-case.js'; import { GetTemplateUseCase } from '../get-template-use-case.js'; import { ListTemplatesUseCase } from '../list-templates-use-case.js'; import { UpdateTemplateUseCase } from '../update-template-use-case.js'; /** * Implementation of the RollTemplateService interface. */ export declare class RollTemplateServiceImpl implements RollTemplateService { private readonly createTemplateUseCase; private readonly getTemplateUseCase; private readonly listTemplatesUseCase; private readonly updateTemplateUseCase; private readonly deleteTemplateUseCase; private readonly evaluateTemplateUseCase; /** * Creates a new RollTemplateServiceImpl instance. * @param createTemplateUseCase The use case for creating templates. * @param getTemplateUseCase The use case for getting templates. * @param listTemplatesUseCase The use case for listing templates. * @param updateTemplateUseCase The use case for updating templates. * @param deleteTemplateUseCase The use case for deleting templates. * @param evaluateTemplateUseCase The use case for evaluating templates. */ constructor(createTemplateUseCase: CreateTemplateUseCase, getTemplateUseCase: GetTemplateUseCase, listTemplatesUseCase: ListTemplatesUseCase, updateTemplateUseCase: UpdateTemplateUseCase, deleteTemplateUseCase: DeleteTemplateUseCase, evaluateTemplateUseCase: EvaluateTemplateUseCase); /** * Creates a new roll template. * @param name Template name. * @param description Template 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[]>; }