Skip to main content
Glama

get_character

Retrieve detailed character information for Dungeons & Dragons campaigns by providing character name, ID, or player name to access character sheets and game data.

Instructions

Get detailed character information. Accepts character name, ID, or player name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
name_or_idYesCharacter name, ID, or player name

Implementation Reference

  • The get_character method in the PartyServer class handles the '/character/{player_id}' GET route. It validates the user token, checks for permission using a PermissionResolver, and fetches character data from storage.
    async def get_character(self, request: Request) -> Response:
        """
        Get character data for a specific player.
    
        Validates token and checks permissions before returning character data.
    
        Args:
            request: Starlette request object
    
        Returns:
            JSON response with character data or error
        """
        player_id = request.path_params.get("player_id")
        if not player_id:
            return JSONResponse({"error": "Missing player_id"}, status_code=400)
    
        # Validate token
        token = request.query_params.get("token", "")
        requesting_player = self.token_manager.validate_token(token)
        if not requesting_player:
            return JSONResponse({"error": "Unauthorized"}, status_code=401)
    
        # Check permission
        allowed = self.permission_resolver.check_permission(
            requesting_player,
            "get_character",
            player_id
        )
        if not allowed:
            return JSONResponse(
                {"error": "Permission denied"},
                status_code=403
            )
    
        # Get character data from storage
        try:
            character = self.storage.get_character(player_id)
            # Use mode='json' to handle datetime and other non-standard types
            return JSONResponse(character.model_dump(mode='json'))
        except Exception as e:
            logger.error(f"Failed to get character {player_id}: {e}")
            return JSONResponse(
                {"error": f"Character not found: {e}"},
                status_code=404
            )
Install Server

Other Tools

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/Polloinfilzato/dm20-protocol'

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