protogrid

Search / dk.politikdata/mcp

Politikdata.dk MCP

R0· no sign-in

Danish parliamentary cases, votes, politicians, parties, elections, and comparison tools.

v0.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality77good
Trust75of 100
Uptime, 30 days95%
Latency p50708 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "politikdata": {
      "type": "http",
      "url": "https://mcp.politikdata.dk/mcp"
    }
  }
}
claude mcp add --transport http politikdata https://mcp.politikdata.dk/mcp
[mcp_servers.politikdata]
url = "https://mcp.politikdata.dk/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "politikdata": {
      "type": "remote",
      "url": "https://mcp.politikdata.dk/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "politikdata": {
      "type": "http",
      "url": "https://mcp.politikdata.dk/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=politikdata&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnBvbGl0aWtkYXRhLmRrL21jcCJ9"
}
{
  "servers": {
    "politikdata": {
      "type": "http",
      "url": "https://mcp.politikdata.dk/mcp"
    }
  }
}
{
  "mcpServers": {
    "politikdata": {
      "httpUrl": "https://mcp.politikdata.dk/mcp"
    }
  }
}
extensions:
  "politikdata":
    enabled: true
    name: "politikdata"
    type: streamable_http
    uri: "https://mcp.politikdata.dk/mcp"
    timeout: 300

Quality 77 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations28 of 28 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_legal_document (idempotentHint); get_case (idempotentHint); search_verdicts (idempotentHint); …
  • warn
    tools.token_costabout 8,331 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes6 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

28 tools, about 8,331 tokens to load them all · tool set 3b3333ffe523 · tools last changed 2026-10-07 · checked 2026-10-19 10:20 UTC

Tool changes

  • search_verdictsadded

    Search judgments and decisions from Domsdatabasen, including their text. Use get_verdict for citation findings, outcomes and paged text.

  • search_legal_documentsadded

    Search legislation from Retsinformation, including legal text. Use get_legal_document for metadata and paged text. Historical versions can be included explicitly.

  • searchchangeddescription
    before

    Universal Deep Research-compatible search across Politikdata.dk questions and their answers, cases, vote casts, people, and parties. Use fetch with the returned id to retrieve a readable citation source.

    after · 87% of words in common

    Universal Deep Research-compatible search across Politikdata.dk questions and answers, cases, vote casts, people, parties, legislation and verdicts. Use fetch with a returned id to retrieve a readable citation source.

  • get_vote_castchangeddescription
    before

    Get compact details for one Danish parliamentary afstemning/vote cast, including paginated party vote breakdown. This does not include the full roll-call list of individual politician votes; use get_vote_cast_votes for that.

    after · 59% of words in common

    Get compact details for one Danish parliamentary afstemning/vote cast, related legislation and verdict IDs with reference_lookup tool instructions, and paginated party vote breakdown. Use get_vote_cast_votes for the full roll-call list of individual politician votes.

  • get_verdictadded

    Read a verdict with legal citation evidence, related resource IDs and reference_lookup tool instructions, outcomes and bounded text. Named-law mentions are textual findings, not confirmed historical law versions.

  • get_legal_documentadded

    Read legislation metadata, related resource IDs with reference_lookup tool instructions, version history and a bounded text slice. Continue with text_offset=next_offset.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 75 / 100

no-repository
provenance55
liveness98
freshness65
hygiene80

+dns-namespace +website +reachable +uptime-95% ~updated-91d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.politikdata.dk/mcp streamable-httpnoneyes95%708 ms2025-11-252026-10-19

Tools (28)

