EINI
Server Details
Swiss supermarket deals at 8 chains and official 2027 health insurance premiums, from EINI.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: health insurance comparison is standalone, while the meal-plan tools split cleanly into create vs. read current plan, and shopping list and deals search target different resources despite both touching supermarket data. No realistic misselection risk.
All tools share the eini_ prefix and mostly follow a verb_noun pattern (compare_health_insurance, create_meal_plan, search_deals). The two possessive forms 'my_meal_plan' and 'my_shopping_list' deviate from the verb pattern, but the convention is still readable and predictable.
Five tools is lean but coherent for a niche meal-planning plus deals server. Each tool earns its place, though the scope is narrow enough that it sits near the lower end of comfortable.
Meal plan creation, retrieval, and shopping-list read are covered, but there is no update, delete, or regenerate path for plans, and the shopping list mentions ticked-off items yet offers no way to tick or modify them. These gaps could dead-end an agent that wants to manage rather than just view.
Available Tools
5 toolseini_compare_health_insuranceCompare Swiss health insurance premiumsARead-onlyIdempotentInspect
Official monthly premiums of Swiss basic health insurance (KVG / LAMal) for next year, cheapest insurer first, for a municipality or postcode, an age and a franchise. Optional: model (standard, family doctor 'hausarzt', HMO, Telmed) and accident cover (employees working 8+ hours a week are usually covered by their employer and can leave it out). Data: BAG, all insurers.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Age of the insured person. | |
| limit | No | ||
| model | No | 'any' = each insurer's cheapest model. | any |
| place | Yes | Swiss municipality or 4-digit postcode, e.g. 'Emmen', 'Lausanne', '8001'. | |
| franchise | No | Deductible in CHF. Adults: 300, 500, 1000, 1500, 2000 or 2500 (default 2500). Children: 0-600. | |
| accident_cover | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that: the data source (BAG, all insurers), the time scope (next year), and the sort order (cheapest first). It does not cover response shape or how results are truncated by 'limit', but with full annotation coverage this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense but purposeful sentences, front-loading what is returned and how it is ordered before the optional parameter caveats. Parenthetical asides carry real meaning (KVG/LAMal, Hausarzt, employer coverage), though the middle sentence is packed with several optional knobs at once.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-output-schema tool this covers the essentials: data provenance, currency (next year), ordering, and the semantics of the trickiest optional flag. The only omissions are the result limit and a hint at the returned fields, which are minor given annotations carry the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description compensates where it can: it expands the model enum into plain-language options ('family doctor hausarzt', HMO, Telmed) and, crucially, supplies the only rationale for accident_cover, which the schema leaves undocumented. Franchise and limit are left to the schema, so the support is useful but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource (official monthly KVG/LAMal premiums) and pins down the output ordering ('cheapest insurer first') plus the required dimensions (municipality/postcode, age, franchise). No sibling tool offers premium comparison, so the distinction is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the key decision the user faces on accident cover, advising that employees working 8+ hours a week are usually covered by their employer and can omit it. It also frames model and franchise as supplementary filters, giving clear context for optional inputs, though it does not state exclusions or alternative tools (none exist among this toolset).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eini_create_meal_planMake a new EINI meal planAInspect
Make a NEW weekly meal plan (lunch and dinner, 7 days) in the user's EINI account, built around this week's Swiss supermarket deals, with its shopping list. Uses the user's saved EINI settings (people, diets, stores); you may change people, diets or language. Call it only when the user asks for a new plan: the new plan becomes their current plan in the app (earlier plans are not deleted). The account may need an EINI subscription for it (the answer says so). Needs the user's EINI login.
| Name | Required | Description | Default |
|---|---|---|---|
| diet | No | Optional. Replaces the saved diets; [] for none. | |
| adults | No | Optional. Adults eating; default: the user's saved setting. | |
| children | No | Optional. Children eating; default: the user's saved setting. | |
| language | No | Optional. Language of recipes and shopping list; default: saved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses important behavioral context: it uses saved EINI settings, may require an EINI subscription, needs the user's EINI login, and changes the current plan without deleting earlier plans. These details go well beyond the annotation hints about read-only, destructive, and idempotent status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and follows with relevant operational caveats. It is somewhat long, but most sentences carry useful information about scope, side effects, subscription needs, and authentication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and complex side effects, the description covers the key behavioral requirements: account login, possible subscription, saved defaults, and the plan becoming current. It does not describe the response format or how to retrieve the generated shopping list, but the essential invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four optional parameters and their defaults. The description adds a light conceptual mapping by saying the user may change people, diets, or language, but it does not add much syntax or semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: making a NEW weekly meal plan in the user's EINI account, with scope of 7 days, lunch and dinner, Swiss supermarket deals, and a shopping list. It clearly distinguishes creation from sibling tools like eini_my_meal_plan and eini_my_shopping_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: call only when the user asks for a new plan, and it explains the consequence that the new plan becomes the current plan while earlier plans remain. It does not explicitly name alternative sibling tools for viewing or comparing plans, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eini_my_meal_planMy EINI meal planARead-onlyIdempotentInspect
The user's current weekly meal plan from their EINI account (lunch and dinner per day, built around this week's Swiss supermarket deals). Without 'day': the week overview. With 'day': that day's recipes with ingredients, quantities and steps. Needs the user's EINI login. If there is no plan yet, the answer says so.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Optional. Weekday in any language ('Monday', 'Montag', 'lundi', 'lunedì') or the day number 1-7 in the plan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds useful context beyond that: authentication is required and an absent plan yields an explicit 'no plan' response, which prevents misreading an empty result as an error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool returns, then the parameter behavior, then the auth and empty-state caveats. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with no output schema, the description covers return shape, both usage modes, auth requirement and empty-state handling — everything an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by explaining the behavioral difference between omitting 'day' (week overview) versus supplying it (full recipes with ingredients and steps) — more than the schema's format note provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('user's current weekly meal plan from their EINI account') and scopes it (lunch and dinner per day, built around Swiss supermarket deals). The possessive 'My'/current framing cleanly separates it from the sibling eini_create_meal_plan without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the two usage modes: without 'day' returns the week overview, with 'day' returns that day's recipes with ingredients, quantities and steps. Also states a prerequisite (EINI login) and the empty-state behavior. It does not name alternatives such as eini_create_meal_plan, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eini_my_shopping_listMy EINI shopping listARead-onlyIdempotentInspect
The shopping list of the user's current EINI meal plan: each item with quantity, the store and product EINI picked (cheapest, using this week's deals), pack price in CHF and whether it is on promotion. By default only items not ticked off yet. Needs the user's EINI login.
| Name | Required | Description | Default |
|---|---|---|---|
| store | No | Optional. Only items to buy at this store, e.g. 'Coop', 'Migros', 'Lidl'. | |
| open_only | No | true (default): only items not ticked off yet; false: the whole list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds real context: it requires the user's EINI login, and the picks are the cheapest using this week's deals, which tells the agent where the data comes from and why prices look the way they do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The dominant sentence front-loads the resource and then lists the returned fields compactly, followed by a short default-behavior clause and a short auth clause. No filler, though the description uses a noun-phrase construction with no explicit verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return shape, and it does: it enumerates the per-item fields and flags. Combined with the auth requirement and default filtering, an agent has what it needs, with only the absence of sibling-routing guidance as a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented with an example for store and an explicit default for open_only. The description restates the open_only default and adds only slight framing about store-picked products, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete resource (the user's current EINI meal-plan shopping list) and enumerates its content: quantity, chosen store/product, pack price in CHF, and promotion status. That is specific enough to separate it from eini_search_deals, though it never explicitly contrasts itself with a sibling by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied rather than stated: it serves the current meal plan and defaults to unticked items, which hints at the 'what do I still need to buy' scenario. There is no explicit guidance on when to prefer this over eini_search_deals or eini_my_meal_plan, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eini_search_dealsSearch Swiss supermarket dealsARead-onlyIdempotentInspect
Find this week's promotions (Aktionen) at Swiss supermarkets: Coop, Migros, Lidl, Aldi, Denner, Aligro, Volg and Otto's. Search by product (any language; German/French/Italian names match best), filter by store and category. Returns at most 20 deals, biggest discount first, with price, regular price, discount and last day (null = while stocks last). A multi-buy offer (Coop's 'ab 2 Stück') adds a condition; its price is for one piece. Switzerland only, prices in CHF.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Product to look for, e.g. 'Poulet', 'chicken', 'Kaffee', 'mozzarella'. Leave empty for the biggest discounts overall. | |
| category | No | produce (fruit & veg), protein (meat & fish), dairy (incl. eggs), pantry, frozen, beverage. | |
| language | No | Language for product names and labels (Aligro and Volg are not shown for 'it'). | de |
| retailers | No | Only these stores. Leave empty for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, non-destructive profile, and the description goes well beyond them: it discloses the result cap (20), sort order (biggest discount first), return fields (price, regular price, discount, last day), the meaning of null (while stocks last), and the multi-buy semantics where the quoted price is for one piece. These are non-obvious behavioral traits an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with verb and resource, then moves efficiently through search behavior, return shape, and edge cases. Dense but every sentence carries information; the multi-buy clarification is slightly specialized but earns its place as a query caveat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values and does so explicitly (fields, ordering, cap, null meaning). Combined with the geographic/currency scope note and multi-buy caveat, an agent has everything needed to call and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high at 80%, so the schema already documents most parameters. The description still adds meaning beyond it: that the query matches across languages with German/French/Italian names working best, that retailers can be restricted or left empty for all stores, and that language affects which retailers appear. These are genuinely additive hints rather than restatements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (find/search) and resource (this week's promotions at named Swiss supermarkets), listing the exact retailers covered. It is clearly distinguishable from siblings like eini_create_meal_plan or eini_my_shopping_list, which are about planning and lists, not deal discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear in-tool usage context ('search by product', 'filter by store and category', 'leave empty for the biggest discounts overall') but never states when to prefer this tool over siblings such as eini_create_meal_plan or eini_my_shopping_list, nor any exclusions. Usage is implied rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
eini_compare_health_insurance - First observed
eini_create_meal_plan - First observed
eini_my_meal_plan - First observed
eini_my_shopping_list - First observed
eini_search_deals
Related MCP Connectors
Swiss health insurance 2027: rank every insurer, model and deductible with official BAG data.
Official Swiss data for all 26 cantons and 2,100 communes: tax, rent, health premiums, fuel, jobs.
Swiss LAMal premium comparison (OFSP 2027), single or household; consented offer requests to SPI.
Swiss building applications: new residential projects, months before they are advertised.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables natural-language search of Swiss grocery products, price comparison, and weekly promotion lookup across retailers including Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, and Otto's.7MIT
- AlicenseBqualityDmaintenanceProvides AI assistants access to 1.6 million Swiss health insurance premium records from 55 insurers across 11 years (2016-2026), enabling price comparisons, historical analysis, and finding the cheapest insurance options based on location, age, and coverage preferences.2434 npm1MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to provide authoritative, cited, jurisdiction-correct answers about Switzerland using official federal, cantonal, and municipal sources across multiple languages and topics.13-
- AlicenseAqualityAmaintenanceEnables natural language queries about Swiss mandatory health insurance coverage for medications and medical devices using official BAG lists.635 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.