calculate_experience
Determine experience points for a D&D encounter by inputting party size, average level, and total encounter XP. Simplify encounter balancing for Dungeon Masters.
Instructions
Calculate experience points for an encounter.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| encounter_xp | Yes | Total encounter XP value | |
| party_level | Yes | Average party level | |
| party_size | Yes | Number of party members |
Implementation Reference
- src/gamemaster_mcp/main.py:822-845 (handler)The handler function implementing the calculate_experience tool logic. It is registered via @mcp.tool decorator. Calculates adjusted XP per player based on encounter XP and party size using D&D 5e multipliers. The function signature provides input schema via Annotated Fields.@mcp.tool def calculate_experience( party_size: Annotated[int, Field(description="Number of party members", ge=1)], party_level: Annotated[int, Field(description="Average party level", ge=1, le=20)], encounter_xp: Annotated[int, Field(description="Total encounter XP value", ge=0)], ) -> str: """Calculate experience points for an encounter.""" # D&D 5e encounter multipliers based on party size if party_size < 3: multiplier = 1.5 elif party_size > 5: multiplier = 0.5 else: multiplier = 1.0 adjusted_xp = int(encounter_xp * multiplier) xp_per_player = adjusted_xp // party_size return f"""**Experience Calculation:** Base Encounter XP: {encounter_xp} Party Size Multiplier: {multiplier}x Adjusted XP: {adjusted_xp} **XP per Player: {xp_per_player}**"""