NeoDemos

io.github.NeoDemosHQ由 GitHub 帳號 NeoDemosHQ 發布v0.3.41更新於 Oct 24, 2026

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

已驗證Streamable HTTP可網頁執行效率與工作流知識與記憶

概覽

AI 產生的概覽

NeoDemos 為助理提供面向荷蘭市議會工作的有據可查工具:起草議會文件、審閱文本並規範引用來源。

可以做什麼
  • 取得結構化入門資訊:可用市鎮、文件類型、現任市議員、聯合執政歷史與建議工具順序
  • 就目標適合哪種議會工具提出建議,並權衡辦理時程
  • 依固定標準審閱議員或黨團人員的草稿文本
  • 一次呼叫彙整某議題的多方背景資料
  • 為七類議會文件之一產生格式完整的草稿
  • 依頁碼與段落格式化來源引用,並為發言者引語標註出處
適用情境
適合荷蘭市鎮議員及黨團人員準備書面或口頭質詢、動議等議會文件、檢查草稿並統一引用格式時使用。
執行需求
遠端 MCP 端點;未宣告任何套件、環境變數或請求標頭。清單未宣告身分驗證,但工具涉及黨團專屬脈絡與會議資料。
安裝前請注意
工具會產生議會文件與黨團筆記草稿,並從外部來源彙整資料,送出前需人工審閱。黨團與會議脈絡可能涉及非公開政治資料,請確認傳送給遠端服務的內容。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 NeoDemos,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.NeoDemosHQ%2Fneodemos/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "neodemos": {
      "type": "http",
      "url": "https://mcp.neodemos.nl/public/mcp"
    }
  }
}

工具

7

get_neodemos_context

NeoDemos-context

Retourneert een structured primer met de beschikbare gemeenten, document-types, de huidige zittende wethouders van Rotterdam (uit `raadslid_rollen`), de coalition-history per college-periode, known limitations, en recommended tool sequences voor veelvoorkomende vraagpatronen. Cheap to call (<50ms). Cached op server-niveau als de DB bereikbaar is. Gebruik deze tool wanneer: - Je een nieuwe sessie start — dit geeft je de ground-truth voor rol/tenure/coalition in plaats van dat je uit trainingsdata moet gokken. - Je een actuele referentiedatum nodig hebt voor 'vandaag', 'recent', 'vorige week' of vergelijkbare temporele termen — het `today` veld wordt per call berekend. - De vraag gaat over een historische stemming — check `coalition_history` voor de compositie op dát moment (GroenLinks/PvdA waren in 2018 coalitiepartij, niet oppositie). - Je niet zeker weet welke tool sequence past — zie `recommended_tool_sequences`. Gebruik deze tool NIET wanneer: - De vraag al duidelijk in één retrieval tool past en je de context al kent. - Je al in dezelfde sessie de context hebt opgehaald (het verandert niet binnen één sessie). Retourneert: markdown met secties voor gemeenten, document-types, raadssamenstelling, college-history, limitations, en recommended tool-sequences.

無需輸入參數。

adviseer_raadsinstrument

Adviseer raadsinstrument

Adviseert welk raadsinstrument past bij wat het raadslid wil bereiken, en weegt EXPLICIET de doorlooptijd mee — schriftelijke vragen zijn het traagste instrument (~30 dagen) en zijn vaak niet de juiste keuze bij een actueel onderwerp. Pure kennisbank: geen retrieval, geen DB-call, <10ms. Gebruik deze tool wanneer: - Het raadslid iets wil bereiken (informatie, college ter verantwoording roepen, een uitspraak/besluit, nieuw beleid) en de vraag is WELK instrument daarvoor past. - Je op het punt staat 'stel schriftelijke vragen' te adviseren — check eerst hier of een sneller instrument (mondelinge vragen, interpellatie) beter past bij de urgentie. - Je een schriftelijke-vragen- of actua-template nodig hebt die de structuur en kwaliteitscriteria volgt (in lijn met het reglement van orde). - Je wilt weten WAT een instrument oplevert (uitkomsttype, college-verplichting, uitvoeringsplicht) zodat je het raadslid kunt uitleggen welke actie het college verplicht is te ondernemen na gebruik van het instrument. Gebruik deze tool NIET wanneer: - De vraag inhoudelijk is over een dossier → `zoek_raadshistorie` / `zoek_moties`. - Je een bestaande motie/amendement wilt terugvinden → `zoek_moties`. Retourneert: markdown met het aanbevolen instrument + 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/quora per lokaal RvO verschillen en geverifieerd moeten worden.

輸入參數doel必填urgentieonderwerpop_agenda

beoordeel_tekst

