Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,542Letters: 14Defects: 1,324counted 4 min ago
teppi

Server definition

Hash
sha256:8398d39f08bbe830d92388a343fcc5ebfcd61086a4e83902385db726fbef428e
What it is
What a remote MCP server returned when asked what it offers: 28 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Request a personal consultation with Mirabello Consultancy (Swiss relocation & investment-migration specialists) for questions beyond the data — international moves, residency, lump-sum taxation, wealth planning. Requires explicit consent to share contact details.", "inputSchema": { "properties": { "consent": { "description": "must be true: the person explicitly consents to their contact details being shared with Mirabello Consultancy", "type": "boolean" }, "email": { "type": "string" }, "message": { "type": "string" }, "name": { "type": "string" }, "phone": { "type": "string" }, "topic": { "type": "string" } }, "required": [ "name", "email", "consent" ], "type": "object" }, "name": "book_consultation", "outputSchema": null }, { "description": "Live income+wealth tax for a specific commune & household (official ESTV, year 2026). commune = name or postcode; income in CHF; married bool; children count; wealth in CHF.", "inputSchema": { "properties": { "children": { "type": "number" }, "commune": { "type": "string" }, "income": { "type": "number" }, "married": { "type": "boolean" }, "wealth": { "type": "number" } }, "required": [ "commune", "income" ], "type": "object" }, "name": "commune_tax", "outputSchema": null }, { "description": "Monthly commute cost between two Swiss places: by car at the official Swiss average fuel price (BFS) and by electric car at the home commune official electricity tariff (ElCom H4), plus the public-transport journey time (Swiss timetable). Distance defaults to straight line × 1.3 between the stations (labelled estimate) unless km_one_way is given. Public-transport fares are not open official data and are not included.", "inputSchema": { "properties": { "consumption_l": { "description": "l/100 km, default 7", "type": "number" }, "days_per_month": { "description": "default 20", "type": "number" }, "ev_kwh": { "description": "kWh/100 km, default 18", "type": "number" }, "from": { "description": "home place", "type": "string" }, "fuel": { "description": "unleaded95 or diesel", "type": "string" }, "km_one_way": { "type": "number" }, "to": { "description": "work place", "type": "string" } }, "required": [ "from", "to" ], "type": "object" }, "name": "commute_cost", "outputSchema": null }, { "description": "Compare 2–4 cantons across all metrics. cantons = array of abbreviations.", "inputSchema": { "properties": { "cantons": { "items": { "type": "string" }, "type": "array" } }, "required": [ "cantons" ], "type": "object" }, "name": "compare_cantons", "outputSchema": null }, { "description": "Every approved basic health-insurance premium (FOPH) for a commune or premium region: cheapest offers for an adult (26+), young adult (19–25) or child, by deductible, insurance model (standard, family doctor/HMO, telemedicine, other) and accident cover, with the insurer and product. year 2027 (next year) or 2026. Premiums depend on the commune of residence, so give commune (name or BFS number) or region (e.g. ZH-1).", "inputSchema": { "properties": { "accident": { "description": "true = accident cover included (default false: covered by the employer)", "type": "boolean" }, "age_group": { "description": "adult (default), young_adult or child", "type": "string" }, "commune": { "type": "string" }, "deductible": { "description": "CHF, e.g. 300 or 2500", "type": "number" }, "limit": { "description": "number of offers, default 10", "type": "number" }, "model": { "description": "standard, family_doctor, telemedicine, other or any (default)", "type": "string" }, "region": { "type": "string" }, "year": { "type": "number" } }, "type": "object" }, "name": "compare_health_insurers", "outputSchema": null }, { "description": "Estimate the net yearly CHF impact of moving between two Swiss communes for a household: live commune-level tax (official ESTV 2026) plus canton-average rent and health-premium differences. Positive savings = the move saves money. The flagship relocation calculation as a tool.", "inputSchema": { "properties": { "children": { "type": "number" }, "from_commune": { "description": "current commune name or postcode", "type": "string" }, "income": { "description": "gross household income, CHF/year", "type": "number" }, "married": { "type": "boolean" }, "to_commune": { "description": "candidate commune name or postcode", "type": "string" }, "wealth": { "description": "taxable wealth, CHF", "type": "number" } }, "required": [ "from_commune", "to_commune", "income" ], "type": "object" }, "name": "estimate_net_move", "outputSchema": null }, { "description": "Live availability of public EV charging points in Switzerland (official SFOE feed, minutes old): national and per-canton availability and fast chargers; with place (postcode or locality) or lat/lon also the nearest points within km with their live status. No prices (no official register exists).", "inputSchema": { "properties": { "km": { "description": "radius, default 5, max 25", "type": "number" }, "lat": { "type": "number" }, "lon": { "type": "number" }, "place": { "type": "string" } }, "type": "object" }, "name": "ev_charging_near", "outputSchema": null }, { "description": "Is the drive across the border worth it? Official station prices in France, Austria and Italy (live / daily official sources) near a Swiss place, ranked by net saving vs the official Swiss average price (BFS) after the fuel used for the round trip. place = postcode or locality (or lat/lon). Location is used for this lookup only.", "inputSchema": { "properties": { "consumption": { "description": "l/100 km, default 7", "type": "number" }, "fuel": { "description": "unleaded95 (default) or diesel", "type": "string" }, "km": { "description": "search radius, 2–40, default 10", "type": "number" }, "lat": { "type": "number" }, "lon": { "type": "number" }, "place": { "type": "string" }, "tank": { "description": "litres, default 50", "type": "number" } }, "type": "object" }, "name": "fuel_prices_near", "outputSchema": null }, { "description": "Get all metric values for one canton. canton = 2-letter abbreviation (e.g. ZH, GE, TI). rank 1 = lowest value for cost metrics (dir 'low', e.g. taxes/rent) and highest value for capacity/benefit metrics (dir 'high', e.g. sunshine/jobs). Ranks describe order under the stated scenario, not universal suitability.", "inputSchema": { "properties": { "canton": { "type": "string" } }, "required": [ "canton" ], "type": "object" }, "name": "get_canton", "outputSchema": null }, { "description": "Fact sheet for one Swiss commune (by name, BFS number or postcode): population, foreign residents, migration, jobs, new dwellings, gigabit and fibre coverage, public-transport accessibility, solar power, EV share, cars, cross-border commuters, commune finances, its canton context (tax, rent, premium ranks), live income tax for a reference profile (official ESTV), and the national fuel reference.", "inputSchema": { "properties": { "commune": { "type": "string" } }, "required": [ "commune" ], "type": "object" }, "name": "get_commune", "outputSchema": null }, { "description": "Read one Swiss Living Index dataset (id from list_datasets), exactly as published on the site (official values, unchanged). Filter with canton (2-letter) and/or commune (name or BFS number), section (a top-level key), from_year / to_year. Large datasets return a size summary first so you can narrow the request. Every reply carries source, source URL and the page to cite.", "inputSchema": { "properties": { "canton": { "type": "string" }, "commune": { "type": "string" }, "from_year": { "type": "number" }, "id": { "type": "string" }, "max_kb": { "description": "reply size limit in KB, default 150, max 600", "type": "number" }, "section": { "type": "string" }, "to_year": { "type": "number" } }, "required": [ "id" ], "type": "object" }, "name": "get_dataset", "outputSchema": null }, { "description": "Official electricity tariff (ElCom) for a Swiss commune and its grid operator(s): total, energy, grid use, commune charges and federal levy in Rappen per kWh, for 2025–2027, and the yearly bill for a consumption profile (ElCom categories H1–H8, default H4 = 5-room flat, 4500 kWh) or your own kWh.", "inputSchema": { "properties": { "category": { "description": "H1–H8, default H4", "type": "string" }, "commune": { "type": "string" }, "kwh": { "description": "own yearly consumption (overrides the category volume)", "type": "number" }, "year": { "type": "number" } }, "required": [ "commune" ], "type": "object" }, "name": "get_electricity_price", "outputSchema": null }, { "description": "Swiss income-tax deductions for families (ESTV tax folder): maximum childcare (third-party care) deduction per child and the child deduction (Kinderabzug) rule for a canton, plus the federal values. canton = 2-letter abbreviation; omit for federal only.", "inputSchema": { "properties": { "canton": { "type": "string" } }, "type": "object" }, "name": "get_family_tax_deductions", "outputSchema": null }, { "description": "Average monthly housing costs per household in Switzerland (BFS household budget survey HABE): net rent or mortgage interest, ancillary costs (Nebenkosten: flat-rate charges, water, waste water, waste, upkeep), energy (electricity, gas/fuels, heating), with BFS quality grades. Latest year for Switzerland; with canton also the values of its major region (pooled period). Means over all households incl. owners.", "inputSchema": { "properties": { "canton": { "type": "string" } }, "type": "object" }, "name": "get_housing_costs", "outputSchema": null }, { "description": "Statutory cantonal minimum wages in Switzerland (official cantonal pages): hourly amount, valid from, history and the monthly equivalent at 40 hours. Only five cantons have one (BS, GE, JU, NE, TI); without canton the list of all five is returned. Elsewhere minimums apply only through collective or standard employment contracts.", "inputSchema": { "properties": { "canton": { "type": "string" } }, "type": "object" }, "name": "get_minimum_wage", "outputSchema": null }, { "description": "Official Swiss social-security payroll deductions for the current year (AHV/IV/EO, unemployment insurance ALV with ceiling, occupational pension BVG coordinated salary and age credits), as used for a gross-to-net salary estimate.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_payroll_rates", "outputSchema": null }, { "description": "Health-insurance premium subsidies (Prämienverbilligung / réduction des primes) per canton (FOPH KVSTAT): share of insured receiving a subsidy, average CHF per beneficiary and per household, subsidy as % of the mean premium, federal vs cantonal funding, plus the responsible cantonal office (name, address, phone, website). canton = 2-letter abbreviation.", "inputSchema": { "properties": { "canton": { "type": "string" } }, "required": [ "canton" ], "type": "object" }, "name": "get_premium_subsidy", "outputSchema": null }, { "description": "Swiss mortgage reference interest rate for rents (BWO/FOH): current rate, valid since, next publication dates, every change since 2008, and the rule for rent adjustments (VMWG Art. 13). Optional lease_rate (the rate in the lease) returns the quarter-point steps since then. Also returns the latest BFS rent price index (quarterly change, annual change, share of rents up/down/unchanged).", "inputSchema": { "properties": { "lease_rate": { "description": "reference rate stated in the lease, e.g. 1.75", "type": "number" } }, "type": "object" }, "name": "get_reference_rate", "outputSchema": null }, { "description": "Official gross monthly salaries in Switzerland (BFS Swiss Earnings Structure Survey LSE): median and P10/P25/P75/P90 for all employees, women and men, by major region and economic sector. canton (2-letter) is mapped to its BFS major region, because the FSO publishes salaries by major region only; sector = NOGA division code (e.g. 62) or a word (e.g. \"IT\", \"banking\", \"construction\"); year = survey year (default latest). CHF per month, gross, standardised to full time.", "inputSchema": { "properties": { "canton": { "type": "string" }, "region": { "description": "major region code 1–7 or -1 for Switzerland", "type": "string" }, "sector": { "type": "string" }, "year": { "type": "number" } }, "type": "object" }, "name": "get_salary", "outputSchema": null }, { "description": "Historical year-series for a metric in one canton (e.g. sunshine back to 1884, migration to 1981, rent to 2010). metric = key from list_metrics with history: rent_mean, net_migration_per_1000, foreigner_pct, sunshine_hours, balance_per_capita, beds_per_1000, jobs, unemployment_pct (SECO yearly averages to 1993). Optional from_year.", "inputSchema": { "properties": { "canton": { "type": "string" }, "from_year": { "type": "number" }, "metric": { "type": "string" } }, "required": [ "canton", "metric" ], "type": "object" }, "name": "get_trend", "outputSchema": null }, { "description": "What Swiss households spend per month (BFS household budget survey, official): income, social insurance, taxes, health premiums, food, restaurants, housing and energy, transport, leisure and more, for all households, singles, couples without children, families and retired couples.", "inputSchema": { "properties": { "household": { "description": "all, single, couple_no_children, family or retiree_couple; omit for all types", "type": "string" } }, "type": "object" }, "name": "household_budget", "outputSchema": null }, { "description": "Catalogue of EVERY dataset published by the Swiss Living Index (about 125: migration, births and first names, crime, public finances, cross-border commuters, vehicles, broadband, sustainability, naturalisations, permits, health care, housing, income, education and more), each with source, geography (Switzerland / canton / commune), years and page. Without arguments it returns the topics; with topic or query it returns the matching datasets. Then read one with get_dataset.", "inputSchema": { "properties": { "geography": { "description": "switzerland, canton or commune", "type": "string" }, "query": { "description": "words to match in title, source or id", "type": "string" }, "topic": { "description": "topic key from the topic list, e.g. migration", "type": "string" } }, "type": "object" }, "name": "list_datasets", "outputSchema": null }, { "description": "List available metrics for the 26 Swiss cantons (key, label, unit, source, what higher/lower means).", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_metrics", "outputSchema": null }, { "description": "Rank all cantons by a metric. metric = a key from list_metrics; order = \"high\" or \"low\" (default high).", "inputSchema": { "properties": { "metric": { "type": "string" }, "order": { "type": "string" } }, "required": [ "metric" ], "type": "object" }, "name": "rank_by_metric", "outputSchema": null }, { "description": "Personal canton recommendation (\"Where should I live in Switzerland?\"): weight 5 categories 0–3 (cost = rent/premiums/electricity; tax = income tax/fiscal balance; work = jobs/unemployment/migration; env = sunshine/crime/vacancy; health = hospital capacity) and get all 26 cantons scored by the transparent percentile method of the Swiss Living Quality Index. Every evidence figure carries value, unit, rank, source and year. Scores describe order under the stated weights, not universal suitability.", "inputSchema": { "properties": { "cost": { "description": "0-3, default 2", "type": "number" }, "env": { "type": "number" }, "health": { "type": "number" }, "infra": { "description": "0-3, connectivity & infrastructure (active once infra metrics ship)", "type": "number" }, "international_community": { "description": "include foreigner share, higher preferred", "type": "boolean" }, "limit": { "description": "top N with evidence, default 5", "type": "number" }, "tax": { "type": "number" }, "work": { "type": "number" } }, "type": "object" }, "name": "recommend_canton", "outputSchema": null }, { "description": "Official gross monthly salaries by occupation group (ISCO-08) and age band (up to 29, 30–49, 50+), median and P10–P90, for all, women and men, by major region (BFS LSE). occupation = ISCO code or words (e.g. \"nurse\", \"engineer\", \"teacher\", \"IT\"); canton maps to its major region.", "inputSchema": { "properties": { "age": { "description": "all (default), under30, 30to49, 50plus", "type": "string" }, "canton": { "type": "string" }, "occupation": { "type": "string" }, "region": { "type": "string" }, "year": { "type": "number" } }, "type": "object" }, "name": "salary_by_occupation", "outputSchema": null }, { "description": "Find Swiss communes by name or postcode (official ESTV location register). Returns commune name, canton and postcode — use before commune_tax or estimate_net_move when the spelling is uncertain.", "inputSchema": { "properties": { "query": { "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_commune", "outputSchema": null }, { "description": "The next Swiss federal vote dates and (once announced) the subjects on the ballot, in DE/FR/IT/EN (official Federal Chancellery / VoteInfo data).", "inputSchema": { "properties": {}, "type": "object" }, "name": "upcoming_votes", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8398d39f08bbe830d92388a343fcc5ebfcd61086a4e83902385db726fbef428e | sha256sum