Pensiata - Bulgarian Pension Fund Analytics

io.github.nvasilevvPublished by GitHub account nvasilevvv1.0.0Updated Oct 25, 2026

Bulgarian pension fund analytics — NAV data, metrics, rankings, and benchmarks.

VerifiedStreamable HTTPWeb executableFinanceKnowledge & MemoryData & Analytics

Overview

AI-generated overview

Remote MCP server for Bulgarian pension fund analytics: NAV series, performance metrics, rankings, benchmarks, holdings reports and pension law search.

What you can do
Discover pension managers, funds and benchmarks, and list the available metric catalog and holdings reports index or cache statistics for diagnostics. Retrieve NAV and benchmark time series for UPF, PPF and DPF funds over configurable dates and frequency. Compute metrics such as CAGR, real CAGR, volatility, drawdown, Sharpe, Sortino, Calmar, tracking error and correlation, optionally against a benchmark. Rank funds or benchmarks by a chosen metric and period, with extra metric columns. Simulate saver outcomes with periodic contributions, including invested amount, terminal value and IRR-like diagnostics. Read markdown holdings reports and search or read the Bulgarian pension legal framework.
When to use it
Use it when comparing Bulgarian pillar II pension funds or managers, checking historical NAV performance, benchmarking against inflation or market indices, estimating saver outcomes, or looking up fund holdings and pension legislation.
Requirements
A remote streamable HTTP endpoint; no API key is required and no local runtime or environment variables are declared. Network access to the hosted endpoint is needed.
Before you install
The server is read-only analytics: it returns data and computed results but does not place transactions or move money. Simulation outputs are estimates based on historical NAV data, not investment advice or guarantees. Data reflects the latest ingested official FSC figures and may lag the source.

Installation

In SourceWeft

  1. Open Pensiata - Bulgarian Pension Fund Analytics in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.nvasilevv%2Fpensiata/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "pensiata-bulgarian-pension-fund-analytic": {
      "type": "http",
      "url": "https://mcp.pensiata.me/mcp"
    }
  }
}

README

Pensiata MCP Server

A Model Context Protocol server providing analytics for Bulgarian pension funds — covering all three pillar II schemes (UPF, PPF, DPF).

Hosted at: https://mcp.pensiata.me/mcp (streamable HTTP transport)

Connect

Add to your MCP client configuration:

json
{  "mcpServers": {    "pensiata": {      "type": "streamable-http",      "url": "https://mcp.pensiata.me/mcp"    }  }}

No API key required.

Tools

list_managers

List pension fund management companies with AUM and supported schemes.

ParameterTypeDescription
scheme_codeupf | ppf | dpf (optional)Filter by scheme

list_funds

List individual funds with metadata.

ParameterTypeDescription
scheme_codeupf | ppf | dpf (optional)Filter by scheme
active_onlybool (default: true)Only active funds

get_nav_series

Retrieve NAV (Net Asset Value) time series for one or more funds.

ParameterTypeDescription
fund_idstring (optional)e.g. allianz:upf
manager_slugstring (optional)All funds for a manager
scheme_codeupf | ppf | dpf (optional)All funds in a scheme
frequencydaily | weekly | monthlyDefault: daily
date_fromstring (optional)Start date (YYYY-MM-DD)
date_tostring (optional)End date (YYYY-MM-DD)

compute_metric

Compute a performance metric for one or more funds over a given period.

ParameterTypeDescription
metricstringMetric name (see below)
periodstring or objecte.g. "5y", "10y", "ytd", or {"date_from": "...", "date_to": "..."}
fund_idstring (optional)Specific fund
manager_slugstring (optional)All funds for a manager
scheme_codeupf | ppf | dpf (optional)All funds in a scheme
benchmark_slugstring (optional)Benchmark or fund ID for relative metrics
frequencydaily | weekly | monthlyDefault: daily
risk_free_ratenumber (optional)Override risk-free rate
risk_free_slugstring (optional)Benchmark to use as risk-free rate

rank

Rank funds within a scheme by any metric.

ParameterTypeDescription
scheme_codeupf | ppf | dpfRequired
metricstringMetric to rank by
periodstring or objectTime period
orderdesc | ascDefault: desc
include_metricsstring[] (optional)Additional metrics in output
benchmark_slugstring (optional)For relative metrics
limitintDefault: 50
offsetintDefault: 0

