Skip to main content
Glama

Server Details

Norwegian dental clinic MCP: more than 4,500 clinics with Helfo, specialty and emergency care data.

Ownership verified
Status
Healthy
Uptime
98.3% over 65 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
slookisen/lokal
GitHub Stars
2
Server Listing
lokal

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation4/5

tannlege_info (single-record lookup by id/org_nr), tannlege_kjeder (chain list), and tannlege_stats (aggregate counts) are clearly distinct. The one fuzzy boundary is tannlege_akutt versus tannlege_search, since search also returns emergency dentists, but akutt's narrower emergency-only focus is spelled out in its description.

Naming Consistency5/5

All five tools follow the same tannlege_<noun/verb> snake_case pattern (akutt, info, kjeder, search, stats). The convention is uniform and predictable, with no mixed casing or verb/noun drift.

Tool Count4/5

Five tools is a lean but sensible set for a read-only dental-clinic directory covering find, detail, chains, emergency, and stats. Slightly thin, but each tool maps to a distinct query intent rather than being redundant filler.

Completeness4/5

The surface covers the main directory workflows: search, single-record detail, chain listing, emergency lookup, and aggregate statistics. As a read-only registry it reasonably omits create/update/delete, though it lacks any way to browse all clinics/paginate or explore related entities beyond chains.

Available Tools

5 tools
tannlege_akuttFind dental clinics for emergency care in NorwayA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
fylkeNoLimit to clinics in this county. Examples: 'Oslo', 'Vestland'

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/openWorld, but the description adds real behavioral value: it explains the two meanings of the `akutt` field ('vakt' only when a stored source quote exists, 'accepts' when the clinic self-declares), what `count` means, and that the response includes municipal out-of-hours advice. It does not discuss result limits or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and scope are front-loaded in the first sentence, followed by the return-value explanation. It is dense but every clause carries information; the akutt-semantics sentence is long yet necessary given the ambiguity it resolves.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 describing returns, and it does so thoroughly: count, per-clinic address/phone/profile URL, opening hours and booking link, plus the extra out-of-hours advice field. Only pagination/result-limit behavior is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema description coverage, so the schema already documents `fylke` with examples. The description only repeats that the county filter is optional, adding no syntax or value-format detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find) and resource (emergency dental clinics / akutt tannlege in Norway) with the optional county scope, so an agent can tell it apart from the generic tannlege_search. It does not explicitly name the sibling tools, so the differentiation is implicit rather than spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The emergency-care framing implies when this tool applies, and the optional fylke parameter is described as an optional narrowing. There is no explicit when-to-use versus tannlege_search or the other tannlege_* siblings, and no exclusions or prerequisites, leaving routing 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 clinicA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoClinic UUID (alternative to org_nr)
org_nrNo9-digit Norwegian organisation number. Example: '912345678'

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful context by enumerating the returned data and disclosing subtle source semantics (Akuttvakt vs Tar imot akuttpasienter). It stops short of noting auth or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose clause is front-loaded and the second sentence earns its length by documenting the return payload in the absence of an output schema. The field enumeration is dense but not redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param read tool with no output schema and readOnly annotations, the description covers both how to look up and what comes back. The only minor gap is that it does not state that at least one of id/org_nr is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 id and org_nr fully. The description confirms they are alternative lookup keys but adds no format or syntax detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Get") and resource ("the full record of one dental clinic"), with the identifying keys named. It implicitly contrasts with the search sibling by returning "one" clinic, but never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the identifiers (call it when you have an org_nr or id for a single clinic), but there is no explicit when-to-use, when-not, or sibling routing. The agent must infer that tannlege_search is the tool for discovery and this one for retrieval.

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 chainsA
Read-onlyIdempotent
Inspect

List dentist chains (tannlegekjeder) in Norway that are registered in the directory, each with its number of clinic locations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_statsNorwegian dental market statisticsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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. 1 tool update
    • Changedtannlege_search1 field changed
      • changedInput schema / properties / akutt / description
        Previous 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»."
  2. 5 tool updates
    • First observedtannlege_akutt
    • First observedtannlege_info
    • First observedtannlege_kjeder
    • First observedtannlege_search
    • First observedtannlege_stats

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for querying the official registration records of the Regional Council of Dentistry of Amazonas (Brazil), offering a single read-only tool for consultation.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables dental clinic staff to manage appointments, verify patient affiliation, and track accounts receivable through MCP tools, with OAuth 2.1, per-tool scopes, and human approval required for every mutation.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server for querying official dental registration data from the Regional Council of Dentistry of Alagoas (Brazil). It provides a single tool to consult professional records via a hosted HTTP endpoint with prepaid credits.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying the Regional Dental Council of Rio Grande do Sul (Brazil) professional registration database through a read-only MCP tool. Works with any MCP client via HTTP with prepaid credits.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.