Skip to main content
Glama
study-flamingo

D&D MCP Server

calculate_experience

Calculate experience point distribution for D&D encounters based on party size, average level, and total encounter XP to determine fair rewards.

Instructions

Calculate experience points for an encounter.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
party_sizeYesNumber of party members
party_levelYesAverage party level
encounter_xpYesTotal encounter XP value

Implementation Reference

  • The main handler function for the 'calculate_experience' tool. It calculates adjusted XP using party size multipliers from D&D 5e rules and divides by party size for XP per player.
    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}**"""

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/study-flamingo/gamemaster-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server