finn-tannlege
Server Details
Norwegian dental clinic directory (A2A marketplace). Search ~6,900 clinics by county, specialty, Helfo agreement and emergency availability. 5 tools: tannlege_search, tannlege_info, tannlege_stats, tannlege_akutt, tannlege_kjeder.
- Status
- Healthy
- Uptime
- 98.3% over 83 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- Finn-tannlege
TDQS
Scored across 5 tools
Most tools target clearly distinct facets: detail lookup, chain listing, statistics, broad search, and emergency search. The main overlap is between tannlege_search and tannlege_akutt, since search also supports emergency care, but akutt's narrower focus and extra out-of-hours advice help distinguish it.
All tools use lowercase snake_case with a consistent tannlege_ prefix, making the set predictable to scan. The suffixes mix Norwegian and English terms (akutt, kjeder, info vs. search, stats) and are not a strict verb_noun pattern, but the naming is still readable and stable.
Five tools is well scoped for a read-only dental directory: search, detail, emergency, chains, and stats each cover a meaningful facet. There is no obvious bloat, and each tool earns its place.
The surface covers the core read operations: broad search, full clinic detail, emergency lookup, chain listing, and aggregate statistics. Minor gaps remain, such as listing all clinics for a given chain or explicit pagination, but agents can largely work around them.
Available Tools
5 toolstannlege_akuttFind dental clinics for emergency care in NorwayARead-onlyIdempotentInspect
Find an emergency dentist (akutt tannlege) in Norway: dental clinics that say they take emergency patients, optionally in one county (fylke). Each clinic's akutt is "vakt" only when its emergency duty has a stored quote from the source (badge «Akuttvakt»), and "accepts" when the clinic says it takes emergency patients («Tar imot akuttpasienter»). count is the number of matching clinics. Each clinic has its address, phone and profile URL, and when known its opening hours and online booking link. The response also has advice on the municipal out-of-hours dental service (kommunal tannlegevakt).
| Name | Required | Description | Default |
|---|---|---|---|
| fylke | No | Limit to clinics in this county. Examples: 'Oslo', 'Vestland' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotentHint annotations, the description explains the meaning of each returned value: `akutt` is "vakt" only when a stored source quote supports the badge, and "accepts" when the clinic self-declares. It also lists per-clinic fields and the presence of out-of-hours (kommunal tannlegevakt) advice, so an agent knows exactly what evidence backs each record.
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 core purpose is front-loaded in the first sentence, and the remaining sentences are dense with substantive detail about value semantics. It is somewhat long and mixes output-contract information into the summary, but no sentence is filler.
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 carries the full burden of explaining returns, and it does: `count`, per-clinic address/phone/profile URL, known opening hours and booking link, plus the advice field. An agent can anticipate the response shape without extra documentation.
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% and the schema already provides examples for `fylke`. The description adds that the filter is optional and limited to a single county, which is a small increment over the structured field. This is the expected baseline when the schema does the work.
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 gives a concrete verb and a tightly scoped resource: find dental clinics that accept emergency patients in Norway, with an optional county filter. It is specific enough to be distinguishable from a general clinic search. It does not name any sibling tool (tannlege_search, tannlege_kjeder, etc.) to make that differentiation explicit.
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?
The emergency-care framing implies when the tool applies, but there is no explicit statement about when to use a sibling instead, for example, general searches use tannlege_search or chain lookups use tannlege_kjeder. When-not conditions and prerequisites are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tannlege_infoGet full details for a dental clinicARead-onlyIdempotentInspect
Get the full record of one dental clinic in Norway, a dentist (tannlege) or specialist practice, by organisation number (org_nr) or id. Returns name, address, phone, mobile, e-mail, website, online booking link, Helfo status, the emergency claim («Akuttvakt» only when an emergency duty has a stored quote from the source; «Tar imot akuttpasienter» when the clinic says it takes emergency patients), specialties, chain, specialists, treatments, opening hours, payment options, the clinic's own description and profile URL.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Clinic UUID (alternative to org_nr) | |
| org_nr | No | 9-digit Norwegian organisation number. Example: '912345678' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is clear. The description adds useful behavioral context by detailing the returned fields and clarifying conditional emergency-claim semantics such as «Akuttvakt» versus «Tar imot akuttpasienter».
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 then lists return fields in a dense but useful single sentence. There is little waste, though the long field list makes it less scannable than shorter definitions.
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?
Because there is no output schema, the description carries the burden of explaining what is returned, and it does so thoroughly. It is only slightly incomplete in not stating what happens if neither id nor org_nr is supplied, or which identifier wins if both are 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 both id and org_nr are already fully documented in the schema. The description restates that lookup can be done by organisation number or id but adds no format, precedence, or conflict-handling details 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: get the full record of one dental clinic by org_nr or id. It implicitly distinguishes itself from sibling tools like tannlege_search by emphasizing a single full record, but it does not explicitly name those alternatives.
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?
Usage is implied by the need to supply an org_nr or id and by the phrase 'one dental clinic,' which suggests this is a detail lookup rather than a search. However, there is no explicit guidance on when to use this instead of tannlege_search, tannlege_akutt, or other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tannlege_kjederList Norwegian dental chainsARead-onlyIdempotentInspect
List dentist chains (tannlegekjeder) in Norway that are registered in the directory, each with its number of clinic locations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful content context (directory-registered chains, each with clinic location counts), but says nothing about result size, ordering, or whether the list is exhaustive.
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?
A single front-loaded sentence with no filler. The verb, scope, and return content are all packed into one readable clause.
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 no-param, read-only list tool with annotations covering safety and no output schema, the description is nearly sufficient, summarizing that results are chains with location counts. It could note whether the full set is always returned, but nothing essential is missing.
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?
The tool takes zero parameters, so there are no parameter semantics to convey; the baseline for a parameterless tool is 4. The description correctly avoids implying any inputs.
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 (List) and resource (dentist chains / tannlegekjeder) plus scope (Norway, registered in the directory). The resource name itself separates it from siblings like tannlege_search and tannlege_stats, but no sibling is named explicitly, so it stops short of a 5.
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?
Usage is implied: an agent can infer this is the catalog-listing tool for browsing chains, as opposed to tannlege_search or tannlege_info. However, there is no explicit when-to-use statement and no exclusions or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tannlege_searchSearch Norwegian dental clinicsARead-onlyIdempotentInspect
Find a dentist (tannlege), orthodontist (kjeveortoped) or emergency dentist (akutt tannlege) in Norway by place, county (fylke), specialty, Helfo direct billing or emergency care. The request can go in query as written, such as 'kjeveortoped i Bergen med Helfo-avtale'; the response's tolkning shows how it was read, and count is the number of matching clinics. Each clinic has its name, address, postcode, place, county, phone, website, Helfo status, emergency status (akutt) and profile URL, and when known its online booking link, opening hours, specialties, chain and a price level that has a source.
| Name | Required | Description | Default |
|---|---|---|---|
| akutt | No | If true, only return clinics with an emergency claim: «Akuttvakt» backed by a stored source quote, or «Tar imot akuttpasienter». | |
| fylke | No | Norwegian county (fylke). Examples: 'Oslo', 'Vestland', 'Rogaland' | |
| helfo | No | If true, only return clinics with Helfo direct-billing agreement | |
| limit | No | Max results (default 10, max 25) | |
| query | No | Free-text search (name or city). Examples: 'Oslo tannklinikk', 'kjeveortoped Bergen' | |
| spesialitet | No | Specialty slug. Examples: 'kjeveortopedi', 'endodonti', 'periodonti' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the lower bar applies; the description still adds real value by explaining that `tolkning` shows the interpreted query and `count` the match total, plus what each clinic record contains. It stops short of stating result ordering or empty-result behavior.
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?
Two sentences, front-loaded with the verb and domain, then the query convention, then the return shape. The second sentence packs a long field list, but every clause carries information an agent would otherwise have to guess.
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 does the work of describing the return payload (name, address, Helfo status, akutt, booking link, price level with source), which is substantial. Minor gaps remain around ranking and behavior when zero clinics match.
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; the description earns an extra point by showing that multiple filters can be expressed in one free-text `query` and that the parse is echoed in `tolkning`, which is meaning beyond the schema's per-field docs.
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') and resource (dentist/orthodontist/emergency dentist in Norway), plus the filter axes (place, fylke, specialty, Helfo, emergency). It does not explicitly distinguish itself from tannlege_akutt or tannlege_stats, so an agent must infer the boundary from names alone.
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?
Makes clear how to call it: a natural-language request can be passed in `query` verbatim, with a concrete example ('kjeveortoped i Bergen med Helfo-avtale'). It offers no explicit when-not or named alternative tool, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tannlege_statsNorwegian dental market statisticsARead-onlyIdempotentInspect
Counts of dentist practices (tannlegeklinikker) in Norway: the total, per county (fylke), and how many have Helfo direct billing, belong to a chain, show an emergency claim (akutt) or list a specialist. An emergency claim is «Akuttvakt», an emergency duty backed by a stored quote from the source, or «Tar imot akuttpasienter», that the clinic says it takes emergency patients.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and a closed world, so the safety profile is covered. The description adds real domain context beyond that: it defines what an 'emergency claim' actually means (an «Akuttvakt» duty backed by a stored source quote, or a clinic self-declaring «Tar imot akuttpasienter»), which an agent cannot get from the annotations.
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 the resource and the count dimensions in the first sentence, with the definitional nuance relegated to a second sentence. Both sentences earn their place and there is no filler.
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 and no parameters, the description carries the burden of telling the agent what comes back, and it does so at the level of content (total, per county, and category counts). It does not specify the response shape or field names, which is a minor remaining gap for a no-schema tool.
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?
There are zero input parameters, so the baseline is 4; there is nothing for the description to disambiguate. It correctly makes no attempt to describe parameters.
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 ('Counts of dentist practices (tannlegeklinikker) in Norway') and enumerates the exact breakdowns it returns: total, per county, Helfo direct billing, chain membership, emergency claim, specialist. That is far more specific than the title. It does not explicitly name how it differs from siblings like tannlege_search, so it stops short of a 5.
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?
Usage is only implied: an agent can infer this is the aggregate/statistics view versus the search or listing siblings, but the description never says when to pick it over tannlege_search or tannlege_akutt. No prerequisites or exclusions are given.
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.
1 tool update
- Changed
tannlege_search1 field changed- changed
Input schema / properties / akutt / descriptionPrevious value: -"If true, only return clinics with emergency-duty (akuttvakt)"New value: +"If true, only return clinics with an emergency claim: «Akuttvakt» backed by a stored source quote, or «Tar imot akuttpasienter»."
12 tool updates
- Removed
lokal_discover - Removed
lokal_get_producer_affiliations - Removed
lokal_get_umbrella_members - Removed
lokal_info - Removed
lokal_list_umbrellas - Removed
lokal_search - Removed
lokal_stats - Added
tannlege_akutt - Added
tannlege_info - Added
tannlege_kjeder - Added
tannlege_search - Added
tannlege_stats
12 tool updates
- Added
lokal_discover - Added
lokal_get_producer_affiliations - Added
lokal_get_umbrella_members - Added
lokal_info - Added
lokal_list_umbrellas - Added
lokal_search - Added
lokal_stats - Removed
tannlege_akutt - Removed
tannlege_info - Removed
tannlege_kjeder - Removed
tannlege_search - Removed
tannlege_stats
5 tool updates
- First observed
tannlege_akutt - First observed
tannlege_info - First observed
tannlege_kjeder - First observed
tannlege_search - First observed
tannlege_stats
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs112 npm29 PyPIMIT
- AlicenseAqualityDmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.