Skip to main content
Glama

travel-spend

Calculate carbon emissions from travel spending by inputting spend type, amount, currency, location, and year to assess environmental impact.

Instructions

Calculate carbon emissions from travel-related spending based on spend type, amount, currency, location, and year.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
spend_typeYesType of travel spending (air, road, rail, sea, hotel)
moneyYesAmount of money spent
money_unitYesCurrency unit for the spent money
spend_locationYesLocation of the travel spending
spend_yearNoYear of the travel spending

Implementation Reference

  • Main handler function for the 'travel-spend' tool. Validates inputs, constructs request to Climatiq API endpoint '/travel/v1-preview1/spend', processes response, generates summary text, and handles caching.
    async def travel_spend_tool(config, arguments, server, climatiq_request): """ Calculate carbon emissions from travel-related spending. This tool uses a spend-based method to estimate emissions from various travel activities: - Air travel spending - Road travel spending (including taxis) - Rail travel spending - Sea travel spending - Hotel accommodation spending The calculation uses economic input-output models to estimate the carbon intensity of different travel services based on financial spend data. """ spend_type = arguments.get("spend_type") money = arguments.get("money") money_unit = arguments.get("money_unit") spend_location = arguments.get("spend_location") spend_year = arguments.get("spend_year") if not spend_type or not money or not money_unit or not spend_location: raise ValueError("Missing required parameters for travel spend calculation") # Validate spend type valid_spend_types = ["air", "road", "rail", "sea", "hotel"] if spend_type.lower() not in valid_spend_types: raise ValueError(f"Invalid spend_type: {spend_type}. Must be one of: {', '.join(valid_spend_types)}") # Construct the request to the Climatiq API request_data = { "spend_type": spend_type.lower(), "money": money, "money_unit": money_unit, "spend_location": spend_location } if spend_year: request_data["spend_year"] = spend_year try: result = await climatiq_request("/travel/v1-preview1/spend", request_data) # Store in cache cache_id = f"travel_spend_{spend_type}_{money}_{money_unit}_{id(result)}" co2e = result.get("co2e", 0) co2e_unit = result.get("co2e_unit", "kg") location_name = result.get("spend_location", {}).get("name", "unknown location") spend_type_display = spend_type.capitalize() result_text = f"{spend_type_display} travel spending of {money} {money_unit} in {location_name} " result_text += f"results in {co2e} {co2e_unit} of CO2e emissions." result_text += f"\n\nDetailed results are available as a resource with ID: {cache_id}" return result_text, result, cache_id except ValueError as e: error_text = f"Error calculating travel spend emissions: {str(e)}" return error_text, None, None
  • Schema definition for the 'travel-spend' tool, including input schema, description, and parameters.
    types.Tool( name="travel-spend", description="Calculate carbon emissions from travel-related spending based on spend type, amount, currency, location, and year.", inputSchema={ "type": "object", "properties": { "spend_type": {"type": "string", "description": "Type of travel spending (air, road, rail, sea, hotel)"}, "money": {"type": "number", "description": "Amount of money spent"}, "money_unit": {"type": "string", "description": "Currency unit for the spent money"}, "spend_location": {"type": "string", "description": "Location of the travel spending"}, "spend_year": {"type": "number", "description": "Year of the travel spending"}, }, "required": ["spend_type", "money", "money_unit", "spend_location"], }, )
  • MCP server registration of tools via list_tools handler, which returns all tool definitions including 'travel-spend' from get_tool_definitions() in tools.py.
    @server.list_tools() async def handle_list_tools() -> list[types.Tool]: """ List available tools for interacting with the Climatiq API. """ return get_tool_definitions()
  • Dispatch logic in the generic call_tool handler that routes 'travel-spend' calls to the travel_spend_tool function.
    elif name == "travel-spend": result_text, result, cache_id = await travel_spend_tool(config, arguments, server, climatiq_request)
  • Import of the travel_spend_tool handler and get_tool_definitions for tool registration from tools.py.
    from climatiq_mcp_server.tools import ( set_api_key_tool, electricity_emission_tool, travel_emission_tool, search_emission_factors_tool, custom_emission_calculation_tool, cloud_computing_emission_tool, freight_emission_tool, procurement_emission_tool, hotel_emission_tool, travel_spend_tool, get_tool_definitions )

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/jagan-shanmugam/climatiq-mcp-server'

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