list_benchmarks

List available benchmark indices (S&P 500, Euro Stoxx 600, Gold, BG Inflation, etc.).

get_benchmark_series

Retrieve benchmark time series.

ParameterTypeDescription
benchmark_slugstringe.g. sp500, bg_inflation, gold
frequencydaily | weekly | monthlyDefault: daily
date_fromstring (optional)Start date
date_tostring (optional)End date

list_metrics

List all available metric names.

Available Metrics

MetricDescription
return_totalCumulative total return
cagrCompound annual growth rate
real_cagrInflation-adjusted CAGR
ytd_returnYear-to-date return
volatility_annAnnualized volatility
downside_volatility_annAnnualized downside volatility
max_drawdownMaximum drawdown
sharpeSharpe ratio
sortinoSortino ratio
calmarCalmar ratio
information_ratioInformation ratio (vs benchmark)
tracking_error_annAnnualized tracking error
excess_returnExcess return vs benchmark
correlationCorrelation with benchmark or another fund
ulcer_indexUlcer index
consistency_scoreReturn consistency score

Available Benchmarks

SlugDescription
sp500S&P 500 (USD)
eurostoxx600STOXX Europe 600 (USD)
goldGold (USD)
bg_inflationBulgarian CPI Inflation
us10y_gov_bondUS 10Y Government Bond (USD)
de10y_gov_bondGerman 10Y Government Bond (EUR)

Coverage

  • Schemes: UPF (Universal Pension Fund), PPF (Professional Pension Fund), DPF (Voluntary Pension Fund)
  • Managers: 10 active + 2 historical pension management companies
  • Data: Daily NAV data, some funds dating back to 2005
  • Currency: BGN

Website

pensiata.me

License

MIT

Source: README.md at commit d73fa5b

Tools

26

list_managers

Retrieve Bulgarian pension manager metadata for UPF, PPF, and VPF/DPF schemes. Use this to discover licensed managers and their supported scheme types before running rankings or metric calculations over FSC-tracked pension data. Data freshness: reflects latest ingested official FSC manager/scheme coverage.

Parametersscheme_code

list_funds

List Bulgarian private pension funds and canonical fund IDs. Returns `fund_id` in `manager_slug:scheme_code` format for UPF, PPF, and VPF/DPF. Use this as discovery before calling NAV, metric, and ranking tools. Data freshness: fund metadata follows latest FSC-tracked manager/scheme dataset.

Parametersactive_onlyscheme_code

get_nav_series

Get official NAV time series for a Bulgarian pension fund (UPF/PPF/VPF). Accepts either `fund_id` or (`manager_slug`, `scheme_code`) and returns normalized NAV points for return/risk calculations and charting. Data freshness: updated as new source NAV observations are ingested.

Parametersdate_tofund_iddate_fromfrequencyscheme_codemanager_slug

list_benchmarks

List benchmark assets for Bulgarian pension comparisons. Includes inflation and market references used to evaluate relative performance of UPF, PPF, and VPF/DPF funds. Data freshness: benchmark metadata is stable; prices are updated as new source data arrives.

Takes no parameters.

list_metrics

List all supported financial metric identifiers for MCP analytics tools.

Takes no parameters.

cache_stats

Return MCP cache telemetry for diagnostics and performance debugging.

Takes no parameters.

get_benchmark_series

Get historical benchmark series for pension-fund comparison workflows. Use with compute/rank tools to compare Bulgarian pension funds against inflation or market proxies over aligned periods. Data freshness: updated as new benchmark source observations become available.

Parametersdate_todate_fromfrequencybenchmark_slugrequired

compute_metric

Compute a metric for Bulgarian pension funds or benchmark targets. Supports returns, drawdown, volatility, Sharpe/Sortino/Calmar, correlation, and benchmark-aware metrics over configurable period and frequency. Data freshness: computed from latest ingested FSC NAV and benchmark data.

Parametersmetricrequiredperiodrequiredwindowfund_idfrequencyscheme_codemanager_slugbenchmark_slugrisk_free_raterisk_free_slugbenchmark_target_slug

rank

