Search Swedish parliamentary documents, speeches, votes, members, and statutes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Document ID from riksdag_search_documents, or unambiguous SFS YYYY:N identifier.
Revision returned by a previous call; rejects changed records.
Select metadata, decisions, reservations, activities, properties, attachments, references, stakeholders, text or source_html. Omit for metadata, complete outline and first text page.
Explicit source HTML length in code points; defaults start at 8000 and fit the complete response; explicit lengths are honored.
Source HTML offset in Unicode code points.
Explicit text length in code points; defaults start at 8000 and fit the complete response; explicit lengths are honored.
Text offset in Unicode code points.
Requested entries per selected array section; applied maximum 100.
Offset applied independently to each selected array section.
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.
| Argument | Type | Description |
|---|---|---|
| revision | string | Revision returned by a previous call; rejects changed records. |
| sections | array | Select metadata, decisions, reservations, activities, properties, attachments, references, stakeholders, text or source_html. Omit for metadata, complete outline and first text page. |
| documentId* | string | 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. |
| 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. |
| sectionLimit | integer | Requested entries per selected array section; applied maximum 100. |
| sectionOffset | integer | Offset applied independently to each selected array section. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"documentId"
],
"properties": {
"revision": {
"type": "string",
"description": "Revision returned by a previous call; rejects changed records."
},
"sections": {
"type": "array",
"items": {
"type": "string"
},
"description": "Select metadata, decisions, reservations, activities, properties, attachments, references, stakeholders, text or source_html. Omit for metadata, complete outline and first text page."
},
"documentId": {
"type": "string",
"minLength": 1,
"description": "Document ID from riksdag_search_documents, or unambiguous SFS YYYY:N identifier."
},
"htmlLength": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Explicit source HTML length in code points; defaults start at 8000 and fit the complete response; explicit lengths are honored."
},
"htmlOffset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Source HTML offset in Unicode code points."
},
"textLength": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Explicit text length in code points; defaults start at 8000 and fit the complete response; explicit lengths are honored."
},
"textOffset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Text offset in Unicode code points."
},
"sectionLimit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Requested entries per selected array section; applied maximum 100."
},
"sectionOffset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Offset applied independently to each selected array section."
}
},
"additionalProperties": false
}Read one member register entry and assignment history by exact member ID. Assignment dates preserve source precision and do not establish historical sitting status.
| Argument | Type | Description |
|---|---|---|
| memberId* | string | Numeric memberId from riksdag_search_members, including leading zeros. |
| revision | string | Revision returned by the preceding assignment page. |
| assignmentLimit | integer | Requested assignments; applied maximum 100. |
| assignmentOffset | integer | Assignment offset in published source order. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"memberId"
],
"properties": {
"memberId": {
"type": "string",
"minLength": 1,
"description": "Numeric memberId from riksdag_search_members, including leading zeros."
},
"revision": {
"type": "string",
"description": "Revision returned by the preceding assignment page."
},
"assignmentLimit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Requested assignments; applied maximum 100."
},
"assignmentOffset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Assignment offset in published source order."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| mode* | string | Report decision points or one member’s session main votes. |
| limit | integer | Member or report-ballot requested rows; default 20, applied maximum 500. |
| party | string | Member-mode local party filter; report party groups are always complete. |
| point | integer | One authoritative report point; omit to traverse all points. |
| offset | integer | Member or explicit report-ballot local row offset; default 0. |
| report | string | Report designation or session:designation; report mode only. |
| ballots | boolean | Report mode only: include individual ballots for an explicit point; default false. |
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Requested entries; values above 100 are clamped with a notice. |
| topic* | string | Vocabulary or guidance topic to browse. |
| offset | integer | Zero-based local entry offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Requested entries; values above 100 are clamped with a notice."
},
"topic": {
"enum": [
"document_types",
"committees",
"parties",
"constituencies",
"speech_types",
"sessions",
"identifiers",
"coverage"
],
"type": "string",
"description": "Vocabulary or guidance topic to browse."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Zero-based local entry offset."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Remote page number, starting at 1. |
| sort | string | Source ordering; relevance for nonblank queries and descending date otherwise. |
| party | string | Party code or exact reference label. |
| query | string | Source full-text query; narrow slow searches with session or type. |
| dateTo | string | Inclusive latest ISO calendar date, YYYY-MM-DD. |
| offset | integer | In-page row offset; follow nextCall without changing the remote page size. |
| session | string | Parliamentary session; omission searches all available sessions. |
| dateFrom | string | Inclusive earliest ISO calendar date, YYYY-MM-DD. |
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Requested rows; applied maximum 100. |
| party | string | Party code or exact reference label. |
| offset | integer | Local row offset. |
| sitting | string | Source service classification; all retains unknown status. |
| 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. |
| constituency | string | Exact constituency reference label or code, applied locally. |
| nameContains | string | Strict all-token local name filter, ignoring case and diacritics. |
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.
| Argument | Type | Description |
|---|---|---|
| mode | string | Search by default; get reads one retrieval speechId. |
| limit | integer | Search only: requested rows, default 5 and applied maximum 20. |
| party | string | Search only: official party code or exact reference label. |
| offset | integer | Search only: local row offset, default 0. |
| session | string | Required in search mode; parliamentary session such as 2024/25. |
| memberId | string | Search only: numeric memberId from riksdag_search_members, retaining leading zeros. |
| revision | string | Search candidate revision or get textRevision copied from the preceding page. |
| speechId | string |
| session* |
| string |
| Required parliamentary session, for example 2024/25. |
| memberId | string | Required in member mode: numeric memberId from riksdag_search_members, including leading zeros. |
| revision | string | Returned complete-candidate or report-catalog revision for consistent continuation. |
| documentId | string | Report mode: documentId from riksdag_search_documents with documentType bet; alternative to report. |
| pointLimit | integer | All-points report page size; default 5, applied maximum 10. |
| pointOffset | integer | All-points report local offset; default 0. |
| ballotRevision | string | Returned ballot-page revision for consistent report-ballot continuation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mode",
"session"
],
"properties": {
"mode": {
"enum": [
"report",
"member"
],
"type": "string",
"description": "Report decision points or one member’s session main votes."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Member or report-ballot requested rows; default 20, applied maximum 500.",
"exclusiveMinimum": 0
},
"party": {
"type": "string",
"description": "Member-mode local party filter; report party groups are always complete."
},
"point": {
"type": "integer",
"maximum": 9007199254740991,
"description": "One authoritative report point; omit to traverse all points.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Member or explicit report-ballot local row offset; default 0."
},
"report": {
"type": "string",
"description": "Report designation or session:designation; report mode only."
},
"ballots": {
"type": "boolean",
"description": "Report mode only: include individual ballots for an explicit point; default false."
},
"session": {
"type": "string",
"minLength": 1,
"description": "Required parliamentary session, for example 2024/25."
},
"memberId": {
"type": "string",
"description": "Required in member mode: numeric memberId from riksdag_search_members, including leading zeros."
},
"revision": {
"type": "string",
"description": "Returned complete-candidate or report-catalog revision for consistent continuation."
},
"documentId": {
"type": "string",
"description": "Report mode: documentId from riksdag_search_documents with documentType bet; alternative to report."
},
"pointLimit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "All-points report page size; default 5, applied maximum 10.",
"exclusiveMinimum": 0
},
"pointOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "All-points report local offset; default 0."
},
"ballotRevision": {
"type": "string",
"description": "Returned ballot-page revision for consistent report-ballot continuation."
}
},
"additionalProperties": false
}| memberId |
| string |
| Numeric member IID from riksdag_search_members; leading zeros are preserved. |
| pageSize | integer | Requested remote page size; maximum applied size 50. |
| revision | string | Remote-page revision from continuation; rejects changed pages. |
| committee | string | Committee code or exact reference label. |
| documentType | string | Document type code or exact reference label, including sfs. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Remote page number, starting at 1."
},
"sort": {
"enum": [
"relevance",
"date"
],
"type": "string",
"description": "Source ordering; relevance for nonblank queries and descending date otherwise."
},
"party": {
"type": "string",
"description": "Party code or exact reference label."
},
"query": {
"type": "string",
"description": "Source full-text query; narrow slow searches with session or type."
},
"dateTo": {
"type": "string",
"description": "Inclusive latest ISO calendar date, YYYY-MM-DD."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "In-page row offset; follow nextCall without changing the remote page size."
},
"session": {
"type": "string",
"description": "Parliamentary session; omission searches all available sessions."
},
"dateFrom": {
"type": "string",
"description": "Inclusive earliest ISO calendar date, YYYY-MM-DD."
},
"memberId": {
"type": "string",
"description": "Numeric member IID from riksdag_search_members; leading zeros are preserved."
},
"pageSize": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Requested remote page size; maximum applied size 50."
},
"revision": {
"type": "string",
"description": "Remote-page revision from continuation; rejects changed pages."
},
"committee": {
"type": "string",
"description": "Committee code or exact reference label."
},
"documentType": {
"type": "string",
"description": "Document type code or exact reference label, including sfs."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Requested rows; applied maximum 100."
},
"party": {
"type": "string",
"description": "Party code or exact reference label."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Local row offset."
},
"sitting": {
"enum": [
"all",
"serving",
"not_serving"
],
"type": "string",
"default": "all",
"description": "Source service classification; all retains unknown status."
},
"register": {
"enum": [
"service",
"all"
],
"type": "string",
"default": "service",
"description": "Register scope; all includes historical records and can require a large cold request that reaches the normal timeout."
},
"revision": {
"type": "string",
"description": "Revision returned by a preceding page."
},
"constituency": {
"type": "string",
"description": "Exact constituency reference label or code, applied locally."
},
"nameContains": {
"type": "string",
"description": "Strict all-token local name filter, ignoring case and diacritics."
}
},
"additionalProperties": false
}| Required in get mode: retrieval ID copied from a search item, never the source UUID. |
| textCount | integer | Search only: maximum speeches to request text for, default 1 and applied maximum 5; 0 returns metadata. |
| speechType | string | Search only: all by default; speech excludes replies. |
| 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. |
| headingContains | string | Search only: all-token local heading and subheading filter, ignoring case and diacritics; never body search. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mode": {
"enum": [
"search",
"get"
],
"type": "string",
"description": "Search by default; get reads one retrieval speechId."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Search only: requested rows, default 5 and applied maximum 20."
},
"party": {
"type": "string",
"description": "Search only: official party code or exact reference label."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Search only: local row offset, default 0."
},
"session": {
"type": "string",
"description": "Required in search mode; parliamentary session such as 2024/25."
},
"memberId": {
"type": "string",
"description": "Search only: numeric memberId from riksdag_search_members, retaining leading zeros."
},
"revision": {
"type": "string",
"description": "Search candidate revision or get textRevision copied from the preceding page."
},
"speechId": {
"type": "string",
"description": "Required in get mode: retrieval ID copied from a search item, never the source UUID."
},
"textCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Search only: maximum speeches to request text for, default 1 and applied maximum 5; 0 returns metadata."
},
"speechType": {
"enum": [
"all",
"speech"
],
"type": "string",
"description": "Search only: all by default; speech excludes replies."
},
"textLength": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Get only: requested Unicode code points; defaults start at 8000 and fit the complete response; explicit lengths are honored."
},
"textOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Get only: Unicode code-point offset, default 0."
},
"headingContains": {
"type": "string",
"description": "Search only: all-token local heading and subheading filter, ignoring case and diacritics; never body search."
}
},
"additionalProperties": false
}