compareread-onlyCompare two Danish politicians/persons, two political parties, or one person against one party majority vote. Pass free-text names in left and right; when a name is ambiguous, retry with a specific input like person:123 or party:6 from the returned candidates. Leave result_filter as all for overall agreement; use only_agreement/only_disagreement only to inspect matching result rows. Comparable votes only include For, Imod, and Hverken for eller imod; Fravær/absence and undetermined party majority votes are excluded.
fetchread-onlyUniversal Deep Research-compatible fetch tool. Takes an id returned by search and returns a readable JSON document with id, title, text, url, and metadata.
get_caseread-onlyGet compact details for one Danish parliamentary case, including paginated associated document metadata and file IDs for optional extracted document text retrieval.
get_document_textread-onlyReturn a bounded slice of extracted text for a document file. Supports head, tail, and range pagination; source_url always points to the official PDF.
get_electionread-onlyInspect one public Danish parliamentary or municipal election by ID or slug. Returns election metadata, public result status, national turnout, vote totals and party vote shares, update timestamps, calculated but not officially verified parliamentary mandate counts, and the previous comparable election when available. Use list_elections to discover valid IDs and slugs, and the election-parties vocabulary resource to interpret list letters and abbreviations.
get_election_candidatesread-onlyInspect candidate names, votes, and vote shares for one FV or KV election and geographic scope. Year is required. Party and candidate text filters can be combined. Candidate names accept IDs, slugs, exact names, or partial names. With one uniquely resolved candidate, breakdown_by can rank their regions, municipalities, or polling areas. Historical geographic candidate rows prove recorded results in the scope, not a complete authoritative ballot roster.
get_election_historyread-onlyTrack turnout, vote totals, party or candidate performance, bloc shares, bloc lead, or calculated FV mandates across elections. from_year and to_year are optional and inclusive; omitted bounds mean all available history. Geography filters select the same named/code scope in each election. breakdown_by election returns a time series; region, constituency, or municipality ranks that dimension across the period using weighted vote totals rather than averaging percentages. Calculated mandates are not officially verified.
get_election_votesread-onlyInspect vote totals, turnout, party/list vote shares, bloc winner and lead for one FV or KV election. Year is required. With no geography it returns national data; region, constituency, nomination district, municipality, and polling area arguments drill into applicable scopes. Optional party filtering accepts names, abbreviations, list letters, and list IDs. National FV seats are calculated by Politikdata and explicitly not officially verified mandate counts.
get_legal_documentread-onlyRead legislation metadata, related resource IDs with reference_lookup tool instructions, version history and a bounded text slice. Continue with text_offset=next_offset.
get_partyread-onlyGet compact details for one Danish political party, including the manually registered party leader, profile statistics, national FV/KV vote-share history, latest parliamentary election result, validity dates, and public URLs. Any parliamentary mandate count marked calculated is not officially verified. Use compare with party:ID when comparing this party against a person or another party.
get_personread-onlyGet compact details for one Danish politician/person, including public biography summary, roles, party memberships, parliamentary vote statistics, election candidacies, and personal election votes. Use compare with person:ID when comparing this person against another person or a party majority vote.
get_questionread-onlyRead a question with inline answers, actors, original files and provenance. Page answers with answer_offset; read full text with text_offset. Use answer_id to pin any related answer. Answers have no independent detail resource.
get_question_historyread-onlyRead the non-searchable parliamentary timeline for a question, including source provenance, corrections and observation dates. Page with offset and limit.
get_verdictread-onlyRead a verdict with legal citation evidence, related resource IDs and reference_lookup tool instructions, outcomes and bounded text. Named-law mentions are textual findings, not confirmed historical law versions.
get_vote_castread-onlyGet compact details for one Danish parliamentary afstemning/vote cast, related legislation and verdict IDs with reference_lookup tool instructions, and paginated party vote breakdown. Use get_vote_cast_votes for the full roll-call list of individual politician votes.
get_vote_cast_votesread-onlyGet the full voting breakdown for one Danish parliamentary afstemning/vote cast, including both party-level votes and individual politician roll-call votes.
list_electionsread-onlyList public Danish parliamentary and municipal elections that have result data or are enabled for live coverage. Returns IDs and slugs for get_election, plus current default/live markers and public URLs.
resolve_personread-onlyResolve politicians by name only. Use this when an MCP client needs person IDs before calling person-specific tools.
searchread-onlyUniversal Deep Research-compatible search across Politikdata.dk questions and answers, cases, vote casts, people, parties, legislation and verdicts. Use fetch with a returned id to retrieve a readable citation source.
search_casesread-onlySearch Danish parliamentary cases/documents by text, date range, type, category, and topic. Category filters should usually be omitted for initial searches and used only for refinement.
search_keywordsread-onlySearch parliamentary topic keywords by text. Results are ordered by associated document count so frequently used keywords are suggested first.
search_legal_documentsread-onlySearch legislation from Retsinformation, including legal text. Use get_legal_document for metadata and paged text. Historical versions can be included explicitly.
search_party_votesread-onlySearch how a Danish political party voted in Folketinget afstemninger/stemmer. Use party IDs from the parties vocabulary resource. Category filters should usually be omitted for initial searches and used only for refinement.
search_personsread-onlyResolve or search politicians by name, optionally limited by parliamentary period.
search_person_votesread-onlySearch how a Danish politician/person voted in Folketinget afstemninger/stemmer. Use resolve_person first when only a name is known. Category filters should usually be omitted for initial searches and used only for refinement.
search_questionsread-onlySearch all Danish parliamentary questions including text in their answers. Results and facets count distinct questions; answers appear inline. Use get_question to read all answers.
search_verdictsread-onlySearch judgments and decisions from Domsdatabasen, including their text. Use get_verdict for citation findings, outcomes and paged text.
search_vote_castsread-onlySearch Danish parliamentary afstemninger/stemmer, meaning aggregate vote results for a case step. This does not search individual person or party votes. Category filters should usually be omitted for initial searches and used only for refinement.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "dk.politikdata/mcp",
  "title": "Politikdata.dk MCP",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.politikdata.dk/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "websiteUrl": "https://mcp.politikdata.dk/",
  "description": "Danish parliamentary cases, votes, politicians, parties, elections, and comparison tools."
}