_ registry / mcp http-sse · checked 2h ago

NeoDemos (alpha) (Public)

https://mcp.neodemos.nl

Registry code: 36904a36ca395a25

api record

Je bent verbonden met NeoDemos (alpha) v0.3.328 via het anonieme adres /public/mcp. Dit adres stopt: de NeoDemos-MCP werkt voortaan alleen na inloggen met je NeoDemos-account. Vertel de gebruiker dat eenmalig: verbind de AI-app met https://mcp.neodemos.nl/mcp en log één keer in via de browser. Beschikbaar voor alle Rotterdam-gerelateerde raadsinformatie (90.000+ documenten, 2002-heden). Gebruik de beschikbare tools om relevante raadsinformatie op te halen. TOOLONTDEKKING: Als de client uitgestelde tools via ToolSearch ondersteunt, laad gericht de startset met `select:get_neodemos_context`.…

endpoint
https://mcp.neodemos.nl/public/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is NeoDemos (alpha) (Public) live?
Yes — it answered the hub's last check (checked 2h ago). It answered 99% of checks over the last 30 days.
Is NeoDemos (alpha) (Public) free to use?
Yes — the hub reached it with no key and no payment.
What tools does NeoDemos (alpha) (Public) have?
7 tools: adviseer_raadsinstrument, verzamel_context, formatteer_bronvermelding, genereer_raadsstuk, genereer_fractienotitie, beoordeel_tekst, get_neodemos_context.
Is NeoDemos (alpha) (Public) safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.3%

90 days 99%· all time 99%

latency
162ms

last good check

priced tools
0

of 7 tools

_ answered our checks, 90 days 402 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • down → live
_ what it is for
used for
  • search rotterdam council documents
  • draft a council motion
  • review council draft text
  • format source citations
