# Obolus (remote · www.obolusfinanz.de)

Read-only payroll calculations and multi-country tax comparisons for eight countries.

- Trust score: 77/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-04

## Components

- remote · `www.obolusfinanz.de`: 77/100 (this document), [markdown](https://verifymcp.io/servers/sanzation-obolus/api-mcp-public.md), [page](https://verifymcp.io/servers/sanzation-obolus/api-mcp-public)

## Channel facts

- Endpoint: `https://www.obolusfinanz.de/api/mcp/public`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-04.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1288 tokens (~644/item across 2 items; 2 tools + 0 resources), over budget; trim descriptions and params.
  - Tools include usage examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 2 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 2 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Obolus MCP server?

Obolus is a hosted endpoint at https://www.obolusfinanz.de/api/mcp/public, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http sanzation-obolus 'https://www.obolusfinanz.de/api/mcp/public'
```

### Cursor

```json
{
  "mcpServers": {
    "sanzation-obolus": {
      "url": "https://www.obolusfinanz.de/api/mcp/public"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sanzation-obolus": {
      "type": "http",
      "url": "https://www.obolusfinanz.de/api/mcp/public"
    }
  }
}
```

### Codex

```toml
[mcp_servers.sanzation-obolus]
url = "https://www.obolusfinanz.de/api/mcp/public"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sanzation-obolus": {
      "type": "remote",
      "url": "https://www.obolusfinanz.de/api/mcp/public",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sanzation-obolus --url 'https://www.obolusfinanz.de/api/mcp/public' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sanzation-obolus:
    url: "https://www.obolusfinanz.de/api/mcp/public"
```

### Netclaw

```json
{
  "McpServers": {
    "sanzation-obolus": {
      "Transport": "http",
      "Url": "https://www.obolusfinanz.de/api/mcp/public"
    }
  }
}
```

### Vellum

```bash
assistant mcp add sanzation-obolus -t streamable-http -u 'https://www.obolusfinanz.de/api/mcp/public'
```

### Other

```json
{
  "mcpServers": {
    "sanzation-obolus": {
      "type": "http",
      "url": "https://www.obolusfinanz.de/api/mcp/public"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-04 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-01 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-29 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 74, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-25 (score 73, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-23 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-21 (score 71, +1)

- [functional improvement] Stability: unverified → 0.03

## MCP tools (2)

### `berechne` (~693 tokens)

Obolus.berechne - Calculate payroll

Calculate detailed payroll and net salary for one country and person. Use this for tax class, region, health insurance, pension, deductions, or other country-specific inputs. For the same gross salary across two or more countries, use taxcompare. Use semantic fields where available; legacy fields remain REST compatibility inputs. Monetary fields in the legacy request are minor units and period-specific.

Input parameters:

- `Currency` (string): Display currency / calculation currency code.
- `Faktor` (number): Global factor for factor-based tax class handling.
- `KinderFRB` (number): Top-level child allowance, child count, dependent count, or child-credit factor for the calculation. DE uses allowance-style factors; AT/CH/US and other systems use country-specific child/dependent m…
- `KinderPVA` (integer): Total child count relevant for German long-term care insurance contribution logic. Leave 0 outside German care-insurance scenarios unless a country-specific child workflow explicitly requires it.
- `Kindergeld` (integer): Child benefit amount in minor units for the selected calculation context. Leave 0 for standard payroll estimates unless explicitly modeling child benefit or a country-specific dependent benefit.
- `LZZ` (integer): Payroll period identifier for the calculation. Values: 1=year, 2=month, 3=week, 4=day. All salary and payroll monetary inputs must be for this period, not automatically annualized.
- `Land` (string): Country code for the calculation.
- `Modus` (integer): Calculation mode. Use 1 for one person, 2 for two persons, and 3 for the German TaxSim capped real-splitting simulation.
- `Personen` (array): One or two payroll person records. Each person contains salary, tax class, region, insurance, child, and optional special-income inputs.
- `Stjahr` (integer): Tax year.
- `age` (integer): Age in the selected tax year. If omitted, the calculation reports the standard age-35 assumption instead of silently hiding the default.
- `country` (string): Preferred high-level country code for MCP calls. For German payroll use DE. The adapter maps this to legacy Land.
- `employee_type` (string): Preferred high-level German employee type. Use standard_statutory_employee for the common statutory pension, unemployment, health, and care insurance case.
- `gross_salary` (object): Preferred high-level gross salary input. Amount is in major currency units, not cents. The adapter maps it to legacy Gehalt_ct minor units and LZZ.
- `location` (object): Preferred high-level location input. For Germany, federal_state may be a state code such as BE or a full Obolus state name such as Berlin.
- `payroll_preset` (string): Preferred high-level payroll preset. Use DE_STANDARD_EMPLOYEE_STATUTORY for a normal German employee with statutory pension, unemployment, health, and care insurance.
- `social_security` (object): Preferred high-level German social-security assumptions. Use enums instead of raw Obolus flags. The adapter maps statutory/exempt/private choices to the legacy payroll-engine fields.
- `tax` (object): Preferred high-level tax assumptions for MCP calls. The adapter maps these to Steuerklasse, Kirche, and Kinderfreibetrag.
- `tax_year` (integer): Preferred high-level tax year for MCP calls. The adapter maps this to legacy Stjahr.

Output parameters:

- `assumptions` (object): Normalized user-facing assumptions used for the payroll calculation, including country, salary period, location, tax class, church tax, and German social-security choices. Use this to explain what th…
- `calculated_at` (string): UTC timestamp when this response was assembled.
- `contract_version` (string): Obolus public contract version used to shape this response.
- `faktor` (number): Tax factor used for German tax class IV factor workflows when applicable.
- `gesamt` (object): Combined payroll result across all persons in the calculation. Uses the same country-specific output-code meanings as person1 and person2.
- `localized_cta` (object): Localized call-to-action labels for opening the visual Obolus report link.
- `method_version` (string): Calculation method or benchmark method version used for this response.
- `orientation_note` (string): Reminder that the result is an orientation estimate, not professional advice.
- `person1` (object): Payroll result for the first person. Interpret stable output codes with the original request Land and the output country-specific usage notes.
- `person2` (object): Payroll result for the second person. Values are zero or empty when the calculation mode uses only one person. Interpret stable output codes with the original request Land.
- `source_url` (string): Canonical Obolus URL for the matching interactive calculator.
- `summary` (object): Normalized major-unit amounts for gross income, net income, taxes, social contributions, and total deductions. Use this stable summary for display; raw payroll fields remain available for country-spe…
- `tax_data_version` (string): Tax-data or backend-engine revision used for this response.
- `visual_report` (string): Deep link to the interactive report or calculator view.
- `warnings` (array): Non-blocking warnings about suspicious inputs, such as annual gross sent with monthly LZZ, scaled German Zusatzbeitrag values, or raw German insurance combinations that may be intentional for non-sta…

### `taxcompare` (~595 tokens)

Obolus.taxcompare - Compare net income

Compare annual gross, net pay, taxes, and employee social contributions across two or more supported countries. Use shared_gross for the same offer and local_median_gross for country-market benchmarks. Provide tax_year and at least two countries. Use berechne for detailed single-country payroll.

Input parameters:

- `age` (integer): Adult age in the selected tax year.
- `annual_gross` (number): Backward-compatible annual gross salary alias in major currency units, not cents. Prefer salary_ct. Example: 50000 means 50,000 in the selected currency. Required for shared_gross mode only when sala…
- `children` (integer): Number of children or dependents used as a broad comparison assumption. Country-specific child allowance and credit rules are simplified for comparability.
- `countries` (array, required): List of country tax systems to compare. Use at least two countries for a comparison. Supported values: DE, AT, CH, US, UK, IE, CA, AU.
- `currency` (string, required): Input and output currency: EUR, USD, CHF, CAD, AUD, GBP, or lower-case equivalents. Results normalize currency codes to lower-case. Unlike berechne, taxcompare prefers salary_ct for salary input and…
- `gross_mode` (string): Comparison basis. Use shared_gross for the same user-provided annual gross across all countries. Use local_median_gross for country-specific editorial median gross benchmarks. Defaults to shared_gros…
- `joint_assessment` (boolean): Broad joint filing / joint assessment assumption for comparable country-level estimates. For precise country-specific filing details, use berechne.
- `period` (string): Period for salary_ct. Use annual when salary_ct is the annual gross salary. Use monthly when salary_ct is one monthly gross salary; taxcompare annualizes it before comparing countries. annual_gross i…
- `person_type` (string): Broad household assumption for comparison. single maps to joint_assessment=false; married maps to joint_assessment=true unless joint_assessment is provided explicitly. For precise country-specific fi…
- `regions` (object): Country-keyed tax regions, for example CH: ZH. Omitted regions use country defaults, reported in calculation_profile.
- `salary_ct` (integer): Preferred salary input for MCP calls. Salary in minor units for the selected period, for example 5000000 for EUR 50,000. With period=annual this is annual salary; with period=monthly this is monthly…
- `tax_year` (required): Tax year, for example 2026. The same tax year is applied to every selected country.

Output parameters:

- `assumptions` (object): Normalized comparison inputs used for the calculation, including age, tax year, countries, gross mode, salary, and household assumptions.
- `benchmark_method_version` (string): Editorial benchmark method version used when comparison_basis is local_median_gross.
- `benchmark_sources` (object): Country-level benchmark source metadata used in local_median_gross mode, keyed by country code.
- `calculated_at` (string): UTC timestamp when this response was assembled.
- `comparison_basis` (string): Basis used for the comparison: shared_gross for the same gross salary in each country, or local_median_gross for country-specific median benchmarks.
- `contract_version` (string): Obolus public contract version used to shape this response.
- `gross_inputs` (object): Annual gross salary input used for each country, keyed by country code and expressed in the selected major currency. In shared_gross mode these values are usually identical; in local_median_gross mod…
- `localized_cta` (object): Localized labels for opening the visual TaxCompare report.
- `method_version` (string): Calculation method or benchmark method version used for this response.
- `orientation_note` (string): Reminder that the result is an orientation estimate, not professional advice.
- `ranking_by_net` (array): Countries ranked by estimated annual net salary, highest net first. Use this for 'where do I keep more money' and 'rank by net income' answers.
- `results` (array): Country-level comparison results with gross salary, net salary, income/payroll tax, social contributions, total deductions, and effective burden.
- `source_url` (string): Canonical Obolus TaxCompare URL for this result.
- `summary` (object): Normalized annual major-unit amounts for every country result. Use key and country together to render stable comparison cards or tables.
- `tax_data_version` (string): Tax-data or backend-engine revision used for this response.
- `tax_year`: Tax year actually used for every country result.
- `visual_report` (string): Deep link to TaxCompare with the tool input, countries, year, and agent attribution prefilled.
- `warnings` (array): Non-blocking warnings associated with this comparison.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sanzation-obolus/api-mcp-public#diagnostics

## Score history

- 2026-10-04: 77
- 2026-10-03: 76
- 2026-10-02: 76
- 2026-10-01: 76
- 2026-09-30: 75
- 2026-09-29: 75
- 2026-09-28: 74
- 2026-09-27: 74
- 2026-09-26: 73
- 2026-09-25: 73
- 2026-09-24: 72
- 2026-09-23: 72
- 2026-09-22: 71
- 2026-09-21: 71
- 2026-09-20: 70

## Common questions

### What is the Obolus MCP server?

Obolus is an MCP server listed in the public MCP registry as io.github.sanzation/obolus. Read-only payroll calculations and multi-country tax comparisons for eight countries. This page covers its hosted endpoint (https://www.obolusfinanz.de/api/mcp/public).

### Is the Obolus MCP server safe to use?

Obolus scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Obolus MCP server expose?

Obolus exposes 2 tools: berechne, taxcompare. Their descriptions and schemas cost roughly 1,288 tokens of context every time the server is loaded.

### Does the Obolus MCP server require authentication?

No. We connected to Obolus without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Obolus MCP server still maintained?

Obolus is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.obolusfinanz.de/api/mcp/public
- Website: https://www.obolusfinanz.de/en/developers
- Changelog RSS feed: https://verifymcp.io/servers/sanzation-obolus/api-mcp-public.xml
- Changelog JSON feed: https://verifymcp.io/servers/sanzation-obolus/api-mcp-public.json
- HTML version of this page: https://verifymcp.io/servers/sanzation-obolus/api-mcp-public
