MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Code & DevOps

NeoDemos

Source-anchored search and civic intelligence for Dutch municipal council records.

Checks passed
11 / 22

3 failed · 8 not measured

Median response
133 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
7

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
222

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 133 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name NeoDemos (alpha) (Public).

  • Pass
    Lists tools

    tools/list returned 7 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 133 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 133 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    1 of 48 parameters have a description (2%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Not measured
    Website matches publisher

    This namespace is not a reverse domain, so the website comparison does not apply.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Fail
    Repo owner matches

    The GitHub repository owner does not match the namespace login.

  • Pass
    Recently updated

    Updated 2026-08-11T08:46:33.961524Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using NeoDemos

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http neodemos https://mcp.neodemos.nl/public/mcp

Capabilities

Tools 7

adviseer_raadsinstrument

Adviseert welk raadsinstrument past bij wat het raadslid wil bereiken en weegt daarbij expliciet de doorlooptijd mee: schriftelijke vragen zijn het traagste instrument (~30 dagen) en vaak niet de juiste keuze bij een actueel onderwerp. Pure kennisbank zonder retrieval of database. Gebruik deze tool wanneer: - Het raadslid iets wil bereiken (informatie, college ter verantwoording roepen, een uitspraak of besluit, nieuw beleid) en de vraag is welk instrument daarvoor past. - De vraag is of schriftelijke vragen, mondelinge vragen of een interpellatie beter past bij de urgentie. - Een schriftelijke-vragen- of actua-template nodig is die de structuur en kwaliteitscriteria volgt (in lijn met het reglement van orde). - De vraag is wat een instrument oplevert (uitkomsttype, college-verplichting, uitvoeringsplicht). Gebruik deze tool NIET wanneer: - De vraag inhoudelijk over een dossier gaat; de tool kent geen dossiers. - Je een bestaande motie of amendement wilt terugvinden. Retourneert: markdown met het aanbevolen instrument en alternatieven, inclusief: - doel, snelheid, binding, wettelijke basis, wanneer-wel/niet - uitkomsttype (raadsbesluit, college_handeling, antwoord_college, debat, onderzoek) - college_verplichting: wat het college verplicht is te doen na gebruik - uitvoeringsplicht: ja/nee (juridisch vs. politiek afdwingbaar) - typische_doorlooptijd_weken: numeriek, gegrond in het RvO - afdoeningsproces: pad naar afsluiting - een bijpassende RvO-template (bij vraag-instrumenten) - disclaimer dat exacte termijnen en quora per lokaal RvO verschillen.

Discovered
beoordeel_tekst

Deterministische review van concept-teksten van een raadslid of fractiemedewerker. Geen LLM, geen database. `soort` bepaalt de modus: - `vragen`: scherpt concept schriftelijke of mondelinge vragen aan; signaleert suggestieve, sturende, meervoudige, gesloten ja/nee- en ongefundeerde vragen en vage kwantoren, met een 'scherper'-suggestie. - `notitie` / `commissienotitie` / `fractienotitie`: sanity-review (maximaal 10 opmerkingen): ontbrekend voor/tegen-eindoordeel, strategische opstelling, bronnen zonder paginanummer, ontbrekende samenvatting, vragen of bolletjes en suggestieve vragen, gegroepeerd op ernst (hoog/midden/laag). - `spreektekst`: rubriek met cijfer (1-10), deelscores, verbeterpunten en duur-vs-spreektijd (opening, standpunt, onderbouwing, weerlegging, oproep, lengte ~130 wpm). - RvO-format check: `motie` | `motie_vreemd` | `amendement` | `schriftelijke_vragen` | `mondelinge_vragen` | `initiatiefvoorstel` | `interpellatieverzoek`: valideert structuur en RvO-regels (ontbrekend dictum, geen raadsvoorstel-ref bij amendement, gesloten vragen bij schriftelijke vragen, etc.). Voor een concept waarvan het raadslid wil weten wat scherper kan. De tool doorzoekt het corpus niet. Retourneert: markdown met concrete verbeterpunten passend bij `soort`, gegroepeerd op ernst.

Discovered
formatteer_bronvermelding

Formatteert een bronvermelding met paginanummer en, indien bekend, alinea, bijv. '(Begroting 2025, 12-10-2024, p. 41, alinea 3)'. Met `spreker` en `quote` levert de tool de volledige citaat-attributie in huisstijl: 'Volgens {spreker} ({partij}): _"..."_ (bron, p. ..)'. Ontbrekende velden worden weggelaten. Geen database, geen netwerk. Paginanummers vereisen paginametadata in het bronfragment; die is bij sommige bronnen aanwezig en bij andere niet. Deze tool formatteert alleen en controleert de bron niet. Voor het vermelden van een quote of bron met paginanummer of alinea. Retourneert: de bronvermelding of citaat-string (markdown).

Discovered
genereer_fractienotitie

Stelt de fractienotitie samen: een agenda-overzicht voor de komende ~2 weken op de portefeuille van de gebruiker, met bolletjes (🟢 positief / 🟠 spannend / 🟡 aandacht / ⚪ procedureel) en per agendapunt een detailblok waarvan de diepgang relatief is aan de gebruiker: diepgaand als het onderwerp in de portefeuille valt, beknopt binnen de commissie, bronnen als de gebruiker het debat zelf aanvroeg, vlucht daarbuiten; procedurele punten worden overgeslagen. Invoer: `meeting_ids` (vergadering-ID's) en `gebruiker` (naam, partij, `covered_topics`, `followed_committees`). De tool haalt de gestructureerde vergadering en agenda zelf op. Een onbekend ID, een vergadering zonder agenda of een vergadering buiten de horizon geeft een expliciete validatiefout, nooit een plausibel lege notitie. De tool verstuurt geen e-mail. Voor een fractienotitie of voorbereiding van de komende vergaderingen. Retourneert: markdown met bolletjes-legenda, agenda-overzicht en per vergadering een detailblok op maat.

Discovered
genereer_raadsstuk

Genereert een volledig opgemaakt, RvO-conform concept voor één van de zeven raadsstuktypen. Geen database, geen netwerk: puur structurele kennis. Gebruik deze tool wanneer: - Het raadslid een stuk wil indienen en een correct gestructureerd concept nodig heeft. - Het raadsinstrument vaststaat en het stuk in het juiste format met RvO-verwijzingen moet worden gezet. - Een concept al bestaat maar opnieuw in correct format moet worden gezet. Gebruik deze tool NIET wanneer: - Het juiste instrument nog niet vaststaat; de tool adviseert niet. - Je een bestaand concept op inhoud of format wilt beoordelen; de tool maakt een skelet en beoordeelt niet. `doc_type`: 'motie', 'motie_vreemd', 'amendement', 'schriftelijke_vragen', 'mondelinge_vragen', 'initiatiefvoorstel', 'interpellatieverzoek'. `velden` zijn optioneel; ontbrekende velden worden invul-placeholders [zoals dit], zodat het concept altijd een compleet, geldig skelet is. `gemeente` bepaalt welk lokaal RvO-overlay (artikelnummers, termijnen, indieningsroute) wordt gebruikt. Default 'rotterdam'. Zonder overlay valt de tool terug op het canonieke basisformat met disclaimer. Retourneert: markdown-concept in de juiste RvO-structuur, met RvO-artikelverwijzing en disclaimer.

Discovered
get_neodemos_context

Retourneert een primer met de beschikbare gemeenten, document-types, de huidige zittende wethouders van Rotterdam (uit `raadslid_rollen`), de coalitiegeschiedenis per college-periode, bekende beperkingen, de dekking van het archief, aanbevolen toolvolgordes per vraagpatroon en de actuele datum (`today`, per call berekend). Gecachet op serverniveau als de database bereikbaar is. Voor vragen naar de actuele rol- en coalitiesamenstelling, de samenstelling op een historische stemdatum (`coalition_history`), en voor de referentiedatum bij 'vandaag', 'recent' of 'vorige week'. Retourneert: markdown met secties voor gemeenten, document-types, raadssamenstelling, college-historie, beperkingen en toolvolgordes.

Discovered
verzamel_context

Bundelt server-side meerdere achtergrondbronnen voor een onderwerp in één antwoord. Alleen de via parameters gevraagde bronnen worden opgehaald (opt-in). Beschikbare bronnen: - **CBS-achtergrond** (publieke StatLine open data): `cbs_beleidsgebied` (bv. 'wonen', 'inkomen', 'criminaliteit') geeft exacte cijfers uit de gecureerde nationale-contextlaag (cache-first) voor `cbs_gemeente` (default GM0599). `cbs_zoekterm` / `cbs_tabel_id` (met optioneel `cbs_perioden`, `cbs_extra_filters`, `cbs_top`) zoeken ad hoc live in StatLine. Aggregerende Iv3-tabellen (84413NED rekeningen, 83641NED begrotingen) staan op grootteklasse-niveau, niet per gemeente; `cbs_extra_filters` (bv. {"RegioS": "LD03"}) en een hogere `cbs_top` (default 100) geven daar doorsneden uit. Netwerk-call. - **CBS afgeleide cijfers**: `cbs_metric` (bv. 'woningvoorraad_per_1000_inw') geeft een berekend cijfer (per-1.000, Δ t.o.v. vorig jaar, verhouding) met bronherkomst; optioneel `cbs_compare_regions` (tussen regio's) of `cbs_compare_periodes` (over de tijd), precies één van beide, met vergelijkbaarheidswaarborg, of `cbs_rollup_region` (bv. 'NL01') om op te rollen van leden naar ouder-niveau met dekkingsvlag. - **CBS cube-engine** (vrije slice-and-dice voor vragen buiten de vaste metrics): `cube_describe` (tabel-id of onderwerp) geeft de maten met hun aggregation_type, toegestane ops en dimensieleden; `cube_query` (een {table_id|topic, measures, filters, op, region, + max één vergelijkings-as}-dict) compileert deterministisch, weigert illegale ops ('je kunt geen gemiddelde middelen') en onthoudt zich bij een onbekend lid of niet-vergelijkbare as. - **CBS Iv3 per-gemeente financiële data** (gemeentelijke aanleveringen bij CBS): `iv3_kerncijfers_gemeenten` leest `fin_iv3_fact` in de eigen database, met beschikbare gemeenten en verslagjaren vanaf 2017. Retourneert totale lasten, overhead% (taakveld 0.4 ÷ totale lasten excl. 0.10 en 0.11, Iv3-afgeleid) en overhead & uitvoering €/inwoner per gemeente, gesorteerd op laagste overhead%. Optioneel `iv3_jaar` en `iv3_verslagsoort` ('jaarrekening' / 'begroting'). `iv3_taakvelden` geeft een per-taakveld uitsplitsing (bv. ['6.72','6.71'] voor jeugd + WMO; leeg = alle taakvelden). BBV-codes (selectie): 0.4=Overhead, 1.2=OOV, 2.1=Verkeer, 4.3=Onderwijs, 6.1=Samenkracht, 6.3=Inkomen, 6.71=WMO 18+, 6.72=Jeugdhulp 18-, 7.3=Afval, 7.4=Milieu, 8.3=Wonen. - **RIVM gezondheidsdata**: `rivm_gezondheid` (bv. 'levensverwachting', 'gezonde levensverwachting') geeft exacte RIVM-cijfers per gemeente uit de gecureerde contextlaag. Bron: RIVM Gezondheidsmonitor (GGD'en, CBS, RIVM), CC-BY 4.0, tabel 50108NED. Optioneel `cbs_gemeente` als regio-filter (default GM0599 Rotterdam). - **Raadsinstrument-advies**: `instrument_doel` ('informatie', 'controle', 'agenderen', 'besluit_wijzigen', 'nieuw_beleid', 'onderzoek') geeft welk instrument past, met doorlooptijd-afweging en RvO-template. Voor het staven van een onderwerp met maatschappelijke cijfers en de keuze van een raadsinstrument in één call. De tool haalt geen notulen of moties op. Beperkingen van de bronnen: CBS StatLine heeft geen jeugd-lasten en geen andere Iv3-lasten per individuele gemeente per taakveld (alleen grootteklasse-niveau) en geen levensverwachting of andere gezondheidsdata per gemeente; die laatste komt uit tabel 50108NED via `rivm_gezondheid`. Levert `cbs_beleidsgebied` niets op, dan staat de data niet in de gecureerde laag. Retourneert: markdown met een sectie per gevraagde bron.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected133 ms7