Skip to main content
Glama

Podłącz w 30 sekund

Adres MCP: https://kolejki.compabase.com/mcp (Streamable HTTP, bez logowania).

  • Claude: Ustawienia → Connectors → Add custom connector → wklej adres.

  • ChatGPT: Settings → Connectors (tryb deweloperski) → dodaj serwer MCP.

  • Claude Code: claude mcp add --transport http kolejki-nfz https://kolejki.compabase.com/mcp

  • Lokalnie (stdio): npx -y kolejki-nfz-mcp, np. w Claude Desktop:

{ "mcpServers": { "kolejki-nfz": { "command": "npx", "args": ["-y", "kolejki-nfz-mcp"] } } }

Related MCP server: atlas-przetargow-mcp-py

Co potrafi

Narzędzie

Do czego

find_care

Dla specjalności, badania albo zabiegu (zwykłymi słowami: „okulista”, „ortopeda”, „rezonans magnetyczny”, „zaćma”, „endoprotezoplastyka biodra”) i miejsca (miejscowość, adres, „lat,lon”): poradnie i szpitale z umową z NFZ w okolicy, posortowane według prognozowanego czasu oczekiwania NFZ (albo odległości), z liczbą oczekujących, średnim czasem czekania, adresem, telefonem, odległością, udogodnieniami (winda, podjazd, parking…) i informacją, czy przyjmują dzieci. Przypadek stabilny albo pilny; poradnia albo oddział szpitalny.

find_benefits

Oficjalne nazwy świadczeń NFZ pasujące do słowa – gdy trzeba wskazać dokładne świadczenie.

data_sources

Źródła i zastrzeżenia.

Przykładowe pytania: „Gdzie najszybciej do endokrynologa na NFZ koło Lublina?”, „Rezonans magnetyczny na NFZ w Gdańsku – gdzie najkrótsza kolejka?”, „Ortopeda dla dziecka w Krakowie, najbliżej Nowej Huty”, „Mam skierowanie pilne do neurologa, mieszkam w Pile – dokąd?”, „Gdzie operacja zaćmy najszybciej w woj. śląskim?”.