Rank funds within UPF/PPF/VPF schemes by a selected metric and period. Supports optional extra columns via `include_metrics` for agent-friendly table outputs. Data freshness: rankings are computed from the latest ingested FSC-aligned NAV dataset.

Parameterslimitordermetricrequiredoffsetperiodrequiredwindowfrequencyscheme_coderequiredbenchmark_slugrisk_free_rateinclude_metrics

rank_benchmarks

Rank benchmark assets by metric and period for market-context comparison. Data freshness: rankings reflect latest ingested benchmark observations.

Parameterslimitordermetricrequiredoffsetperiodrequiredwindowfrequencybenchmark_slugrisk_free_rateinclude_metrics

simulate_saver_outcome

Simulate saver outcomes with periodic contributions into Bulgarian pension funds. Estimates invested amount, terminal value, and IRR-like performance diagnostics. Data freshness: simulation uses the latest available NAV history in the dataset.

Parametersfund_idend_datestart_datescheme_coderequiredmanager_slugmonthly_contributionrequired

get_bulgarian_pension_fund_managers

Alias for `list_managers` with explicit Bulgarian pension context for agent discovery.

Parametersscheme_code

get_bulgarian_pension_funds

Alias for `list_funds` to discover UPF/PPF/VPF fund IDs for FSC-based analysis.

Parametersactive_onlyscheme_code

get_bulgarian_pension_fund_nav_series

Alias for `get_nav_series` with explicit pension NAV semantics for tool-RAG routing.

Parametersdate_tofund_iddate_fromfrequencyscheme_codemanager_slug

get_bulgarian_pension_benchmarks

Alias for `list_benchmarks` with Bulgarian pension comparison context.

Takes no parameters.

get_bulgarian_pension_metrics_catalog

Alias for `list_metrics` so agents can semantically find available pension metrics.

Takes no parameters.

get_bulgarian_pension_benchmark_series

Alias for `get_benchmark_series` to retrieve inflation/market comparators for UPF/PPF/VPF.

Parametersdate_todate_fromfrequencybenchmark_slugrequired

get_bulgarian_pension_fund_metric

Alias for `compute_metric` with explicit Bulgarian pension metric intent.

Parametersmetricrequiredperiodrequiredwindowfund_idfrequencyscheme_codemanager_slugbenchmark_slugrisk_free_raterisk_free_slugbenchmark_target_slug

rank_bulgarian_pension_funds_by_metric

Alias for `rank` to semantically target Bulgarian UPF/PPF/VPF leaderboard queries.

Parameterslimitordermetricrequiredoffsetperiodrequiredwindowfrequencyscheme_coderequiredbenchmark_slugrisk_free_rateinclude_metrics

rank_bulgarian_pension_benchmarks_by_metric

Alias for `rank_benchmarks` for semantically rich benchmark ranking discovery.

Parameterslimitordermetricrequiredoffsetperiodrequiredwindowfrequencyscheme_codebenchmark_slugrisk_free_rateinclude_metrics

simulate_bulgarian_pension_saver_outcome

Alias for `simulate_saver_outcome` with explicit Bulgarian pension savings semantics.

Parametersend_datedate_fromscheme_codemanager_slugmonthly_amount

list_holdings_reports

List available markdown holdings reports for Bulgarian pension funds. Reports contain detailed portfolio holdings data extracted from official PDF filings and converted to structured markdown with metadata (allocation %, exposure, top holdings). Use this tool to discover what reports are available before loading specific ones with `read_holdings_report`. Filter by manager, fund type, or date range.

Parametersdate_todate_fromfund_typemanager_slug

get_holdings_reports_index

Get a lightweight summary index of pension fund holdings reports. Returns allocation metadata (equity %, domestic %, funds %) and top holdings for each report without loading full content. Use this for quick discovery to decide which reports to load in full with `read_holdings_report`.

Parametersdate_todate_fromfund_typemanager_slug

read_holdings_report

Read a specific markdown holdings report for a Bulgarian pension fund. Returns the full markdown content (or just metadata if summary_only=True) for a specific manager, fund type, and date. The report includes detailed portfolio holdings with instrument types, issuers, values, and portfolio shares.

Parametersdaterequiredfund_typerequiredmanager_slugrequiredsummary_only

search_pension_law

Search across Bulgarian pension legal framework documents.

Parametersqueryrequireddocumentmax_results

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts