# `io.github.nvasilevv/pensiata` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.nvasilevv/pensiata
- JSON: https://anlyon.dev/api/v1/servers/io.github.nvasilevv/pensiata
- Version: 1.0.0 (active)
- Publisher: io.github.nvasilevv (GitHub account)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Repository: https://github.com/nvasilevv/pensiata-mcp
- Metadata from the official MCP Registry, synced 2026-10-21T18:42:48.132Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Pensiata - Bulgarian Pension Fund Analytics
Bulgarian pension fund analytics — NAV data, metrics, rankings, and benchmarks.
```

Scanned 2026-10-21T19:25:41.550Z over streamable-http.

**26 tools: 7 change things and 19 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 7 | ask |
| Only reads | read | 19 | allow |

## Findings

No check matched anything in these tool definitions.


## Changes things (7)

Creates or changes something that can be changed back. Claude Code: ask.

### `compute_metric`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `rank`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `rank_benchmarks`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Rank benchmark assets by metric and period for market-context comparison.

Data freshness: rankings reflect latest ingested benchmark observations.
```

### `rank_bulgarian_pension_benchmarks_by_metric`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Alias for `rank_benchmarks` for semantically rich benchmark ranking discovery.
```

### `rank_bulgarian_pension_funds_by_metric`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Alias for `rank` to semantically target Bulgarian UPF/PPF/VPF leaderboard queries.
```

### `simulate_bulgarian_pension_saver_outcome`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
Alias for `simulate_saver_outcome` with explicit Bulgarian pension savings semantics.
```

### `simulate_saver_outcome`

- Nothing in its name or description says what it does, so it is counted as a write.

Description, as the server wrote it:

```untrusted-server-text
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.
```

## Only reads (19)

Looks things up and changes nothing. Claude Code: allow.

### `cache_stats`

- The description's first verb is "return": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Return MCP cache telemetry for diagnostics and performance debugging.
```

### `get_benchmark_series`

- The name "get_benchmark_series" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `get_bulgarian_pension_benchmark_series`

- The name "get_bulgarian_pension_benchmark_series" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Alias for `get_benchmark_series` to retrieve inflation/market comparators for UPF/PPF/VPF.
```

### `get_bulgarian_pension_benchmarks`

- The name "get_bulgarian_pension_benchmarks" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Alias for `list_benchmarks` with Bulgarian pension comparison context.
```

### `get_bulgarian_pension_fund_managers`

- The name "get_bulgarian_pension_fund_managers" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Alias for `list_managers` with explicit Bulgarian pension context for agent discovery.
```

### `get_bulgarian_pension_fund_metric`

- The name "get_bulgarian_pension_fund_metric" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Alias for `compute_metric` with explicit Bulgarian pension metric intent.
```

### `get_bulgarian_pension_fund_nav_series`

- The name "get_bulgarian_pension_fund_nav_series" says "get": a word for reading.

Description, as the server wrote it:

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

### `get_bulgarian_pension_funds`

- The name "get_bulgarian_pension_funds" says "get": a word for reading.

Description, as the server wrote it:

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

### `get_bulgarian_pension_metrics_catalog`

- The name "get_bulgarian_pension_metrics_catalog" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Alias for `list_metrics` so agents can semantically find available pension metrics.
```

### `get_holdings_reports_index`

- The name "get_holdings_reports_index" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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`.
```

### `get_nav_series`

- The name "get_nav_series" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `get_pension_legal_framework`

- The name "get_pension_legal_framework" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Return the full text of Bulgarian pension legal documents.
```

### `list_benchmarks`

- The name "list_benchmarks" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `list_funds`

- The name "list_funds" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `list_holdings_reports`

- The name "list_holdings_reports" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `list_managers`

- The name "list_managers" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `list_metrics`

- The name "list_metrics" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List all supported financial metric identifiers for MCP analytics tools.
```

### `read_holdings_report`

- The name "read_holdings_report" says "read": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `search_pension_law`

- The name "search_pension_law" says "search": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Search across Bulgarian pension legal framework documents.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `pensiata`:

```json
{
  "permissions": {
    "allow": [
      "mcp__pensiata__list_managers",
      "mcp__pensiata__list_funds",
      "mcp__pensiata__get_nav_series",
      "mcp__pensiata__list_benchmarks",
      "mcp__pensiata__list_metrics",
      "mcp__pensiata__cache_stats",
      "mcp__pensiata__get_benchmark_series",
      "mcp__pensiata__get_bulgarian_pension_fund_managers",
      "mcp__pensiata__get_bulgarian_pension_funds",
      "mcp__pensiata__get_bulgarian_pension_fund_nav_series",
      "mcp__pensiata__get_bulgarian_pension_benchmarks",
      "mcp__pensiata__get_bulgarian_pension_metrics_catalog",
      "mcp__pensiata__get_bulgarian_pension_benchmark_series",
      "mcp__pensiata__get_bulgarian_pension_fund_metric",
      "mcp__pensiata__list_holdings_reports",
      "mcp__pensiata__get_holdings_reports_index",
      "mcp__pensiata__read_holdings_report",
      "mcp__pensiata__get_pension_legal_framework",
      "mcp__pensiata__search_pension_law"
    ],
    "ask": [
      "mcp__pensiata__compute_metric",
      "mcp__pensiata__rank",
      "mcp__pensiata__rank_benchmarks",
      "mcp__pensiata__simulate_saver_outcome",
      "mcp__pensiata__rank_bulgarian_pension_funds_by_metric",
      "mcp__pensiata__rank_bulgarian_pension_benchmarks_by_metric",
      "mcp__pensiata__simulate_bulgarian_pension_saver_outcome"
    ],
    "deny": []
  }
}
```