Skąd dane

  • Kolejki: Narodowy Fundusz Zdrowia – API „Terminy leczenia” 1.4 (https://apinfz.nfz.gov.pl/app-itl-api-pcus/): listy oczekujących zgłaszane przez placówki z umową z NFZ, z prognozowanym czasem uzyskania świadczenia liczonym przez NFZ. Odpowiedzi trzymamy w pamięci podręcznej (6 h) i odpytujemy API powoli, żeby go nie obciążać.

  • Lokalizacja: GUGiK (państwowy rejestr adresów i granic gmin). Odległość w linii prostej – w miastach do adresu placówki, w mniejszych miejscowościach do ich centrum.

  • Zastrzeżenia: prognoza to szacunek NFZ, nie rezerwacja – na wizytę zapisuje się telefonicznie lub osobiście w placówce. Nie wszystkie świadczenia mają listy oczekujących w tym API (np. zwykłe porady kardiologiczne). Szukamy w województwie wskazanego miejsca. Serwer nie jest usługą NFZ i nie udziela porad medycznych; w nagłym przypadku – 112.

Własny serwer

npx -y kolejki-nfz-mcp --http --port 3000      # MCP: http://localhost:3000/mcp
npx -y kolejki-nfz-mcp find okulista "Poznań"
npx -y kolejki-nfz-mcp find "rezonans magnetyczny" "Gdańsk, Długa 1" --sort distance
npx -y kolejki-nfz-mcp benefits zaćm

Zmienne: KOLEJKI_CACHE_HOURS, KOLEJKI_CACHE_DIR, KOLEJKI_RATE_LIMIT, KOLEJKI_STATS=1 (anonimowe liczniki pod /stats), KOLEJKI_CONTACT, KOLEJKI_PUBLIC_URL.

Licencja

Kod: MIT. Dane: Narodowy Fundusz Zdrowia (dane publiczne, API „Terminy leczenia”), GUGiK – dane przetworzone. Projekt niezależny, niezwiązany z NFZ, hostowany pro publico bono przez Compabase. Zobacz też leki-mcp, powietrze-mcp, szkoly-mcp, rozklad-mcp i ceny-nieruchomosci-mcp.


English

kolejki-nfz-mcp gives AI assistants NFZ waiting times in Poland: for a specialist visit, diagnostic test or procedure (in everyday Polish words) near a place, it lists clinics and hospitals with an NFZ contract sorted by NFZ's forecast waiting time, with the number of people waiting, address, phone, distance, accessibility and whether children are seen. Stable or urgent cases. Data: NFZ "Terminy leczenia" API (public data). Public endpoint: https://kolejki.compabase.com/mcp (no key), or run locally with npx -y kolejki-nfz-mcp. Not affiliated with NFZ; the forecast is not a booking.

Available Tools

3 tools
data_sourcesData sourcesC
Read-only
Inspect

Where the data comes from and caveats.

NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds essentially no behavioral context beyond that — it doesn't say whether this returns provenance metadata, a list, external references, or how large/stable the result is.

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

Conciseness3/5

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

It is short with no wasted words, but it is a sentence fragment that is not front-loaded with a verb and reads as a caption rather than a definition. Brevity here reflects under-specification more than discipline.

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

Completeness2/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 is the only source of information about what this tool yields, and it does not explain the return content, structure, or the nature of the 'caveats'. For a metadata/provenance tool it leaves the agent guessing.

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 the baseline of 4 applies; there is no parameter semantics for the description to clarify.

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

Purpose2/5

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

The description is a noun-phrase fragment ('Where the data comes from and caveats') that essentially restates the name and title. There is no verb and no statement of what the tool actually returns or does, so an agent cannot confidently distinguish it from siblings like air_quality or air_stations.

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

Usage Guidelines2/5

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

Nothing indicates when to call this rather than air_quality or air_stations, nor any prerequisite or exclusion. Usage is at best implied by the word 'caveats', which is too weak to count as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_benefitsNFZ benefit namesA
Read-only
Inspect

Look up official NFZ benefit names (clinics, wards, tests, procedures) matching a word, e.g. 'rezonans' or 'okulist'. Use the exact name as find_care.benefit.

NameRequiredDescriptionDefault
queryYesWord or fragment, e.g. 'kardiolog', 'tomograf', 'zaćm'

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint and openWorldHint annotations already establish the safety profile. The description adds useful matching behavior and the downstream find_care.benefit usage, but it does not describe return format, matching exactness, or other behavioral details beyond 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?

Two sentences, front-loaded with the tool's purpose and followed by a concrete usage instruction. There is no redundant or wasted text.

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 simple one-parameter lookup with full schema coverage and safety annotations, the description provides the essential context and the key sibling handoff. It stops short of describing the return shape, which matters slightly because no output schema exists.

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 query parameter is already documented with examples. The description reinforces that it accepts a word or fragment and shows example terms, but adds no syntax or matching semantics beyond what the schema provides.

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

Purpose5/5

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

The description uses a specific verb ('Look up') and resource ('official NFZ benefit names') with examples of the categories returned (clinics, wards, tests, procedures). It also distinguishes its output from the sibling find_care by telling the agent to use the exact name as find_care.benefit.

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

Usage Guidelines4/5

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

It clearly states the usage context: find an official benefit name matching a word, then pass the exact name to find_care.benefit. This routes the agent well, but it does not explicitly cover when to avoid this tool or mention data_sources as an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_careShortest NFZ waiting times near a placeA
Read-only
Inspect

Where a specialist, diagnostic test or treatment paid by NFZ is available soonest near a place in Poland. Returns clinics and hospitals with NFZ's forecast waiting time, people in the queue, address, phone, distance, accessibility and whether children are seen. service: everyday words (okulista, kardiolog, rezonans, zaćma, rehabilitacja…) or an exact NFZ benefit name from find_benefits. place: town, address or 'lat,lon'.

NameRequiredDescriptionDefault
maxNoHow many places to list (default 10)
sortNo'wait' (default) = shortest waiting time first, 'distance' = nearest first
placeYesTown, address or 'lat,lon' in Poland
urgentNoUrgent case (referral marked 'pilne'); default false = stable case
benefitNoExact NFZ benefit name (from find_benefits / 'Inne pasujące świadczenia') – overrides service matching
serviceYesWhat is needed, e.g. 'okulista', 'ortopeda', 'rezonans magnetyczny', 'endoprotezoplastyka stawu biodrowego'
childrenNoPatient is a child – searches paediatric clinics
hospitalNoHospital ward instead of an outpatient clinic
radius_kmNoSearch radius in km (default 30, widened automatically if few results)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint, so the description carries the rest: it discloses the Poland-only scope, that results are NFZ forecast waits with queue counts, and that an exact benefit name overrides service matching. It does not mention result volume limits beyond 'max' or any latency/rate considerations, but the substantive behavioral context is present.

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?

Front-loaded with the outcome (soonest available NFZ care near a place), followed by the returned fields and then the two required parameters. Dense but each clause carries information; the returned-field enumeration is slightly list-like but justified given there is no output schema.

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 9-parameter, open-world search tool with no output schema, the description supplies the return shape and the required-parameter semantics, which is the main gap it needs to fill. Minor omissions remain (ordering interplay between sort and radius widening is left to the schema, no mention of empty-result behavior).

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 every one of the 9 parameters is already documented in the schema, setting the baseline at 3. The description adds only the semantic that 'service' accepts colloquial terms (okulista, zaćma, rezonans) or an exact NFZ benefit name sourced from find_benefits, and that 'place' accepts lat,lon — both already largely implied by the schema.

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

Purpose5/5

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

States a specific verb and resource: finds where NFZ-paid specialist care, diagnostics or treatment is available soonest near a place in Poland. It also names what comes back (clinics/hospitals with forecast wait, queue size, address, phone, distance, accessibility, paediatric availability), which lets an agent distinguish it from find_benefits and data_sources without opening schemas.

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

Usage Guidelines4/5

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

Clear context for use: geo-based search for the shortest NFZ wait, with service given either in everyday words or as an exact benefit name taken from find_benefits. That routes the agent to the sibling tool when a precise benefit name is needed, but there is no explicit 'do not use this for X' exclusion or statement of what find_benefits alone covers.

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. 3 tool updatesv0.1.0
    • First observeddata_sources
    • First observedfind_benefits
    • First observedfind_care

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation4/5

find_care and find_benefits both accept everyday service words like 'rezonans' or 'okulista', which could cause an agent to pick the wrong one on first pass. However, the descriptions make the intended two-step flow explicit (resolve name with find_benefits, then query with find_care.benefit), and data_sources is clearly separate.

Naming Consistency4/5

find_care and find_benefits follow a clean verb_noun pattern, while data_sources is a noun phrase. The deviation is minor and the names remain readable and predictable.

Tool Count4/5

Three tools is lean but well-matched to a narrow domain: one resolver, one search, one provenance/caveats tool. Nothing feels redundant, though data_sources borders on being documentation rather than an operational tool.

Completeness4/5

The core workflow — resolving an NFZ benefit name and finding the soonest available provider with wait times, distance and accessibility — is fully covered. Minor gaps exist, such as no tool for retrieving full details of a single clinic or browsing benefits by category/location without a search term.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables querying the Polish National Health Fund (NFZ) public API for medical waiting lists and service dictionary, allowing AI to compare wait times and find providers.
    3
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables searching and analyzing Polish public procurement tenders from BZP and TED, including filtering, tender details and timelines, offers and contract values, buyer/contractor profiles, CPV code lookup, and regional statistics, with optional AI-summary endpoints.
    12
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to query over 3 million Polish companies from the KRS and CEIDG registries, including financials, board members, shareholders, rankings, and sector statistics, plus public-register enrichments such as procurement awards, EU funding, insolvency records, and stock listings. Users can search, count, filter, and export company data or run read-only SQL through natural-language prompts.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search and retrieve Poland's official public procurement notices from the e-Zamówienia/BZP bulletin without any API key, covering the latest published contract notices as well as filtering by keyword, CPV code, date range, or contracting authority.
    75 npm
    MIT