Beoordeel tekst

Eén deterministische review-tool voor concept-teksten van een raadslid/fractiemedewerker. Geen LLM, geen DB, <10ms. Kies de modus via `soort`: - `vragen` — scherpt concept schriftelijke/mondelinge vragen aan: flagt suggestief/sturend, meervoudig, gesloten ja/nee, vage kwantoren, en ongefundeerde vragen + 'scherper'-suggestie. - `notitie` / `commissienotitie` / `fractienotitie` — sanity-review (maximaal 10 opmerkingen): ontbrekend voor/tegen-eindoordeel, strategische opstelling, bronnen zonder paginanummer, ontbrekende samenvatting/vragen/bolletjes en suggestieve vragen — gegroepeerd op ernst (hoog/midden/laag). - `spreektekst` — rubriek met cijfer (1-10) + deelscores + verbeterpunten + 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 + RvO-regels (ontbrekend dictum, geen raadsvoorstel-ref bij amendement, gesloten vragen bij schriftelijke vragen, etc.). Gebruik dit na `genereer_raadsstuk` of op een handgeschreven concept. Gebruik wanneer: het raadslid een concept heeft geschreven en wil weten wat scherper kan. NIET om corpus te doorzoeken → `zoek_raadshistorie`. Retourneert: markdown met concrete verbeterpunten passend bij `soort`, gegroepeerd op ernst. **Positie in de drafting-keten:** roep aan ná `genereer_raadsstuk`; verwerk de bevindingen in het concept en sla daarna op met `sla_fractie_artifact_op(artifact_type=<doc_type>)`.

輸入參數soorttekst必填spreektijd_sec

verzamel_context

Verzamel context

