Data source: Riksdagen (data.riksdagen.se)
https://context.gnist.ai/mcp/riksdagen/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (7)
search_documentsSearch Swedish parliamentary documents — bills, motions, committee reports, and more.
Query the Riksdagen (Swedish Parliament) document archive with full-text search
and structured filters. The archive contains 600K+ documents dating back decades.
Returns:
Dict with 'count', 'total', 'page', 'pages', and 'documents' list.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | any | optional | Free-text search term |
doc_type | any | optional | Document type code: 'prop' (proposition/bill), 'mot' (motion), 'bet' (committee report), 'skr' (government communication), 'sou' (inquiry report) |
committee | any | optional | Committee code: 'FiU' (Finance), 'AU' (Labour), 'JuU' (Justice), 'SoU' (Social), 'UU' (Foreign Affairs), etc. |
session | any | optional | Parliament session, e.g. '2025/26'. Format: YYYY/YY |
page | integer | optional | Page number (default 1) (default: 1) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_documents",
"arguments": {}
}
}get_documentGet full details for a specific Swedish parliamentary document.
Retrieves the complete document including metadata and (where available) HTML content.
Returns:
Document detail dict, or error if not found.
| Parameter | Type | Required | Description |
|---|---|---|---|
dok_id | string | required | Document ID from search results (e.g. 'HD01FiU1') |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_document",
"arguments": {
"dok_id": "example"
}
}
}list_votesList parliamentary votes in the Swedish Riksdagen.
Each record represents one member's vote on one ballot point.
Filter by session and/or document to narrow results.
Returns:
Dict with 'count' and 'votes' list containing individual member votes.
| Parameter | Type | Required | Description |
|---|---|---|---|
session | any | optional | Parliament session, e.g. '2025/26'. Format: YYYY/YY |
doc_id | any | optional | Filter votes for a specific document designation (e.g. 'FiU1') |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "list_votes",
"arguments": {}
}
}get_vote_detailGet full voting detail with individual member votes for a specific ballot.
Returns the document context and every member's vote (Ja/Nej/Avstår/Frånvarande).
Returns:
Dict with document info and 'votes' list, or error if not found.
| Parameter | Type | Required | Description |
|---|---|---|---|
votering_id | string | required | Vote ID from vote list (e.g. '2025/26:FiU1:1') |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_vote_detail",
"arguments": {
"votering_id": "example"
}
}
}search_membersSearch members of the Swedish Parliament (Riksdagen).
Returns current members by default. Use status='samtliga' to include
all historical members (2700+ total).
Returns:
Dict with 'count', 'total', and 'members' list with party, constituency, assignments.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | any | optional | Member status: omit for current members, 'samtliga' for all historical members |
party | any | optional | Party code: 'S' (Social Democrats), 'M' (Moderates), 'SD' (Sweden Democrats), 'C' (Centre), 'V' (Left), 'KD' (Christian Democrats), 'L' (Liberals), 'MP' (Green) |
limit | integer | optional | Max results to return (default 50) (default: 50) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_members",
"arguments": {}
}
}get_memberGet full details for a specific member of the Swedish Parliament.
Returns personal information, party affiliation, constituency,
and complete assignment history (committee roles, etc.).
Returns:
Member detail dict, or error if not found.
| Parameter | Type | Required | Description |
|---|---|---|---|
person_id | string | required | Member source ID from search results |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_member",
"arguments": {
"person_id": "example"
}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/riksdagen/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_document", "arguments": {"dok_id": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/riksdagen/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_document",
"arguments": {
"dok_id": "example"
}
}
},
)
print(resp.json())