io.github.cyanheads/sweden-parliament-mcp-server
REMOTE · SWEDEN-PARLIAMENT.CASEYJHAND.COM · 2 COMPONENTS
Search Swedish parliamentary documents, speeches, votes, members, and statutes.
Last scanned (6 hours ago)
Scores higher than 66% of remote servers
Reachable. Last reached 5 Nov 2026.
Category News and Social
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability56
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 1870 tokens (~267/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
- Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +52
- Authorization: unverified → partial ▲ security
- Injection markers: unverified → pass ▲ security
- HSTS header: fail → pass ▲ security
- Transport: fail → pass ▲ security
- Endpoint reachability: not serving MCP → reachable ▲ functional
- Stability: unverified → 0.33 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- 4 Nov 26 −51
- Endpoint reachability: reachable → not serving MCP ▼ security
- Authorization: partial → unverified ▼ security
- Stability: 0.27 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- HSTS header: pass → fail ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- First check of Schema quality: unverified functional
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 26 Oct 26 71
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://sweden-parliament.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 2 Nov 2026 | 31 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 995a30681ab772540e934241ca1d576c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of sweden-parliament.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| sweden-parliament.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://sweden-parliament.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://sweden-parliament.caseyjhand.com/mcp | HTTPS enforced | 301 | https://sweden-parliament.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
riksdag_get_document Read parliamentary document ~266
Read a document status, decisions, linked records and text. Select sections and follow complete continuation calls to read long reports or consolidated SFS statutes. SFS text is consolidated published text, not a point-in-time legal version.
| Name | Type | Req | Description |
|---|---|---|---|
| documentId | string | yes | Document ID from riksdag_search_documents, or unambiguous SFS YYYY:N identifier. |
| htmlLength | integer | – | Explicit source HTML length in code points; defaults start at 8000 and fit the complete response; explicit lengths are honored. |
| htmlOffset | integer | – | Source HTML offset in Unicode code points. |
| revision | string | – | Revision returned by a previous call; rejects changed records. |
| sectionLimit | integer | – | Requested entries per selected array section; applied maximum 100. |
| sectionOffset | integer | – | Offset applied independently to each selected array section. |
| sections | array | – | Select metadata, decisions, reservations, activities, properties, attachments, references, stakeholders, text or source_html. Omit for metadata, complete outline and first text page. |
| textLength | integer | – | Explicit text length in code points; defaults start at 8000 and fit the complete response; explicit lengths are honored. |
| textOffset | integer | – | Text offset in Unicode code points. |
| Name | Type | Req | Description |
|---|---|---|---|
| activities | array | – | Selected process-event page. |
| attachments | array | – | Selected linked-attachment page. |
| decisions | array | – | Selected page of authoritative report points. |
| documentId | string | – | Normalized document identifier. |
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| error | object | – | Present when the call failed. Absent on success. |
| found | boolean | – | Whether the source record exists. |
| guidance | string | – | How to resolve a missing identifier. |
| htmlHasMore | boolean | – | Whether source HTML remains. |
| htmlOffset | number | – | Returned HTML offset in code points. |
| htmlReturnedLength | number | – | Returned HTML code points. |
| htmlTotalLength | number | – | Complete HTML code-point length. |
| metadata | object | – | Source publication metadata and links. |
| nextHtmlCall | object | – | Complete continuation for source HTML. |
| nextTextCall | object | – | Complete continuation for canonical text. |
| notices | array | – | All applicable notices, including an empty list. |
| outline | array | – | Every selectable section and its complete size. |
| properties | array | – | Selected property page. |
| references | array | – | Selected relationship page. |
| reservations | array | – | Selected reservation page. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| revision | string | – | Hash of the complete normalized record. |
| sectionPages | array | – | Independent counts and complete continuation for every selected array. |
| source | string | – | Required attribution to the Swedish Parliament. |
| sourceHtml | string | – | Separately selected original source HTML page. |
| stakeholders | array | – | Selected page of source participants, retaining entries without an IID. |
| text | string | – | Selected canonical text page, unchanged on both surfaces. |
| textAvailable | boolean | – | Whether a published canonical body exists. |
| textHasMore | boolean | – | Whether canonical text remains. |
| textOffset | number | – | Returned text offset in Unicode code points. |
| textRepresentation | string | – | Source SFS text or canonical converted Markdown. |
| textReturnedLength | number | – | Actual returned text code points. |
| textTotalLength | number | – | Complete canonical text length in code points. |
| truncated | boolean | – | At least one selected array section has more entries or a response-fitted page; follow its sectionPages continuation. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
No examples provided.
riksdag_get_member Read parliamentary member ~101
Read one member register entry and assignment history by exact member ID. Assignment dates preserve source precision and do not establish historical sitting status.
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentLimit | integer | – | Requested assignments; applied maximum 100. |
| assignmentOffset | integer | – | Assignment offset in published source order. |
| memberId | string | yes | Numeric memberId from riksdag_search_members, including leading zeros. |
| revision | string | – | Revision returned by the preceding assignment page. |
| Name | Type | Req | Description |
|---|---|---|---|
| assignmentLimit | number | – | Applied assignment limit. |
| assignmentOffset | number | – | Applied assignment offset. |
| assignmentTotal | number | – | Exact total published assignments. |
| assignments | array | – | Published assignments in source order. |
| constituency | string | – | Published constituency label. |
| detailAvailable | boolean | – | Whether a numeric member IID is published for riksdag_get_member. |
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| error | object | – | Present when the call failed. Absent on success. |
| familyName | string | – | Published family name. |
| found | boolean | – | Whether the exact member IID exists. |
| givenName | string | – | Published given name. |
| guidance | string | – | Next step when the member IID is absent. |
| hasMore | boolean | – | Whether assignments remain. |
| memberId | string | – | Numeric register IID, including leading zeros; absent for some historical and European Parliament entries. |
| name | string | – | Published given and family names, when present. |
| nextCall | object | – | Complete next-assignment call. |
| notices | array | – | All applicable notices, including an empty list. |
| party | string | – | Published party code. |
| requestedAssignmentLimit | number | – | Requested assignment limit before clamping and fitting. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| returnedCount | number | – | Assignments returned on this page. |
| revision | string | – | Complete normalized member record revision. |
| serviceClassification | string | – | Source-defined Swedish chamber service; unknown is retained. |
| source | string | – | Required attribution to the Swedish Parliament. |
| sourceRecordId | string | – | Source register UUID, distinct from the member IID. |
| sourceUrl | string | – | Public register source URL. |
| status | string | – | Unmodified source service-status label. |
| truncated | boolean | – | Whether further assignments remain available through nextCall. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
No examples provided.
riksdag_get_votes Read parliamentary main votes ~369
Read authoritative report decisions and party main-vote groups separated by avser, or a member’s session main votes. Report mode requires report or documentId; ballots true with an explicit point adds individual member ballots and independent ballotPage continuation. Member mode requires memberId. Follow complete local continuation calls. Main votes do not include every ballot round; empty rows never prove acclamation.
| Name | Type | Req | Description |
|---|---|---|---|
| ballotRevision | string | – | Returned ballot-page revision for consistent report-ballot continuation. |
| ballots | boolean | – | Report mode only: include individual ballots for an explicit point; default false. |
| documentId | string | – | Report mode: documentId from riksdag_search_documents with documentType bet; alternative to report. |
| limit | integer | – | Member or report-ballot requested rows; default 20, applied maximum 500. |
| memberId | string | – | Required in member mode: numeric memberId from riksdag_search_members, including leading zeros. |
| mode | string | yes | Report decision points or one member’s session main votes. |
| offset | integer | – | Member or explicit report-ballot local row offset; default 0. |
| party | string | – | Member-mode local party filter; report party groups are always complete. |
| point | integer | – | One authoritative report point; omit to traverse all points. |
| pointLimit | integer | – | All-points report page size; default 5, applied maximum 10. |
| pointOffset | integer | – | All-points report local offset; default 0. |
| report | string | – | Report designation or session:designation; report mode only. |
| revision | string | – | Returned complete-candidate or report-catalog revision for consistent continuation. |
| session | string | yes | Required parliamentary session, for example 2024/25. |
| Name | Type | Req | Description |
|---|---|---|---|
| ballotPage | object | – | Independent ballot pagination; report-point counts and revision retain their meanings. |
| candidateCount | integer | – | Complete validated member/session candidate count, optionally narrowed upstream by party, before local filtering. |
| documentId | string | – | Authoritative report document ID. |
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| error | object | – | Present when the call failed. Absent on success. |
| found | boolean | – | Whether the selected report or member-vote selection is available; empty member rows remain a successful selection. |
| guidance | string | – | How to resolve a missing report. |
| hasMore | boolean | – | More whole rows or report points remain. |
| limit | integer | – | Applied member row limit after fitting. |
| memberId | string | – | Normalized member ID, preserving leading zeros. |
| mode | string | – | Applied workflow. |
| nextCall | object | – | Complete continuation advancing by actual returned entries. |
| notices | array | – | All applicable notices, including an empty list. |
| offset | integer | – | Applied member row offset. |
| party | string | – | Applied member-mode party filter. |
| pointLimit | integer | – | Applied report-point limit after measured fitting. |
| pointOffset | integer | – | Applied report-point offset. |
| pointTotalCount | integer | – | Exact complete authoritative report-point catalog count. |
| points | array | – | Whole report points with every party aggregate and complete decision evidence. |
| report | string | – | Normalized report designation. |
| requestedLimit | integer | – | Original requested member row limit. |
| requestedPointLimit | integer | – | Original requested report-point limit. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| returnedCount | integer | – | Actual returned whole rows or points. |
| revision | string | – | Hash of complete normalized candidates or authoritative point catalog. |
| session | string | – | Normalized parliamentary session. |
| source | string | – | Required attribution to the Swedish Parliament. |
| totalCount | integer | – | Exact filtered member-vote total or selected report-point total. |
| truncated | boolean | – | Response fitting shortened the requested local page. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
| votes | array | – | Whole member or explicit report-point main ballots after local pagination. |
No examples provided.
riksdag_list_reference Riksdag List Reference ~115
Look up official document types, committees, parties, constituencies, speech reply filters, sessions, identifier conventions and source coverage. The offline snapshot is dated; follow nextCall to read every entry. Document subtypes remain distinct from parent document-type codes, and the session catalog can lag current sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Requested entries; values above 100 are clamped with a notice. |
| offset | integer | – | Zero-based local entry offset. |
| topic | string | yes | Vocabulary or guidance topic to browse. |
| Name | Type | Req | Description |
|---|---|---|---|
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| entries | array | – | Complete entries on this page, retaining Swedish source labels and distinct subtypes. |
| error | object | – | Present when the call failed. Absent on success. |
| hasMore | boolean | – | Whether further bundled entries remain. |
| limit | integer | – | Applied maximum page length after clamping and whole-entry fitting. |
| nextCall | object | – | Continuation covering every remaining entry. |
| notices | array | – | All applicable notices, including an empty list. |
| offset | integer | – | Applied zero-based local offset. |
| referenceCatalogTimestamp | string | – | Original catalog generation timestamp without an inferred timezone. |
| referenceSourceUrl | string | – | Official source URL for this topic. |
| referenceVerifiedAt | string | – | Snapshot verification date. |
| requestedLimit | integer | – | Caller-requested page length before clamping. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| returnedCount | integer | – | Actual entries on this page. |
| source | string | – | Required attribution to the Swedish Parliament. |
| topic | string | – | Selected reference topic. |
| totalCount | integer | – | Exact number of bundled entries for this topic. |
| truncated | boolean | – | Whether response fitting shortened this page. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
No examples provided.
riksdag_search_documents Search parliamentary documents ~285
Search Swedish parliamentary documents and consolidated SFS statutes by words, document type, session, committee, party, member IID or dates. Choose relevance or descending date ordering and follow complete continuation calls. Read document status and text with riksdag_get_document.
| Name | Type | Req | Description |
|---|---|---|---|
| committee | string | – | Committee code or exact reference label. |
| dateFrom | string | – | Inclusive earliest ISO calendar date, YYYY-MM-DD. |
| dateTo | string | – | Inclusive latest ISO calendar date, YYYY-MM-DD. |
| documentType | string | – | Document type code or exact reference label, including sfs. |
| memberId | string | – | Numeric member IID from riksdag_search_members; leading zeros are preserved. |
| offset | integer | – | In-page row offset; follow nextCall without changing the remote page size. |
| page | integer | – | Remote page number, starting at 1. |
| pageSize | integer | – | Requested remote page size; maximum applied size 50. |
| party | string | – | Party code or exact reference label. |
| query | string | – | Source full-text query; narrow slow searches with session or type. |
| revision | string | – | Remote-page revision from continuation; rejects changed pages. |
| session | string | – | Parliamentary session; omission searches all available sessions. |
| sort | string | – | Source ordering; relevance for nonblank queries and descending date otherwise. |
| Name | Type | Req | Description |
|---|---|---|---|
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| error | object | – | Present when the call failed. Absent on success. |
| hasMore | boolean | – | Whether local rows or another remote page remain. |
| items | array | – | Complete rows selected from the fetched remote page. |
| nextCall | object | – | Complete next-page call with unchanged filters and page size. |
| notices | array | – | All applicable notices, including an empty list. |
| offset | number | – | Applied in-page row offset. |
| page | number | – | Applied remote page. |
| pageSize | number | – | Applied remote page size. |
| remoteReturnedCount | number | – | Complete fetched remote-page row count. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| returnedCount | number | – | Actual rows returned. |
| revision | string | – | Hash of the complete normalized remote page. |
| source | string | – | Required attribution to the Swedish Parliament. |
| totalCount | number | – | Authoritative source hit count, when published. |
| truncated | boolean | – | Whether response fitting shortened this local page. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
No examples provided.
riksdag_search_members Search parliamentary members ~189
Find members and ministers by name, party, constituency and service status. Defaults to the service register; register all includes earlier source records through a larger cold request that may time out. Use numeric memberId with riksdag_get_member for assignment history.
| Name | Type | Req | Description |
|---|---|---|---|
| constituency | string | – | Exact constituency reference label or code, applied locally. |
| limit | integer | – | Requested rows; applied maximum 100. |
| nameContains | string | – | Strict all-token local name filter, ignoring case and diacritics. |
| offset | integer | – | Local row offset. |
| party | string | – | Party code or exact reference label. |
| register | string | – | Register scope; all includes historical records and can require a large cold request that reaches the normal timeout. |
| revision | string | – | Revision returned by a preceding page. |
| sitting | string | – | Source service classification; all retains unknown status. |
| Name | Type | Req | Description |
|---|---|---|---|
| candidateCount | number | – | Actual returned candidate records in the selected register scope. |
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| error | object | – | Present when the call failed. Absent on success. |
| hasMore | boolean | – | Whether filtered rows remain. |
| items | array | – | Filtered member-register rows. |
| limit | number | – | Applied row limit. |
| nextCall | object | – | Complete next-page call. |
| notices | array | – | All applicable notices, including an empty list. |
| offset | number | – | Applied local offset. |
| requestedLimit | number | – | Requested row limit before clamping and fitting. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| returnedCount | number | – | Rows in this page. |
| revision | string | – | Complete candidate-set revision. |
| source | string | – | Required attribution to the Swedish Parliament. |
| sourceReportedCount | number | – | Source-reported register hits; may differ from actual returned candidates in all scope. |
| totalCount | number | – | Exact count after local filtering. |
| truncated | boolean | – | Whether response fitting shortened the selected page. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
No examples provided.
riksdag_search_speeches Search and read parliamentary speeches ~365
Search speeches within a required parliamentary session, optionally by member, party, reply exclusion and heading tokens. Heading matching searches debate headings only, never body text. Search hydrates one text page by default; use get mode with an item speechId to read all remaining text and retain the returned revision for continuation.
| Name | Type | Req | Description |
|---|---|---|---|
| headingContains | string | – | Search only: all-token local heading and subheading filter, ignoring case and diacritics; never body search. |
| limit | integer | – | Search only: requested rows, default 5 and applied maximum 20. |
| memberId | string | – | Search only: numeric memberId from riksdag_search_members, retaining leading zeros. |
| mode | string | – | Search by default; get reads one retrieval speechId. |
| offset | integer | – | Search only: local row offset, default 0. |
| party | string | – | Search only: official party code or exact reference label. |
| revision | string | – | Search candidate revision or get textRevision copied from the preceding page. |
| session | string | – | Required in search mode; parliamentary session such as 2024/25. |
| speechId | string | – | Required in get mode: retrieval ID copied from a search item, never the source UUID. |
| speechType | string | – | Search only: all by default; speech excludes replies. |
| textCount | integer | – | Search only: maximum speeches to request text for, default 1 and applied maximum 5; 0 returns metadata. |
| textLength | integer | – | Get only: requested Unicode code points; defaults start at 8000 and fit the complete response; explicit lengths are honored. |
| textOffset | integer | – | Get only: Unicode code-point offset, default 0. |
| Name | Type | Req | Description |
|---|---|---|---|
| candidateCount | number | – | Complete validated upstream candidate count. |
| effectiveQuery | string | – | Deterministic normalized input, applied defaults and local filters. |
| error | object | – | Present when the call failed. Absent on success. |
| found | boolean | – | Get mode: whether the retrieval ID exists. |
| guidance | string | – | Recovery guidance for an expected detail miss. |
| hasMore | boolean | – | Whether filtered speech rows remain. |
| item | object | – | Get mode: exact speech metadata and text page. |
| items | array | – | Search mode: local speech page after heading filtering. |
| limit | number | – | Applied search page size after clamp and response fitting. |
| mode | string | – | Applied search or detail mode. |
| nextCall | object | – | Complete next local search-page call. |
| notices | array | – | All applicable notices, including an empty list. |
| offset | number | – | Applied local row offset. |
| requestedLimit | number | – | Original requested search page size. |
| retrievedAt | string | – | Source fetch time, retained unchanged on cache hits. |
| returnedCount | number | – | Speech rows returned on this page. |
| revision | string | – | Search candidate-set revision or complete get detail revision. |
| source | string | – | Required attribution to the Swedish Parliament. |
| speechId | string | – | Get mode: requested retrieval ID. |
| textCount | number | – | Applied maximum speeches selected for text retrieval. |
| totalCount | number | – | Exact local heading-filtered match count. |
| truncated | boolean | – | Whether response fitting shortened the local row page. |
| upstreamQuery | string | – | Upstream query echo; not proof that a filter was applied. |
| upstreamWarnings | array | – | Warnings supplied by the source. |
No examples provided.
How do I install the io.github.cyanheads/sweden-parliament-mcp-server server?
io.github.cyanheads/sweden-parliament-mcp-server is a hosted endpoint at https://sweden-parliament.caseyjhand.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · sweden-parliament.caseyjhand.com
claude mcp add --transport http cyanheads-sweden-parliament-mcp-server 'https://sweden-parliament.caseyjhand.com/mcp'
What is the io.github.cyanheads/sweden-parliament-mcp-server server?
io.github.cyanheads/sweden-parliament-mcp-server is listed in the public MCP registry as io.github.cyanheads/sweden-parliament-mcp-server. Search Swedish parliamentary documents, speeches, votes, members, and statutes. This page covers its hosted endpoint (https://sweden-parliament.caseyjhand.com/mcp).
Is the io.github.cyanheads/sweden-parliament-mcp-server server safe to use?
io.github.cyanheads/sweden-parliament-mcp-server scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.cyanheads/sweden-parliament-mcp-server server expose?
io.github.cyanheads/sweden-parliament-mcp-server exposes 7 tools: riksdag_list_reference, riksdag_search_documents, riksdag_get_document, riksdag_search_members, riksdag_get_member, and 2 more. Their descriptions and schemas cost roughly 1,690 tokens of context every time the server is loaded.
Does the io.github.cyanheads/sweden-parliament-mcp-server server require authentication?
No. We connected to io.github.cyanheads/sweden-parliament-mcp-server without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the io.github.cyanheads/sweden-parliament-mcp-server server still maintained?
io.github.cyanheads/sweden-parliament-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.