Bundelt server-side meerdere achtergrondbronnen voor een onderwerp in één antwoord, zodat je niet meerdere losse tools hoeft te ketenen. Alleen de via parameters gevraagde bronnen worden opgehaald (opt-in), zodat de call snel blijft. Beschikbare bronnen: - **CBS-achtergrond** (publieke StatLine open data, geen credentials): geef `cbs_beleidsgebied` (bv. 'wonen', 'inkomen', 'criminaliteit') voor EXACTE, geciteerde cijfers uit de gecureerde nationale-contextlaag (cache-first, WS85/ADR-0037; nooit vector-embedded) voor `cbs_gemeente` (default GM0599). Of geef `cbs_zoekterm` / `cbs_tabel_id` (+ optioneel `cbs_perioden` + `cbs_extra_filters` + `cbs_top`) voor ad-hoc live StatLine-zoek. Voor aggregerende Iv3-tabellen (84413NED rekeningen, 83641NED begrotingen — grootteklasse-niveau, NIET per gemeente) gebruik `cbs_extra_filters` (bv. {"RegioS": "LD03"}) en verhoog `cbs_top` (default 100). LET OP: CBS StatLine biedt jeugd-lasten UITSLUITEND op grootteklasse-niveau, NIET per gemeente; gebruik `iv3_kerncijfers_gemeenten` voor per-gemeente totale lasten (niet taakveld-specifiek). Netwerk-call. - **CBS afgeleide cijfers** (metrics-laag, WS85b): geef `cbs_metric` (bv. 'woningvoorraad_per_1000_inw') voor een BEREKEND cijfer (per-1.000 / Δ-t.o.v.-vorig-jaar / verhouding) mét 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 (anti-Simpson, dekkingsvlag). - **CBS cube-engine** (WS90/ADR-0054, vrije slice-and-dice): voor een vraag die NIET op een vaste `cbs_metric` past, geef eerst `cube_describe` (tabel-id/onderwerp) → krijg de maten met hun aggregation_type + toegestane ops + dimensieleden; geef daarna `cube_query` (een {table_id|topic, measures, filters, op, region, + max één vergelijkings-as}-dict). De engine compileert deterministisch en WEIGERT illegale ops ('je kunt geen gemiddelde midde

輸入參數cbs_topiv3_jaaronderwerp必填cbs_metriccube_querycbs_gemeentecbs_periodencbs_tabel_idcbs_zoektermcube_describeiv3_taakveldeninstrument_doel另有 10 個

genereer_fractienotitie

Genereer fractienotitie

**Bij commissievoorbereiding: lees eerst bestaande fractienotities.** Gebruik `mijn_fractie_context`, bepaal de exacte vergadering met `lijst_vergaderingen`, en roep `haal_fractiewerkruimte_op(meeting_id=...)` aan (expliciete `fractie_id` bij meerdere fracties). Lees relevante huidige notities via `haal_fractie_artifact_op`; bouw daarop voort en onderzoek alleen ontbrekende of gewijzigde informatie. Controleer bronstatus en actualiteit en behoud bronverwijzingen; een notitie is geen primaire bron. Geen leesrechten betekent niet dat er geen notities bestaan: vraag zo nodig toestemming voor werkruimte lezen. Volg een expliciet verzoek om onafhankelijke analyse. Stelt de fractienotitie samen (Erik's hero-feature, WS23-core): 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 USER-RELATIEF is (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). De host-LLM levert uitsluitend `meeting_ids` uit `lijst_vergaderingen`; de tool haalt de gestructureerde vergadering en agenda zelf op. Zo hoeft de host geen markdown terug naar een ongedocumenteerd object te vertalen. Een onbekend ID, een vergadering zonder agenda of een vergadering buiten de horizon geeft een expliciete validatiefout, nooit een plausibel lege notitie. Automatische e-mailbezorging + de vrijdag/maandag-cron zijn aparte infrastructuur. **Positie in de keten:** roep eerst `mijn_fractie_context` aan en neem daaruit de gebruikersnaam en fractienaam over. Vul `covered_topics` en `followed_committees` met bevestigde waarden of lege lijsten; verzin ze niet. Gebruik daarna `lijst_vergaderingen(na_datum=<vandaag>, voor_datum=<horizon>, sortering='oudste_eerst')` en geef de gekozen `vergadering_id`-waarden door als `meeting_ids`.

輸入參數vandaaggebruiker必填meeting_ids必填horizon_dagen

formatteer_bronvermelding

Formatteer bronvermelding

Formatteert een bronvermelding zoals Erik die wil: mét paginanummer (en, indien bekend, alinea) — bijv. '(Begroting 2025, 12-10-2024, p. 41, alinea 3)'. Met `spreker` + `quote` levert de tool de volledige citaat-attributie in huisstijl: 'Volgens {spreker} ({partij}): _"..."_ (bron, p. ..)'. Velden die ontbreken worden netjes weggelaten (nooit 'p. None'). Geen DB, geen netwerk. Let op: paginanummers vereisen dat de paginametadata in het bronfragment aanwezig is (aanwezig bij sommige bronnen, afwezig bij andere — de tool degradeert netjes). Zin-/alinea-precisie op corpusniveau is aparte ontologie (WS30); deze tool is de formatteerlaag. Gebruik wanneer: je een quote of bron netjes wilt vermelden met paginanummer/alinea. Retourneert: de bronvermelding/citaat-string (markdown).

輸入參數bron必填datumquotealineapaginapartijsprekerdocument_id

genereer_raadsstuk

Genereer raadsstuk

Genereert een volledig opgemaakt, RvO-conformant concept voor één van de zeven raadsstuk­typen. Geen DB, geen netwerk, <10ms — puur structurele kennis. Gebruik deze tool wanneer: - Het raadslid een stuk wil indienen en een correct gestructureerd concept nodig heeft. - Je `adviseer_raadsinstrument` hebt gebruikt (welk instrument) en nu het daadwerkelijke stuk wilt renderen in het juiste format met RvO-verwijzingen. - Een concept al bestaat maar opnieuw in correct format moet worden gezet. Gebruik deze tool NIET wanneer: - Je het juiste instrument nog moet kiezen → gebruik eerst `adviseer_raadsinstrument`. - Je een bestaand concept wilt beoordelen op inhoud → `beoordeel_tekst`. - Je een format-validatie wil uitvoeren op een bestaand concept → `beoordeel_tekst` met `soort` gelijk aan het doc_type. ``doc_type`` keuzes: 'motie', 'motie_vreemd', 'amendement', 'schriftelijke_vragen', 'mondelinge_vragen', 'initiatiefvoorstel', 'interpellatieverzoek'. ``velden`` zijn optioneel — ontbrekende velden worden vervangen door invul-placeholders [zoals dit] zodat het concept altijd een compleet, geldig skelet is. ``gemeente`` bepaalt welk lokaal RvO-overlay (artikel­nummers, termijnen, indienings­route) wordt gebruikt. Default 'rotterdam'. Degradeert netjes naar het canonieke basis­format + disclaimer als er geen overlay beschikbaar is. Retourneert: markdown-concept in de juiste RvO-structuur, met RvO-artikel­citaat en disclaimer. **Volgende stap in de drafting-keten:** valideer het gegenereerde concept met `beoordeel_tekst(tekst=<concept>, soort=<doc_type>)` voordat je het presenteert of opslaat; sla daarna op met `sla_fractie_artifact_op(artifact_type=<doc_type>)`.

輸入參數veldendoc_type必填gemeente

版本歷史

1
  1. v0.3.41最新Sep 16, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。