Skip to main content
Glama
Jtewen
by Jtewen

lookup-payee-locations

Retrieve geographic locations linked to a payee in your YNAB budget. Use this tool to identify payee-specific locations by budget, payee, or location ID for precise financial tracking.

Instructions

Look up geographic locations associated with a payee.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
budget_idNoThe ID of the budget. If not provided, the default budget will be used.
location_idNoThe ID of a specific payee location to retrieve.
payee_idNoThe ID of a payee to list locations for.

Implementation Reference

  • The handler for executing the 'lookup-payee-locations' tool. Validates arguments, fetches payee locations using ynab_client methods based on provided location_id or payee_id or all, formats and returns the results as text content.
    elif name == "lookup-payee-locations": args = LookupPayeeLocationsInput.model_validate(arguments or {}) budget_id = await _get_budget_id(args.model_dump()) locations = [] if args.location_id: location = await ynab_client.get_payee_location_by_id( budget_id, args.location_id ) locations = [location] if location else [] elif args.payee_id: locations = await ynab_client.get_payee_locations_by_payee( budget_id, args.payee_id ) else: locations = await ynab_client.get_payee_locations(budget_id) if not locations: return [types.TextContent(type="text", text="No payee locations found.")] locations_dict = [loc.to_dict() for loc in locations] return [ types.TextContent( type="text", text=f"Found {len(locations)} payee locations:\n{json.dumps(locations_dict, indent=2, default=str)}", ) ]
  • Pydantic model defining the input schema for the tool, inheriting from BudgetIdInput. Supports optional location_id, payee_id, and budget_id.
    class LookupPayeeLocationsInput(BudgetIdInput): location_id: Optional[str] = Field( None, description="The ID of a specific payee location to retrieve." ) payee_id: Optional[str] = Field( None, description="The ID of a payee to list locations for." )
  • Registration of the tool in the list_tools handler, specifying name, description, and input schema reference.
    types.Tool( name="lookup-payee-locations", description="Look up geographic locations associated with a payee.", inputSchema=LookupPayeeLocationsInput.model_json_schema(), ),
  • Helper method in YNABClient to fetch payee locations by payee ID, used by the tool handler.
    async def get_payee_locations_by_payee( self, budget_id: str, payee_id: str ) -> list[ynab.PayeeLocation]: response = await self._run_sync( self._payee_locations_api.get_payee_locations_by_payee, budget_id, payee_id, ) return response.data.payee_locations
  • Helper method in YNABClient to fetch all payee locations for a budget, used by the tool handler.
    async def get_payee_locations(self, budget_id: str) -> list[ynab.PayeeLocation]: response = await self._run_sync( self._payee_locations_api.get_payee_locations, budget_id ) return response.data.payee_locations
  • Helper method in YNABClient to fetch a specific payee location by ID, used by the tool handler.
    async def get_payee_location_by_id( self, budget_id: str, payee_location_id: str ) -> ynab.PayeeLocation: response = await self._run_sync( self._payee_locations_api.get_payee_location_by_id, budget_id, payee_location_id, ) return response.data.payee_location

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/Jtewen/ynab-mcp'

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