browse_classes
Browse D&D 5e SRD classes to list all options, view class features by level, or calculate multiclass combinations and spell slots.
Instructions
Browse D&D 5e SRD classes. List all classes, view a specific class's features at any level, or calculate multiclass feature combinations.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| class_name | No | Name of a specific class to look up | |
| level | No | Filter features to this level or below (1-20) | |
| multiclass | No | Array of class/level combos to calculate multiclass features and spell slots |
Implementation Reference
- src/tools/browse-classes.ts:86-130 (handler)Implementation and registration of the 'browse_classes' tool. It uses input parameters to determine whether to list all classes, show a single class's details, or calculate multiclass combinations.
server.registerTool( 'browse_classes', { description: 'Browse D&D 5e SRD classes. List all classes, view a specific class\'s features at any level, or calculate multiclass feature combinations.', inputSchema: { class_name: z .string() .optional() .describe('Name of a specific class to look up'), level: z .number() .int() .min(1) .max(20) .optional() .describe('Filter features to this level or below (1-20)'), multiclass: z .array( z.object({ class_name: z.string().describe('Class name'), level: z.number().int().min(1).max(20).describe('Level in this class'), }), ) .optional() .describe( 'Array of class/level combos to calculate multiclass features and spell slots', ), }, }, async ({ class_name, level, multiclass }) => { // Mode 3: Multiclass combination if (multiclass && multiclass.length > 0) { return handleMulticlass(db, multiclass); } // Mode 2: Specific class if (class_name) { return handleSingleClass(db, class_name, level); } // Mode 1: List all classes return handleListClasses(db); }, ); - src/tools/browse-classes.ts:82-85 (registration)Registration function exported for the 'browse_classes' tool.
export function registerBrowseClasses( server: McpServer, db: Database.Database, ): void {