Skip to main content
Glama
jcvalerio

MoneyWiz MCP Server

by jcvalerio
base.py1.76 kB
"""Base models for MoneyWiz MCP Server responses.""" from decimal import Decimal from typing import Any from pydantic import BaseModel, Field, field_serializer from moneywiz_mcp_server.models.currency_types import CurrencyAmounts class BaseAnalysisResponse(BaseModel): """Base response model for all analysis endpoints.""" analysis_period: str = Field(..., description="Time period analyzed (formatted)") currencies_found: list[str] = Field( ..., description="List of currencies found in the data" ) primary_currency: str = Field( ..., description="Primary currency (highest activity)" ) class BaseCurrencyResponse(BaseModel): """Base response model for responses containing currency amounts.""" @field_serializer("*", mode="wrap") def serialize_financial_types(self, value: Any, nxt: Any) -> Any: """Automatically convert CurrencyAmounts and Decimal values for JSON serialization.""" # Handle CurrencyAmounts if isinstance(value, CurrencyAmounts): return value.to_json_dict() # Handle Decimal values if isinstance(value, Decimal): return float(value) # Handle dict with Decimal values if isinstance(value, dict) and all( isinstance(v, Decimal) for v in value.values() ): return {k: float(v) for k, v in value.items()} return nxt(value) class FilterData(BaseModel): """Model for filter data in API responses.""" include_hidden: bool | None = None account_type: str | None = None time_period: str | None = None account_ids: list[str] | None = None categories: list[str] | None = None transaction_type: str | None = None limit: int | None = None

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/jcvalerio/moneywiz-mcp-server'

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