Skip to main content
Glama
remuzel

Polarsteps MCP Server

by remuzel

get_trip_log

Retrieve a summarized overview of a specific Polarsteps trip with timestamped steps, titles, descriptions, and locations to understand travel activities before accessing detailed information.

Instructions

Get an overview of the specific trip; this includes just a list of summarized steps, each including timestamp/title/description/location. Use this first for trip overviews before diving into detailed information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
trip_idYesThe unique numerical identifier of a Polarsteps trip (typically 7+ digits)

Implementation Reference

  • The core handler function implementing the get_trip_log tool. It retrieves the trip using _get_trip, checks for validity and steps, constructs a log of steps as JSON-serializable dicts with timestamp, title, description, location, and returns them as TextContent.
    def get_trip_log(
        polarsteps_client: PolarstepsClient, input: GetTripLogInput
    ) -> list[TextContent]:
        trip = _get_trip(polarsteps_client, input.trip_id)
        if trip.id == -1:
            return single_text_content(f"Could not find trip with ID: {input.trip_id}")
        if trip.all_steps is None:
            return single_text_content(
                f"Trip with ID {input.trip_id} does not have any logged steps"
            )
    
        trip_log = [
            {
                "timestamp": step.timestamp,
                "title": step.name,
                "description": step.description,
                "location": f"{step.location.name} ({step.location.country_code})"
                if step.location
                else "Unknown",
            }
            for step in trip.all_steps
            if step.name is not None
        ]
        return [TextContent(type="text", text=json.dumps(trip)) for trip in trip_log]
  • Pydantic input schema for the get_trip_log tool, defining the required trip_id parameter with validation (integer >= 1,000,000).
    class GetTripLogInput(BaseModel):
        trip_id: int = Field(
            ...,
            description="The unique numerical identifier of a Polarsteps trip (typically 7+ digits)",
            ge=1_000_000,
        )
  • Tool registration within the PolarstepsTool enum, associating the name 'get_trip_log', its description, and input schema for MCP tool listing.
    TRIP_LOG = (
        "get_trip_log",
        "Get an overview of the specific trip; this includes just a list of summarized steps, each including timestamp/title/description/location. Use this first for trip overviews before diving into detailed information.",
        GetTripLogInput,
    )
  • MCP server tool dispatch/registration in call_tool handler, matching on TRIP_LOG enum and invoking the get_trip_log function with parsed input.
    case PolarstepsTool.TRIP_LOG:
        input = GetTripLogInput(**args)
        return get_trip_log(client, input)

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/remuzel/polarsteps-mcp'

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