{"serverId":"mcp-registry/io.github.nvasilevv/pensiata","tools":[{"name":"cache_stats","fixed":{"name":"cache_stats","description":"Return MCP cache telemetry for diagnostics and performance debugging.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":52,"tokensAfter":52},{"name":"get_benchmark_series","fixed":{"name":"get_benchmark_series","description":"Get historical benchmark series for pension-fund comparison workflows.\n\nUse with compute/rank tools to compare Bulgarian pension funds against inflation\nor market proxies over aligned periods.\nData freshness: updated as new benchmark source observations become available.","inputSchema":{"type":"object","required":["benchmark_slug"],"properties":{"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"frequency":{"enum":["daily","weekly","monthly"],"type":"string","default":"daily"},"benchmark_slug":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":193,"tokensAfter":193},{"name":"get_bulgarian_pension_benchmark_series","fixed":{"name":"get_bulgarian_pension_benchmark_series","description":"Alias for `get_benchmark_series` to retrieve inflation/market comparators for UPF/PPF/VPF.","inputSchema":{"type":"object","required":["benchmark_slug"],"properties":{"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"frequency":{"enum":["daily","weekly","monthly"],"type":"string","default":"daily"},"benchmark_slug":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"get_bulgarian_pension_benchmarks","fixed":{"name":"get_bulgarian_pension_benchmarks","description":"Alias for `list_benchmarks` with Bulgarian pension comparison context.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":58,"tokensAfter":58},{"name":"get_bulgarian_pension_fund_managers","fixed":{"name":"get_bulgarian_pension_fund_managers","description":"Alias for `list_managers` with explicit Bulgarian pension context for agent discovery.","inputSchema":{"type":"object","properties":{"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"get_bulgarian_pension_fund_metric","fixed":{"name":"get_bulgarian_pension_fund_metric","description":"Alias for `compute_metric` with explicit Bulgarian pension metric intent.","inputSchema":{"type":"object","required":["metric","period"],"properties":{"metric":{"type":"string"},"period":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}]},"window":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"default":null},"fund_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"frequency":{"enum":["daily","weekly","monthly"],"type":"string","default":"daily"},"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null},"manager_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"benchmark_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"risk_free_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null},"risk_free_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"benchmark_target_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":304,"tokensAfter":304},{"name":"get_bulgarian_pension_fund_nav_series","fixed":{"name":"get_bulgarian_pension_fund_nav_series","description":"Alias for `get_nav_series` with explicit pension NAV semantics for tool-RAG routing.","inputSchema":{"type":"object","properties":{"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"fund_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"frequency":{"enum":["daily","weekly","monthly"],"type":"string","default":"daily"},"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null},"manager_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"get_bulgarian_pension_funds","fixed":{"name":"get_bulgarian_pension_funds","description":"Alias for `list_funds` to discover UPF/PPF/VPF fund IDs for FSC-based analysis.","inputSchema":{"type":"object","properties":{"active_only":{"type":"boolean","default":true},"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"get_bulgarian_pension_metrics_catalog","fixed":{"name":"get_bulgarian_pension_metrics_catalog","description":"Alias for `list_metrics` so agents can semantically find available pension metrics.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"get_holdings_reports_index","fixed":{"name":"get_holdings_reports_index","description":"Get a lightweight summary index of pension fund holdings reports.\n\nReturns allocation metadata (equity %, domestic %, funds %) and top holdings\nfor each report without loading full content. Use this for quick discovery\nto decide which reports to load in full with `read_holdings_report`.","inputSchema":{"type":"object","properties":{"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"fund_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"manager_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"get_nav_series","fixed":{"name":"get_nav_series","description":"Get official NAV time series for a Bulgarian pension fund (UPF/PPF/VPF).\n\nAccepts either `fund_id` or (`manager_slug`, `scheme_code`) and returns normalized\nNAV points for return/risk calculations and charting.\nData freshness: updated as new source NAV observations are ingested.","inputSchema":{"type":"object","properties":{"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"fund_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"frequency":{"enum":["daily","weekly","monthly"],"type":"string","default":"daily"},"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null},"manager_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":244,"tokensAfter":244},{"name":"get_pension_legal_framework","fixed":{"name":"get_pension_legal_framework","description":"Return the full text of Bulgarian pension legal documents.","inputSchema":{"type":"object","properties":{"document":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter – \"ordinance_9\", \"ordinance_33\", or \"kso\".\n      If omitted, returns all available documents."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"list_benchmarks","fixed":{"name":"list_benchmarks","description":"List benchmark assets for Bulgarian pension comparisons.\n\nIncludes inflation and market references used to evaluate relative performance\nof UPF, PPF, and VPF/DPF funds.\nData freshness: benchmark metadata is stable; prices are updated as new source data arrives.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"list_funds","fixed":{"name":"list_funds","description":"List Bulgarian private pension funds and canonical fund IDs.\n\nReturns `fund_id` in `manager_slug:scheme_code` format for UPF, PPF, and VPF/DPF.\nUse this as discovery before calling NAV, metric, and ranking tools.\nData freshness: fund metadata follows latest FSC-tracked manager/scheme dataset.","inputSchema":{"type":"object","properties":{"active_only":{"type":"boolean","default":true},"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":156,"tokensAfter":156},{"name":"list_holdings_reports","fixed":{"name":"list_holdings_reports","description":"List available markdown holdings reports for Bulgarian pension funds.\n\nReports contain detailed portfolio holdings data extracted from official PDF filings\nand converted to structured markdown with metadata (allocation %, exposure, top holdings).\n\nUse this tool to discover what reports are available before loading specific ones\nwith `read_holdings_report`. Filter by manager, fund type, or date range.","inputSchema":{"type":"object","properties":{"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"fund_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"manager_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":230,"tokensAfter":230},{"name":"list_managers","fixed":{"name":"list_managers","description":"Retrieve Bulgarian pension manager metadata for UPF, PPF, and VPF/DPF schemes.\n\nUse this to discover licensed managers and their supported scheme types before\nrunning rankings or metric calculations over FSC-tracked pension data.\nData freshness: reflects latest ingested official FSC manager/scheme coverage.","inputSchema":{"type":"object","properties":{"scheme_code":{"anyOf":[{"enum":["upf","ppf","dpf"],"type":"string"},{"type":"null"}],"default":null}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"list_metrics","fixed":{"name":"list_metrics","description":"List all supported financial metric identifiers for MCP analytics tools.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"read_holdings_report","fixed":{"name":"read_holdings_report","description":"Read a specific markdown holdings report for a Bulgarian pension fund.\n\nReturns the full markdown content (or just metadata if summary_only=True)\nfor a specific manager, fund type, and date. The report includes detailed\nportfolio holdings with instrument types, issuers, values, and portfolio shares.","inputSchema":{"type":"object","required":["manager_slug","fund_type","date"],"properties":{"date":{"type":"string","description":"Report date in YYYY-MM-DD format"},"fund_type":{"type":"string","description":"Fund type code (e.g., 'upf', 'ppf', 'dpf')"},"manager_slug":{"type":"string","description":"Manager identifier (e.g., 'dskrodina', 'allianz', 'doverie')"},"summary_only":{"type":"boolean","default":false,"description":"If True, return only parsed metadata (allocation, exposure, top holdings)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":247,"tokensAfter":247},{"name":"search_pension_law","fixed":{"name":"search_pension_law","description":"Search across Bulgarian pension legal framework documents.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search term (e.g., \"чл. 175\", \"equity limits\", \"инвестиционни ограничения\")."},"document":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional filter to search only one document."},"max_results":{"type":"integer","default":10,"description":"Maximum number of matching sections to return (default 10)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":162,"tokensAfter":162}],"toolsChanged":19,"tokensSaved":0,"todo":[{"tool":"compute_metric","params":["metric","period","window","fund_id","frequency","scheme_code","manager_slug","benchmark_slug","risk_free_rate","risk_free_slug","benchmark_target_slug"]},{"tool":"get_benchmark_series","params":["date_to","date_from","frequency","benchmark_slug"]},{"tool":"get_bulgarian_pension_benchmark_series","params":["date_to","date_from","frequency","benchmark_slug"]},{"tool":"get_bulgarian_pension_fund_managers","params":["scheme_code"]},{"tool":"get_bulgarian_pension_fund_metric","params":["metric","period","window","fund_id","frequency","scheme_code","manager_slug","benchmark_slug","risk_free_rate","risk_free_slug","benchmark_target_slug"]},{"tool":"get_bulgarian_pension_fund_nav_series","params":["date_to","fund_id","date_from","frequency","scheme_code","manager_slug"]},{"tool":"get_bulgarian_pension_funds","params":["active_only","scheme_code"]},{"tool":"get_holdings_reports_index","params":["date_to","date_from","fund_type","manager_slug"]},{"tool":"get_nav_series","params":["date_to","fund_id","date_from","frequency","scheme_code","manager_slug"]},{"tool":"list_funds","params":["active_only","scheme_code"]},{"tool":"list_holdings_reports","params":["date_to","date_from","fund_type","manager_slug"]},{"tool":"list_managers","params":["scheme_code"]},{"tool":"rank","params":["limit","order","metric","offset","period","window","frequency","scheme_code","benchmark_slug","risk_free_rate","include_metrics"]},{"tool":"rank_benchmarks","params":["limit","order","metric","offset","period","window","frequency","benchmark_slug","risk_free_rate","include_metrics"]},{"tool":"rank_bulgarian_pension_benchmarks_by_metric","params":["limit","order","metric","offset","period","window","frequency","scheme_code","benchmark_slug","risk_free_rate","include_metrics"]},{"tool":"rank_bulgarian_pension_funds_by_metric","params":["limit","order","metric","offset","period","window","frequency","scheme_code","benchmark_slug","risk_free_rate","include_metrics"]},{"tool":"simulate_bulgarian_pension_saver_outcome","params":["end_date","date_from","scheme_code","manager_slug","monthly_amount"]},{"tool":"simulate_saver_outcome","params":["fund_id","end_date","start_date","scheme_code","manager_slug","monthly_contribution"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}