takes → gives
text → text, documents
tools
7 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 7 tools
1 open 6 never probed 1 of 7 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_neodemos_context reads open 17h ago

    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.

    mcp-tool

    {
      "type": "object",
      "title": "get_neodemos_contextArguments",
      "properties": {}
    }
    arguments 5 lines
  • adviseer_raadsinstrument reads unknown 13h ago

    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.

    mcp-tool

    {
      "type": "object",
      "title": "adviseer_raadsinstrumentArguments",
      "required": [
        "doel"
      ],
      "properties": {
        "doel": {
          "enum": [
            "agenderen",
            "besluit_wijzigen",
            "controle",
            "informatie",
            "nieuw_beleid",
            "onderzoek"
          ],
          "type": "string",
          "title": "Doel"
        },
        "urgentie": {
          "enum": [
            "spoed",
            "normaal",
            "geen_haast"
          ],
          "type": "string",
          "title": "Urgentie",
          "default": "normaal"
        },
        "onderwerp": {
          "type": "string",
          "title": "Onderwerp",
          "default": null
        },
        "op_agenda": {
          "type": "boolean",
          "title": "Op Agenda",
          "default": null
        }
      }
    }
    arguments 41 lines
  • verzamel_context reads unknown 13h ago

    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.

    mcp-tool

    {
      "type": "object",
      "title": "verzamel_contextArguments",
      "required": [
        "onderwerp"
      ],
      "properties": {
        "cbs_top": {
          "type": "integer",
          "title": "Cbs Top",
          "default": 100
        },
        "iv3_jaar": {
          "type": "integer",
          "title": "Iv3 Jaar",
          "default": null
        },
        "onderwerp": {
          "type": "string",
          "title": "Onderwerp"
        },
        "cbs_metric": {
          "type": "string",
          "title": "Cbs Metric",
          "default": null
        },
        "cube_query": {
          "type": "object",
          "title": "Cube Query",
          "default": null,
          "additionalProperties": true
        },
        "cbs_gemeente": {
          "type": "string",
          "title": "Cbs Gemeente",
          "default": "GM0599"
        },
        "cbs_perioden": {
          "type": "string",
          "title": "Cbs Perioden",
          "default": null
        },
        "cbs_tabel_id": {
          "type": "string",
          "title": "Cbs Tabel Id",
          "default": null
        },
        "cbs_zoekterm": {
          "type": "string",
          "title": "Cbs Zoekterm",
          "default": null
        },
        "cube_describe": {
          "type": "string",
          "title": "Cube Describe",
          "default": null
        },
        "iv3_taakvelden": {
          "type": "array",
          "items": {},
          "title": "Iv3 Taakvelden",
          "default": null
        },
        "instrument_doel": {
          "anyOf": [
            {
              "enum": [
                "agenderen",
                "besluit_wijzigen",
                "controle",
                "informatie",
                "nieuw_beleid",
                "onderzoek"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instrument Doel",
          "default": null
        },
        "rivm_gezondheid": {
          "type": "string",
          "title": "Rivm Gezondheid",
          "default": null
        },
        "iv3_verslagsoort": {
          "type": "string",
          "title": "Iv3 Verslagsoort",
          "default": "jaarrekening"
        },
        "cbs_beleidsgebied": {
          "type": "string",
          "title": "Cbs Beleidsgebied",
          "default": null
        },
        "cbs_extra_filters": {
          "type": "object",
          "title": "Cbs Extra Filters",
          "default": null,
          "additionalProperties": true
        },
        "cbs_rollup_region": {
          "type": "string",
          "title": "Cbs Rollup Region",
          "default": null
        },
        "cbs_compare_regions": {
          "type": "array",
          "items": {},
          "title": "Cbs Compare Regions",
          "default": null
        },
        "instrument_urgentie": {
          "enum": [
            "spoed",
            "normaal",
            "geen_haast"
          ],
          "type": "string",
          "title": "Instrument Urgentie",
          "default": "normaal"
        },
        "cbs_compare_periodes": {
          "type": "array",
          "items": {},
          "title": "Cbs Compare Periodes",
          "default": null
        },
        "instrument_op_agenda": {
          "type": "boolean",
          "title": "Instrument Op Agenda",
          "default": null
        },
        "iv3_kerncijfers_gemeenten": {
          "type": "array",
          "items": {},
          "title": "Iv3 Kerncijfers Gemeenten",
          "default": null
        }
      }
    }
    arguments 144 lines
  • formatteer_bronvermelding reads unknown 17h ago

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

    mcp-tool

    {
      "type": "object",
      "title": "formatteer_bronvermeldingArguments",
      "required": [
        "bron"
      ],
      "properties": {
        "bron": {
          "type": "string",
          "title": "Bron"
        },
        "datum": {
          "type": "string",
          "title": "Datum",
          "default": null
        },
        "quote": {
          "type": "string",
          "title": "Quote",
          "default": null
        },
        "alinea": {
          "type": "integer",
          "title": "Alinea",
          "default": null
        },
        "pagina": {
          "type": "string",
          "title": "Pagina",
          "default": null
        },
        "partij": {
          "type": "string",
          "title": "Partij",
          "default": null
        },
        "spreker": {
          "type": "string",
          "title": "Spreker",
          "default": null
        },
        "document_id": {
          "type": "string",
          "title": "Document Id",
          "default": null
        }
      }
    }
    arguments 48 lines
  • genereer_raadsstuk reads unknown 13h ago

    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.

    mcp-tool

    {
      "type": "object",
      "title": "genereer_raadsstukArguments",
      "required": [
        "doc_type"
      ],
      "properties": {
        "velden": {
          "type": "object",
          "title": "Velden",
          "default": null,
          "additionalProperties": true
        },
        "doc_type": {
          "type": "string",
          "title": "Doc Type"
        },
        "gemeente": {
          "type": "string",
          "title": "Gemeente",
          "default": null
        }
      }
    }
    arguments 24 lines
  • genereer_fractienotitie reads unknown 17h ago

    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.

    mcp-tool

    {
      "type": "object",
      "title": "genereer_fractienotitieArguments",
      "required": [
        "meeting_ids",
        "gebruiker"
      ],
      "properties": {
        "vandaag": {
          "type": "string",
          "title": "Vandaag",
          "default": null
        },
        "gebruiker": {
          "type": "object",
          "required": [
            "naam",
            "partij",
            "covered_topics",
            "followed_committees"
          ],
          "properties": {
            "naam": {
              "type": "string",
              "title": "Naam",
              "minLength": 1
            },
            "partij": {
              "type": "string",
              "title": "Partij",
              "minLength": 1
            },
            "covered_topics": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "title": "Covered Topics"
            },
            "followed_committees": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "title": "Followed Committees"
            }
          },
          "description": "Profiel voor de fractienotitie: naam, partij, gevolgde onderwerpen en commissies.",
          "additionalProperties": false
        },
        "meeting_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "Meeting Ids",
          "maxItems": 25,
          "minItems": 1
        },
        "horizon_dagen": {
          "type": "integer",
          "title": "Horizon Dagen",
          "default": 14
        }
      }
    }
    arguments 66 lines
  • beoordeel_tekst reads unknown 6h ago

    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.

    mcp-tool

    {
      "type": "object",
      "title": "beoordeel_tekstArguments",
      "required": [
        "tekst"
      ],
      "properties": {
        "soort": {
          "type": "string",
          "title": "Soort",
          "default": "vragen"
        },
        "tekst": {
          "type": "string",
          "title": "Tekst"
        },
        "spreektijd_sec": {
          "type": "integer",
          "title": "Spreektijd Sec",
          "default": 90
        }
      }
    }
    arguments 23 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 36904a36ca395a25.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/36904a36ca395a25/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/36904a36ca395a25/badge.svg)](https://brick.blue/agent/36904a36ca395a25?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.