switzerland-parliament-mcp-server
An open-source MCP server that provides tools to search and retrieve data from the Swiss Federal Assembly (Curia Vista). It allows agents to find parliamentary business, read original texts and procedural history, inspect Nationalrat roll calls, and look up members and their declared interests using the public OData service.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://switzerland-parliament.caseyjhand.com/mcpWhat you can do with it
- Search Swiss parliamentary business by title, submitter, type, or status
- Read business metadata, original texts, and status history
- Find Nationalrat roll calls and member voting decisions
- Look up current or former parliamentary members and declared interests
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- switzerland-parliament-mcp-server 0.1.2
- MCP protocol
- 2025-06-18
- Tools
- 7 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"subscribe": true,
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
chparl_search_business — Chparl Search Business
Search Swiss parliamentary business by title substring, published submitter label, type, current status, submission session, inclusive submission dates, or committee role. Use chparl_list_reference to resolve codes and chparl_get_business to read a returned businessId. Follow nextCursor with unchanged filters; newest canonical business IDs appear first. Author searches omit the business total. Committee searches page role candidates and may return short pages without a distinct business total. Metadata labels remain in de, fr, or it without translation fallback.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 10000,
"minimum": 1,
"description": "Page request, default 20; clamped to 100. Committee pages count candidate roles, and byte fitting may return fewer businesses."
},
"query": {
"type": "string",
"description": "One title substring, preserving punctuation and diacritics."
},
"author": {
"type": "string",
"description": "Substring of the published submitter label, not every co-signatory."
},
"cursor": {
"type": "string",
"description": "Opaque nextCursor from a previous call with identical filters; omit to start."
},
"typeId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Business type code from chparl_list_reference topic business_types."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata language: de (default), fr, or it."
},
"statusId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Current status code from chparl_list_reference topic statuses."
},
"sessionId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Submission session ID from chparl_list_reference topic sessions."
},
"committeeId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Committee number from chparl_list_reference topic committees; matches any published committee role."
},
"submittedTo": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Inclusive submission-date upper bound, YYYY-MM-DD."
},
"submittedFrom": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Inclusive submission-date lower bound, YYYY-MM-DD."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"businesses",
"provenance",
"effectiveFilters",
"returnedCount",
"effectiveLimit",
"hasMore"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"incompatible_fields",
"invalid_cursor",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `incompatible_fields`: submittedFrom is after submittedTo. `invalid_cursor`: Cursor is malformed, unsupported, or belongs to different filters. `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"notice": {
"type": "string",
"description": "Combined clamp, short-page, size-fitting, or empty-result guidance."
},
"hasMore": {
"type": "boolean",
"description": "Whether older matching businesses remain."
},
"businesses": {
"type": "array",
"items": {
"type": "object",
"required": [
"businessId",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"title": {
"type": "string",
"description": "Published business title."
},
"typeId": {
"type": "string",
"description": "Published business type code."
},
"statusId": {
"type": "string",
"description": "Current business status code, including unknown source codes."
},
"typeName": {
"type": "string",
"description": "Published type name."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS OData entity URL for this metadata row."
},
"businessId": {
"type": "string",
"description": "Canonical Business.ID as a decimal string."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Current status date with source timezone semantics."
},
"statusText": {
"type": "string",
"description": "Published current status label."
},
"shortNumber": {
"type": "string",
"description": "Published BusinessShortNumber, unchanged."
},
"submittedBy": {
"type": "string",
"description": "Published submitter label; not an exhaustive signatory list."
},
"submissionDate": {
"type": "string",
"description": "Published submission date."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Requested metadata row language; no text translation is implied."
},
"typeAbbreviation": {
"type": "string",
"description": "Published type abbreviation."
},
"submissionCouncilId": {
"type": "string",
"description": "Council code at submission."
},
"submissionSessionId": {
"type": "string",
"description": "Submission session identifier."
},
"submissionCouncilName": {
"type": "string",
"description": "Published submission council name."
}
},
"description": "One parliamentary business, preserving sparse source metadata.",
"additionalProperties": false
},
"description": "Distinct complete business summaries on this page."
},
"nextCursor": {
"type": "string",
"description": "Continue after the smallest delivered business ID using identical filters."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Original-filter business total, available only without author or committee filters."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Distinct businesses actually delivered."
},
"effectiveLimit": {
"type": "integer",
"maximum": 100,
"description": "Effective business or role-candidate limit after clamping.",
"exclusiveMinimum": 0
},
"effectiveFilters": {
"type": "object",
"required": [
"language",
"limit"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Effective role-candidate or business row limit.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"description": "Exact title substring."
},
"author": {
"type": "string",
"description": "Exact submitter-label substring."
},
"cursor": {
"type": "string",
"description": "Validated cursor supplied for this page."
},
"typeId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Business type code."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Metadata language."
},
"statusId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Current status code."
},
"sessionId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Submission session code."
},
"committeeId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Committee role code."
},
"submittedTo": {
"type": "string",
"description": "Inclusive submission-date upper bound."
},
"submittedFrom": {
"type": "string",
"description": "Inclusive submission-date lower bound."
}
},
"description": "Effective business discovery filters and defaults.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}chparl_get_business — Chparl Get Business
Read a Swiss parliamentary business by canonical eight-digit businessId or exact published short number. Choose overview for metadata and available text sizes; texts for original published text, automatically outlined when several fields exceed the disclosure budget; or status_history, bills, related_business, preconsultations, or subjects for independently paged relationships. textFields selects complete original fields only in texts, even when large. Paging applies only to relationships. Use subjects to narrow chparl_search_transcripts; source text and HTML remain unchanged.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"businessId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Relationships only: requested page size, default 20, clamped to 100."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Relationships only: source row offset, default zero; continue with returned nextOffset."
},
"section": {
"enum": [
"overview",
"texts",
"status_history",
"bills",
"related_business",
"preconsultations",
"subjects"
],
"type": "string",
"default": "overview",
"description": "Readable section, default overview."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata and business-text variant: de (default), fr, or it."
},
"businessId": {
"type": "string",
"pattern": "^(?:[1-9]\\d{7}|\\d{2}\\.\\d{3,4})$",
"description": "Canonical eight-digit businessId from chparl_search_business, or an exact published short number such as 99.1234."
},
"textFields": {
"type": "array",
"items": {
"enum": [
"description",
"initialSituation",
"proceedings",
"draftText",
"submittedText",
"reasonText",
"documentationText",
"motionText",
"federalCouncilResponseText",
"federalCouncilProposalText"
],
"type": "string",
"description": "Original field to return complete."
},
"description": "Texts only: named original fields; empty array means unset."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"found",
"section",
"provenance",
"effectiveFilters"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bills": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Published relationship GUID; subjects instead carry subjectId."
},
"date": {
"type": "string",
"description": "Published status date."
},
"title": {
"type": "string",
"description": "Published bill or debate-subject title."
},
"billId": {
"type": "string",
"description": "Linked bill GUID."
},
"newKey": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published NewKey value."
},
"typeId": {
"type": "string",
"description": "Related business type code."
},
"statusId": {
"type": "string",
"description": "Published status code."
},
"typeName": {
"type": "string",
"description": "Related business type name."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published subject order."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS source entity URL for a linked bill."
},
"subjectId": {
"type": "string",
"description": "Exact Int64 debate-subject ID."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number within the business."
},
"billTypeId": {
"type": "string",
"description": "Published bill type code."
},
"businessId": {
"type": "string",
"description": "Canonical business ID for this subject relationship."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Published bill status date."
},
"statusName": {
"type": "string",
"description": "Published historical status name."
},
"statusText": {
"type": "string",
"description": "Published bill status label."
},
"committeeId": {
"type": "string",
"description": "Published committee number."
},
"shortNumber": {
"type": "string",
"description": "Related business published short number."
},
"billTypeName": {
"type": "string",
"description": "Published bill type name."
},
"priorityCode": {
"type": "string",
"description": "Published relationship priority code."
},
"committeeName": {
"type": "string",
"description": "Published committee name."
},
"publishedNotes": {
"type": "string",
"description": "Original published subject notes."
},
"submissionDate": {
"type": "string",
"description": "Published bill submission date."
},
"typeAbbreviation": {
"type": "string",
"description": "Related business type abbreviation."
},
"relatedBusinessId": {
"type": "string",
"description": "Related canonical business ID."
},
"treatmentCategory": {
"type": "string",
"description": "Published treatment category."
},
"preconsultationDate": {
"type": "string",
"description": "Published preconsultation date."
},
"committeeAbbreviation": {
"type": "string",
"description": "Published Abbreviation value."
},
"committeeAbbreviation1": {
"type": "string",
"description": "Published Abbreviation1 value."
},
"committeeAbbreviation2": {
"type": "string",
"description": "Published Abbreviation2 value."
},
"isMotionInSecondCouncil": {
"type": "boolean",
"description": "Published second-council motion flag."
}
},
"description": "One complete procedural relationship row for the selected section.",
"additionalProperties": false
},
"description": "Linked bill page; no enacted-law content is inferred."
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"ambiguous_business_number",
"incompatible_fields",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `ambiguous_business_number`: An exact short number resolves to multiple canonical business IDs. `incompatible_fields`: Text selectors or relationship paging are supplied to another section. `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"found": {
"type": "boolean",
"description": "Whether the requested business metadata row exists."
},
"notice": {
"type": "string",
"description": "Combined clamping, byte-fitting, empty-section, or past-end guidance."
},
"hasMore": {
"type": "boolean",
"description": "Whether selected relationship rows remain; absent for non-collection results."
},
"section": {
"enum": [
"overview",
"texts",
"status_history",
"bills",
"related_business",
"preconsultations",
"subjects"
],
"type": "string",
"description": "Selected section."
},
"business": {
"type": "object",
"required": [
"businessId",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"tags": {
"type": "string",
"description": "Original Tags value."
},
"title": {
"type": "string",
"description": "Published business title."
},
"typeId": {
"type": "string",
"description": "Published business type code."
},
"category": {
"type": "string",
"description": "Published business category."
},
"statusId": {
"type": "string",
"description": "Current business status code, including unknown source codes."
},
"tagNames": {
"type": "string",
"description": "Original TagNames value."
},
"typeName": {
"type": "string",
"description": "Published type name."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS OData entity URL for this metadata row."
},
"businessId": {
"type": "string",
"description": "Canonical Business.ID as a decimal string."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Current status date with source timezone semantics."
},
"statusText": {
"type": "string",
"description": "Published current status label."
},
"shortNumber": {
"type": "string",
"description": "Published BusinessShortNumber, unchanged."
},
"submittedBy": {
"type": "string",
"description": "Published submitter label; not an exhaustive signatory list."
},
"submissionDate": {
"type": "string",
"description": "Published submission date."
},
"firstCouncil1Id": {
"type": "string",
"description": "FirstCouncil1 code from the source."
},
"firstCouncil2Id": {
"type": "string",
"description": "FirstCouncil2 code from the source."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Requested metadata row language; no text translation is implied."
},
"typeAbbreviation": {
"type": "string",
"description": "Published type abbreviation."
},
"firstCouncil1Name": {
"type": "string",
"description": "FirstCouncil1 name from the source."
},
"firstCouncil2Name": {
"type": "string",
"description": "FirstCouncil2 name from the source."
},
"availableTextFields": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"enum": [
"description",
"initialSituation",
"proceedings",
"draftText",
"submittedText",
"reasonText",
"documentationText",
"motionText",
"federalCouncilResponseText",
"federalCouncilProposalText"
],
"type": "string",
"description": "Selectable original text name."
},
"sizeBytes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "UTF-8 bytes; absent means the text is unpublished."
}
},
"description": "Availability of one supported original text field.",
"additionalProperties": false
},
"description": "Every supported text field; present on overview only."
},
"submissionCouncilId": {
"type": "string",
"description": "Council code at submission."
},
"submissionSessionId": {
"type": "string",
"description": "Submission session identifier."
},
"submissionCouncilName": {
"type": "string",
"description": "Published submission council name."
},
"responsibleDepartmentId": {
"type": "string",
"description": "Responsible department code."
},
"federalCouncilProposalId": {
"type": "string",
"description": "Published Federal Council proposal code."
},
"responsibleDepartmentName": {
"type": "string",
"description": "Published department name."
},
"federalCouncilProposalDate": {
"type": "string",
"description": "Published Federal Council proposal date."
},
"responsibleDepartmentAbbreviation": {
"type": "string",
"description": "Published department abbreviation."
}
},
"description": "Business summary on every found result, with extra metadata on overview.",
"additionalProperties": false
},
"guidance": {
"type": "string",
"description": "Discovery guidance when the business is missing."
},
"subjects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Published relationship GUID; subjects instead carry subjectId."
},
"date": {
"type": "string",
"description": "Published status date."
},
"title": {
"type": "string",
"description": "Published bill or debate-subject title."
},
"billId": {
"type": "string",
"description": "Linked bill GUID."
},
"newKey": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published NewKey value."
},
"typeId": {
"type": "string",
"description": "Related business type code."
},
"statusId": {
"type": "string",
"description": "Published status code."
},
"typeName": {
"type": "string",
"description": "Related business type name."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published subject order."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS source entity URL for a linked bill."
},
"subjectId": {
"type": "string",
"description": "Exact Int64 debate-subject ID."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number within the business."
},
"billTypeId": {
"type": "string",
"description": "Published bill type code."
},
"businessId": {
"type": "string",
"description": "Canonical business ID for this subject relationship."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Published bill status date."
},
"statusName": {
"type": "string",
"description": "Published historical status name."
},
"statusText": {
"type": "string",
"description": "Published bill status label."
},
"committeeId": {
"type": "string",
"description": "Published committee number."
},
"shortNumber": {
"type": "string",
"description": "Related business published short number."
},
"billTypeName": {
"type": "string",
"description": "Published bill type name."
},
"priorityCode": {
"type": "string",
"description": "Published relationship priority code."
},
"committeeName": {
"type": "string",
"description": "Published committee name."
},
"publishedNotes": {
"type": "string",
"description": "Original published subject notes."
},
"submissionDate": {
"type": "string",
"description": "Published bill submission date."
},
"typeAbbreviation": {
"type": "string",
"description": "Related business type abbreviation."
},
"relatedBusinessId": {
"type": "string",
"description": "Related canonical business ID."
},
"treatmentCategory": {
"type": "string",
"description": "Published treatment category."
},
"preconsultationDate": {
"type": "string",
"description": "Published preconsultation date."
},
"committeeAbbreviation": {
"type": "string",
"description": "Published Abbreviation value."
},
"committeeAbbreviation1": {
"type": "string",
"description": "Published Abbreviation1 value."
},
"committeeAbbreviation2": {
"type": "string",
"description": "Published Abbreviation2 value."
},
"isMotionInSecondCouncil": {
"type": "boolean",
"description": "Published second-council motion flag."
}
},
"description": "One complete procedural relationship row for the selected section.",
"additionalProperties": false
},
"description": "Debate subjects usable in chparl_search_transcripts."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Original offset plus delivered rows when more remain."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Whole selected relationship count when supplied by the source."
},
"textDocument": {
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"full",
"outline"
],
"type": "string",
"description": "Complete selected fields or an automatic field-size outline."
},
"notice": {
"type": "string",
"description": "How to retrieve complete named fields from an outline."
},
"sections": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"sizeBytes"
],
"properties": {
"name": {
"enum": [
"description",
"initialSituation",
"proceedings",
"draftText",
"submittedText",
"reasonText",
"documentationText",
"motionText",
"federalCouncilResponseText",
"federalCouncilProposalText"
],
"type": "string",
"description": "Populated field selectable with textFields."
},
"sizeBytes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Original field UTF-8 byte length."
}
},
"description": "One populated text field.",
"additionalProperties": false
},
"description": "Populated fields sorted largest first, only on the outline arm."
},
"draftText": {
"type": "string",
"description": "Original DraftText text or HTML."
},
"motionText": {
"type": "string",
"description": "Original MotionText text or HTML."
},
"reasonText": {
"type": "string",
"description": "Original ReasonText text or HTML."
},
"references": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind",
"originalUrl"
],
"properties": {
"url": {
"type": "string",
"description": "Clickable absolute HTTP(S) target when the reference supplies one."
},
"kind": {
"enum": [
"link",
"image"
],
"type": "string",
"description": "HTML link or image reference."
},
"label": {
"type": "string",
"description": "Original image alt attribute, when present."
},
"originalUrl": {
"type": "string",
"description": "Original reference attribute value, before HTML decoding."
}
},
"description": "One reference present in returned original HTML.",
"additionalProperties": false
},
"description": "References extracted only from the original text fields returned in full."
},
"description": {
"type": "string",
"description": "Original Description text or HTML."
},
"proceedings": {
"type": "string",
"description": "Original Proceedings text or HTML."
},
"submittedText": {
"type": "string",
"description": "Original SubmittedText text or HTML."
},
"initialSituation": {
"type": "string",
"description": "Original InitialSituation text or HTML."
},
"documentationText": {
"type": "string",
"description": "Original DocumentationText text or HTML."
},
"unavailableTextFields": {
"type": "array",
"items": {
"enum": [
"description",
"initialSituation",
"proceedings",
"draftText",
"submittedText",
"reasonText",
"documentationText",
"motionText",
"federalCouncilResponseText",
"federalCouncilProposalText"
],
"type": "string",
"description": "Valid requested name without a published value."
},
"description": "Selected fields absent from this metadata row."
},
"federalCouncilProposalText": {
"type": "string",
"description": "Original FederalCouncilProposalText text or HTML."
},
"federalCouncilResponseText": {
"type": "string",
"description": "Original FederalCouncilResponseText text or HTML."
}
},
"description": "Original selected texts or automatic field outline.",
"additionalProperties": false
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Complete relationship rows delivered; absent for overview, texts, or missing business."
},
"statusHistory": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Published relationship GUID; subjects instead carry subjectId."
},
"date": {
"type": "string",
"description": "Published status date."
},
"title": {
"type": "string",
"description": "Published bill or debate-subject title."
},
"billId": {
"type": "string",
"description": "Linked bill GUID."
},
"newKey": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published NewKey value."
},
"typeId": {
"type": "string",
"description": "Related business type code."
},
"statusId": {
"type": "string",
"description": "Published status code."
},
"typeName": {
"type": "string",
"description": "Related business type name."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published subject order."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS source entity URL for a linked bill."
},
"subjectId": {
"type": "string",
"description": "Exact Int64 debate-subject ID."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number within the business."
},
"billTypeId": {
"type": "string",
"description": "Published bill type code."
},
"businessId": {
"type": "string",
"description": "Canonical business ID for this subject relationship."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Published bill status date."
},
"statusName": {
"type": "string",
"description": "Published historical status name."
},
"statusText": {
"type": "string",
"description": "Published bill status label."
},
"committeeId": {
"type": "string",
"description": "Published committee number."
},
"shortNumber": {
"type": "string",
"description": "Related business published short number."
},
"billTypeName": {
"type": "string",
"description": "Published bill type name."
},
"priorityCode": {
"type": "string",
"description": "Published relationship priority code."
},
"committeeName": {
"type": "string",
"description": "Published committee name."
},
"publishedNotes": {
"type": "string",
"description": "Original published subject notes."
},
"submissionDate": {
"type": "string",
"description": "Published bill submission date."
},
"typeAbbreviation": {
"type": "string",
"description": "Related business type abbreviation."
},
"relatedBusinessId": {
"type": "string",
"description": "Related canonical business ID."
},
"treatmentCategory": {
"type": "string",
"description": "Published treatment category."
},
"preconsultationDate": {
"type": "string",
"description": "Published preconsultation date."
},
"committeeAbbreviation": {
"type": "string",
"description": "Published Abbreviation value."
},
"committeeAbbreviation1": {
"type": "string",
"description": "Published Abbreviation1 value."
},
"committeeAbbreviation2": {
"type": "string",
"description": "Published Abbreviation2 value."
},
"isMotionInSecondCouncil": {
"type": "boolean",
"description": "Published second-council motion flag."
}
},
"description": "One complete procedural relationship row for the selected section.",
"additionalProperties": false
},
"description": "Published status history page."
},
"effectiveLimit": {
"type": "integer",
"maximum": 100,
"description": "Effective relationship limit after clamping.",
"exclusiveMinimum": 0
},
"relatedBusiness": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Published relationship GUID; subjects instead carry subjectId."
},
"date": {
"type": "string",
"description": "Published status date."
},
"title": {
"type": "string",
"description": "Published bill or debate-subject title."
},
"billId": {
"type": "string",
"description": "Linked bill GUID."
},
"newKey": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published NewKey value."
},
"typeId": {
"type": "string",
"description": "Related business type code."
},
"statusId": {
"type": "string",
"description": "Published status code."
},
"typeName": {
"type": "string",
"description": "Related business type name."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published subject order."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS source entity URL for a linked bill."
},
"subjectId": {
"type": "string",
"description": "Exact Int64 debate-subject ID."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number within the business."
},
"billTypeId": {
"type": "string",
"description": "Published bill type code."
},
"businessId": {
"type": "string",
"description": "Canonical business ID for this subject relationship."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Published bill status date."
},
"statusName": {
"type": "string",
"description": "Published historical status name."
},
"statusText": {
"type": "string",
"description": "Published bill status label."
},
"committeeId": {
"type": "string",
"description": "Published committee number."
},
"shortNumber": {
"type": "string",
"description": "Related business published short number."
},
"billTypeName": {
"type": "string",
"description": "Published bill type name."
},
"priorityCode": {
"type": "string",
"description": "Published relationship priority code."
},
"committeeName": {
"type": "string",
"description": "Published committee name."
},
"publishedNotes": {
"type": "string",
"description": "Original published subject notes."
},
"submissionDate": {
"type": "string",
"description": "Published bill submission date."
},
"typeAbbreviation": {
"type": "string",
"description": "Related business type abbreviation."
},
"relatedBusinessId": {
"type": "string",
"description": "Related canonical business ID."
},
"treatmentCategory": {
"type": "string",
"description": "Published treatment category."
},
"preconsultationDate": {
"type": "string",
"description": "Published preconsultation date."
},
"committeeAbbreviation": {
"type": "string",
"description": "Published Abbreviation value."
},
"committeeAbbreviation1": {
"type": "string",
"description": "Published Abbreviation1 value."
},
"committeeAbbreviation2": {
"type": "string",
"description": "Published Abbreviation2 value."
},
"isMotionInSecondCouncil": {
"type": "boolean",
"description": "Published second-council motion flag."
}
},
"description": "One complete procedural relationship row for the selected section.",
"additionalProperties": false
},
"description": "Related business page."
},
"effectiveFilters": {
"type": "object",
"required": [
"businessId",
"language",
"section"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Effective row limit, present only for relationships.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting row offset, present only for relationships."
},
"section": {
"enum": [
"overview",
"texts",
"status_history",
"bills",
"related_business",
"preconsultations",
"subjects"
],
"type": "string",
"description": "Selected readable unit."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Requested metadata language."
},
"businessId": {
"type": "string",
"description": "Normalized canonical ID or exact published short number supplied."
},
"textFields": {
"type": "array",
"items": {
"enum": [
"description",
"initialSituation",
"proceedings",
"draftText",
"submittedText",
"reasonText",
"documentationText",
"motionText",
"federalCouncilResponseText",
"federalCouncilProposalText"
],
"type": "string",
"description": "Selected complete original text field."
},
"description": "Explicit text selection; absent means automatic full or outline disclosure."
}
},
"description": "Effective business identifier, section, selectors, and paging defaults.",
"additionalProperties": false
},
"preconsultations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Published relationship GUID; subjects instead carry subjectId."
},
"date": {
"type": "string",
"description": "Published status date."
},
"title": {
"type": "string",
"description": "Published bill or debate-subject title."
},
"billId": {
"type": "string",
"description": "Linked bill GUID."
},
"newKey": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published NewKey value."
},
"typeId": {
"type": "string",
"description": "Related business type code."
},
"statusId": {
"type": "string",
"description": "Published status code."
},
"typeName": {
"type": "string",
"description": "Related business type name."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published subject order."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS source entity URL for a linked bill."
},
"subjectId": {
"type": "string",
"description": "Exact Int64 debate-subject ID."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number within the business."
},
"billTypeId": {
"type": "string",
"description": "Published bill type code."
},
"businessId": {
"type": "string",
"description": "Canonical business ID for this subject relationship."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Published bill status date."
},
"statusName": {
"type": "string",
"description": "Published historical status name."
},
"statusText": {
"type": "string",
"description": "Published bill status label."
},
"committeeId": {
"type": "string",
"description": "Published committee number."
},
"shortNumber": {
"type": "string",
"description": "Related business published short number."
},
"billTypeName": {
"type": "string",
"description": "Published bill type name."
},
"priorityCode": {
"type": "string",
"description": "Published relationship priority code."
},
"committeeName": {
"type": "string",
"description": "Published committee name."
},
"publishedNotes": {
"type": "string",
"description": "Original published subject notes."
},
"submissionDate": {
"type": "string",
"description": "Published bill submission date."
},
"typeAbbreviation": {
"type": "string",
"description": "Related business type abbreviation."
},
"relatedBusinessId": {
"type": "string",
"description": "Related canonical business ID."
},
"treatmentCategory": {
"type": "string",
"description": "Published treatment category."
},
"preconsultationDate": {
"type": "string",
"description": "Published preconsultation date."
},
"committeeAbbreviation": {
"type": "string",
"description": "Published Abbreviation value."
},
"committeeAbbreviation1": {
"type": "string",
"description": "Published Abbreviation1 value."
},
"committeeAbbreviation2": {
"type": "string",
"description": "Published Abbreviation2 value."
},
"isMotionInSecondCouncil": {
"type": "boolean",
"description": "Published second-council motion flag."
}
},
"description": "One complete procedural relationship row for the selected section.",
"additionalProperties": false
},
"description": "Published committee preconsultation page."
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}chparl_get_votes — Chparl Get Votes
Find Nationalrat roll calls with mode votes and businessId, sessionId, or both. Use mode members with voteId for one paged roll call, or personNumber without voteId for member history optionally filtered by businessId and sessionId. Use mode groups with voteId for complete decision counts by parliamentary group. Member roll calls start in the 2003 winter session and exclude Ständerat member votes; an empty result does not prove no vote occurred. Member counts cover only delivered rows; groups mode reads all published member rows before reporting totals. Verbatim decisionTexts accompany code buckets when published. Code meanings include 1 yes, 2 no, 3 abstention, 4 present, 5 did not participate, 6 excused under Art. 57 para. 4, 7 president does not vote, and 8 resigned. Unknown codes and missing decisions are retained. Follow nextOffset with the same mode and filters.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mode": {
"enum": [
"votes",
"members",
"groups"
],
"type": "string",
"default": "votes",
"description": "Workflow: votes (default), members, or complete groups."
},
"limit": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Paged modes only: votes default 10/max 50, members default 50/max 100; higher requests are clamped with notice."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Paged modes only: starting row offset, default zero; continue using returned nextOffset."
},
"voteId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Members or groups only: positive Int32 Vote.ID discovered through votes mode; omit for personNumber history. Cannot combine with businessId or sessionId."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata language: de (default), fr, or it; decision text remains as published."
},
"sessionId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Votes or member history only: positive Int32 Session.ID from chparl_list_reference topic sessions; combine with businessId to narrow discovery."
},
"businessId": {
"type": "string",
"pattern": "^(?:[1-9]\\d{7}|\\d{2}\\.\\d{3,4})$",
"description": "Votes or member history only: canonical eight-digit businessId from chparl_search_business, or a published short number such as 99.1234."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Members only: exact PersonNumber from chparl_search_members, distinct from Person.ID or current group affiliation."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"found",
"mode",
"coverage",
"provenance",
"effectiveFilters"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mode": {
"enum": [
"votes",
"members",
"groups"
],
"type": "string",
"description": "Vote workflow returned."
},
"vote": {
"type": "object",
"required": [
"voteId",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"voteId": {
"type": "string",
"description": "Vote.ID as a decimal string."
},
"endTime": {
"type": "string",
"description": "Published vote end time, retaining the source offset when supplied."
},
"subject": {
"type": "string",
"description": "Original roll-call subject."
},
"billTitle": {
"type": "string",
"description": "Published bill title."
},
"meaningNo": {
"type": "string",
"description": "Original meaning of a no decision."
},
"sessionId": {
"type": "string",
"description": "Published session identifier."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS OData composite-key vote URL."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number."
},
"businessId": {
"type": "string",
"description": "Canonical BusinessNumber when published."
},
"meaningYes": {
"type": "string",
"description": "Original meaning of a yes decision."
},
"sessionName": {
"type": "string",
"description": "Published session name."
},
"businessTitle": {
"type": "string",
"description": "Published business title."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Selected metadata row language; published text is not translated."
},
"legislativePeriod": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published legislative period."
},
"registrationNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published roll-call registration number."
},
"businessShortNumber": {
"type": "string",
"description": "Published business short number."
}
},
"description": "Resolved roll-call metadata in members or groups mode.",
"additionalProperties": false
},
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"incompatible_fields",
"ambiguous_business_number",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `incompatible_fields`: A required mode identifier is missing, identifiers conflict, or a filter or paging field belongs to another mode. `ambiguous_business_number`: A short business number resolves to multiple canonical businesses. `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"found": {
"type": "boolean",
"description": "Whether a supplied business or selected vote exists; unkeyed history/session searches succeed with true even when empty."
},
"votes": {
"type": "array",
"items": {
"type": "object",
"required": [
"voteId",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"voteId": {
"type": "string",
"description": "Vote.ID as a decimal string."
},
"endTime": {
"type": "string",
"description": "Published vote end time, retaining the source offset when supplied."
},
"subject": {
"type": "string",
"description": "Original roll-call subject."
},
"billTitle": {
"type": "string",
"description": "Published bill title."
},
"meaningNo": {
"type": "string",
"description": "Original meaning of a no decision."
},
"sessionId": {
"type": "string",
"description": "Published session identifier."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS OData composite-key vote URL."
},
"billNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published bill number."
},
"businessId": {
"type": "string",
"description": "Canonical BusinessNumber when published."
},
"meaningYes": {
"type": "string",
"description": "Original meaning of a yes decision."
},
"sessionName": {
"type": "string",
"description": "Published session name."
},
"businessTitle": {
"type": "string",
"description": "Published business title."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Selected metadata row language; published text is not translated."
},
"legislativePeriod": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published legislative period."
},
"registrationNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published roll-call registration number."
},
"businessShortNumber": {
"type": "string",
"description": "Published business short number."
}
},
"description": "One Nationalrat roll call, without per-member enrichment.",
"additionalProperties": false
},
"description": "Whole metadata records delivered in votes mode."
},
"groups": {
"type": "array",
"items": {
"type": "object",
"required": [
"memberRowCount",
"counts"
],
"properties": {
"counts": {
"type": "array",
"items": {
"type": "object",
"required": [
"count"
],
"properties": {
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of published member rows in this bucket."
},
"decisionCode": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Original code; absent for missing or null Decision."
},
"decisionTexts": {
"type": "array",
"items": {
"type": "string",
"description": "One verbatim published DecisionText."
},
"description": "Distinct published labels for this code in source-row order, including empty strings; absent only when no label exists."
}
},
"description": "Count of rows carrying a decision code or an unknown decision.",
"additionalProperties": false
},
"description": "Decision buckets across all published rows for this group."
},
"groupCode": {
"type": "string",
"description": "Published group code; absent when unknown."
},
"groupName": {
"type": "string",
"description": "Published group name; no synthetic unknown-group label."
},
"memberRowCount": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Published rows attributed to this group.",
"exclusiveMinimum": 0
}
},
"description": "Complete decision counts for one group at the time of the vote.",
"additionalProperties": false
},
"description": "Complete group aggregates; empty when member data is unavailable."
},
"notice": {
"type": "string",
"description": "Combined clamping, whole-item fitting, empty-result, or coverage guidance."
},
"hasMore": {
"type": "boolean",
"description": "Whether more rows remain after the delivered page; false for complete groups."
},
"members": {
"type": "array",
"items": {
"type": "object",
"required": [
"votingId"
],
"properties": {
"voteId": {
"type": "string",
"description": "History only: published IdVote, usable as voteId in groups mode."
},
"endTime": {
"type": "string",
"description": "History only: published vote end time, retaining its source offset when supplied."
},
"cantonId": {
"type": "string",
"description": "Canonical CantonNumber mapped from the published Canton abbreviation; joins canton references and member filters."
},
"lastName": {
"type": "string",
"description": "Published member last name."
},
"votingId": {
"type": "string",
"description": "Voting.ID as a decimal string."
},
"firstName": {
"type": "string",
"description": "Published member first name."
},
"groupCode": {
"type": "string",
"description": "Parliamentary group code on this Voting row."
},
"groupName": {
"type": "string",
"description": "Published parliamentary group name on this Voting row."
},
"sessionId": {
"type": "string",
"description": "History only: published IdSession on the Voting row."
},
"businessId": {
"type": "string",
"description": "History only: published canonical BusinessNumber."
},
"cantonCode": {
"type": "string",
"description": "Published Canton abbreviation."
},
"cantonName": {
"type": "string",
"description": "Published canton name."
},
"decisionCode": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published open integer decision code; absence is a separate unknown bucket."
},
"decisionText": {
"type": "string",
"description": "Original DecisionText, without replacement translation."
},
"personNumber": {
"type": "string",
"description": "Published PersonNumber, distinct from Person.ID."
},
"businessTitle": {
"type": "string",
"description": "History only: published business title on the Voting row."
},
"votingCantonId": {
"type": "string",
"description": "Raw Voting.CantonID, a numbering system distinct from canonical CantonNumber."
},
"businessShortNumber": {
"type": "string",
"description": "History only: published business short number."
}
},
"description": "One original member roll-call decision.",
"additionalProperties": false
},
"description": "Whole member decisions delivered in members mode."
},
"business": {
"type": "object",
"required": [
"businessId",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"title": {
"type": "string",
"description": "Published business title."
},
"typeId": {
"type": "string",
"description": "Published business type code."
},
"statusId": {
"type": "string",
"description": "Current business status code, including unknown source codes."
},
"typeName": {
"type": "string",
"description": "Published type name."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS OData entity URL for this metadata row."
},
"businessId": {
"type": "string",
"description": "Canonical Business.ID as a decimal string."
},
"modifiedAt": {
"type": "string",
"description": "Source modification date."
},
"statusDate": {
"type": "string",
"description": "Current status date with source timezone semantics."
},
"statusText": {
"type": "string",
"description": "Published current status label."
},
"shortNumber": {
"type": "string",
"description": "Published BusinessShortNumber, unchanged."
},
"submittedBy": {
"type": "string",
"description": "Published submitter label; not an exhaustive signatory list."
},
"submissionDate": {
"type": "string",
"description": "Published submission date."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Requested metadata row language; no text translation is implied."
},
"typeAbbreviation": {
"type": "string",
"description": "Published type abbreviation."
},
"submissionCouncilId": {
"type": "string",
"description": "Council code at submission."
},
"submissionSessionId": {
"type": "string",
"description": "Submission session identifier."
},
"submissionCouncilName": {
"type": "string",
"description": "Published submission council name."
}
},
"description": "Resolved business identity when supplied for vote discovery or member history.",
"additionalProperties": false
},
"coverage": {
"type": "object",
"required": [
"council",
"memberRollCallsSince"
],
"properties": {
"council": {
"type": "string",
"const": "N",
"description": "Member roll calls cover the Nationalrat only."
},
"memberRollCallsSince": {
"type": "string",
"const": "2003-winter-session",
"description": "Beginning of published member roll-call coverage."
}
},
"description": "Coverage of the published member decisions.",
"additionalProperties": false
},
"guidance": {
"type": "string",
"description": "Identifier discovery guidance when the parent was not found."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Original offset plus delivered rows; absent when exhausted."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact whole-query count of votes or filtered member rows, when supplied."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of delivered vote, member, or group records."
},
"decisionCounts": {
"anyOf": [
{
"type": "object",
"required": [
"scope",
"counts"
],
"properties": {
"scope": {
"type": "string",
"const": "page",
"description": "Counts cover only the delivered members page."
},
"counts": {
"type": "array",
"items": {
"type": "object",
"required": [
"count"
],
"properties": {
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of published member rows in this bucket."
},
"decisionCode": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Original code; absent for missing or null Decision."
},
"decisionTexts": {
"type": "array",
"items": {
"type": "string",
"description": "One verbatim published DecisionText."
},
"description": "Distinct published labels for this code in source-row order, including empty strings; absent only when no label exists."
}
},
"description": "Count of rows carrying a decision code or an unknown decision.",
"additionalProperties": false
},
"description": "Decision buckets on the delivered page."
}
},
"description": "Delivered-page counts, never whole-vote totals.",
"additionalProperties": false
},
{
"type": "object",
"required": [
"scope",
"complete",
"memberRowCount",
"counts"
],
"properties": {
"scope": {
"type": "string",
"const": "vote",
"description": "Counts cover the complete published roll call."
},
"counts": {
"type": "array",
"items": {
"type": "object",
"required": [
"count"
],
"properties": {
"count": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of published member rows in this bucket."
},
"decisionCode": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Original code; absent for missing or null Decision."
},
"decisionTexts": {
"type": "array",
"items": {
"type": "string",
"description": "One verbatim published DecisionText."
},
"description": "Distinct published labels for this code in source-row order, including empty strings; absent only when no label exists."
}
},
"description": "Count of rows carrying a decision code or an unknown decision.",
"additionalProperties": false
},
"description": "All decision buckets in the complete roll call."
},
"complete": {
"type": "boolean",
"const": true,
"description": "Every published member row was consumed."
},
"memberRowCount": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Published member rows, not electoral seats.",
"exclusiveMinimum": 0
}
},
"description": "Complete nonempty roll-call counts.",
"additionalProperties": false
}
],
"description": "Page counts in members mode or complete nonempty vote counts in groups mode."
},
"effectiveLimit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Effective page size after mode-specific clamping.",
"exclusiveMinimum": 0
},
"effectiveFilters": {
"type": "object",
"required": [
"mode",
"language"
],
"properties": {
"mode": {
"enum": [
"votes",
"members",
"groups"
],
"type": "string",
"description": "Selected vote workflow."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Effective page size for votes or members.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting row offset for a paged mode."
},
"voteId": {
"type": "string",
"description": "Exact selected roll-call identifier."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Selected metadata language."
},
"sessionId": {
"type": "string",
"description": "Exact session filter for vote discovery or member history."
},
"businessId": {
"type": "string",
"description": "Business identifier supplied for vote discovery or member history."
},
"personNumber": {
"type": "string",
"description": "Exact member filter, when supplied."
}
},
"description": "Normalized mode, identifiers, metadata language, and applicable paging defaults.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}chparl_search_transcripts — Chparl Search Transcripts
Find Amtliches Bulletin passages by business, debate subject, speaker, session, council, or inclusive meeting dates. Supply at least a business, subject, speaker, session, or date bound. A text substring query additionally requires sessionId or a closed date range of at most 31 calendar days. Searches return metadata by default; includeText returns whole original passages, and an exact transcriptId defaults to full text. Metadata language never translates the speaker text; missing LanguageOfText remains unknown. Business searches cover every associated subject up to 20; larger debates require selecting subjectId through chparl_get_business section subjects. Follow nextOffset with unchanged filters.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Search page request: metadata default 20/max 100, full text default 3/max 10; clamped with notice. Incompatible with transcriptId."
},
"query": {
"type": "string",
"description": "One original-text substring; requires sessionId or both dates spanning at most 31 inclusive calendar days."
},
"dateTo": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Inclusive meeting-day upper bound, YYYY-MM-DD."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Search starting row offset, default zero; use returned nextOffset. Incompatible with transcriptId."
},
"council": {
"enum": [
"N",
"S"
],
"type": "string",
"description": "N or S; exact German, French, and Italian council names are also accepted."
},
"dateFrom": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Inclusive meeting-day lower bound, YYYY-MM-DD."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata language: de (default), fr, or it; original passage text stays in its published language."
},
"sessionId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Exact positive decimal session identifier from chparl_list_reference topic sessions."
},
"subjectId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Positive Int64 debate IdSubject string; incompatible with businessId and transcriptId."
},
"businessId": {
"type": "string",
"pattern": "^(?:[1-9]\\d{7}|\\d{2}\\.\\d{3,4})$",
"description": "Canonical eight-digit businessId from chparl_search_business or published short number; incompatible with subjectId and transcriptId."
},
"includeText": {
"type": "boolean",
"description": "Return whole original text and references; defaults true for transcriptId and false for searches. Explicit false always wins."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Exact speaker PersonNumber from chparl_search_members, distinct from Person.ID."
},
"transcriptId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Exact positive Int64 transcriptId from a previous chparl_search_transcripts result; only language and includeText may accompany it."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"transcripts",
"provenance",
"effectiveFilters"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"search_scope_required",
"text_scope_required",
"business_scope_too_broad",
"incompatible_fields",
"ambiguous_business_number",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `search_scope_required`: No business, subject, speaker, session, date bound, or exact passage identifies the search. `text_scope_required`: A text query lacks a session or a valid closed date range of at most 31 days. `business_scope_too_broad`: A business has more than 20 associated debate subjects. `incompatible_fields`: Business and subject are combined, an exact passage ID is combined with search filters or paging, or dateFrom is after dateTo. `ambiguous_business_number`: A short business number resolves to multiple canonical businesses. `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"found": {
"type": "boolean",
"description": "Exact-ID mode only: whether the selected passage exists."
},
"notice": {
"type": "string",
"description": "Combined clamp, whole-item fitting, empty-result, or indivisible-record guidance."
},
"hasMore": {
"type": "boolean",
"description": "Whether passages remain after the delivered search page; absent in exact-ID mode."
},
"guidance": {
"type": "string",
"description": "How to discover a valid exact passage or missing business identifier."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Original offset plus actually delivered passages, when more remain."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"scopeFound": {
"type": "boolean",
"description": "Business searches only: whether the business exists, independently of published subjects or passages."
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact whole-scope passage count when supplied; absent when a business does not exist."
},
"transcripts": {
"type": "array",
"items": {
"type": "object",
"required": [
"transcriptId",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"text": {
"type": "string",
"description": "Whole original Bulletin Text, preserving HTML, line endings, and the speaker language."
},
"type": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published open Bulletin passage type code."
},
"voteId": {
"type": "string",
"description": "Original VoteId string when the passage announces a vote."
},
"council": {
"type": "string",
"description": "Original MeetingCouncilAbbreviation."
},
"endTime": {
"type": "string",
"description": "Published passage end, retaining a source offset when supplied."
},
"councilId": {
"type": "string",
"description": "Published CouncilId."
},
"sessionId": {
"type": "string",
"description": "Published IdSession string."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published passage sort order."
},
"sourceUrl": {
"type": "string",
"description": "Exact HTTPS OData composite-key passage URL."
},
"startTime": {
"type": "string",
"description": "Published passage start, retaining a source offset when supplied."
},
"subjectId": {
"type": "string",
"description": "Published debate IdSubject as an exact Int64 string."
},
"businessId": {
"type": "string",
"description": "Published VoteBusinessNumber; not an exhaustive passage-to-business relationship."
},
"references": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind",
"originalUrl"
],
"properties": {
"url": {
"type": "string",
"description": "Clickable absolute HTTP(S) target when the reference supplies one."
},
"kind": {
"enum": [
"link",
"image"
],
"type": "string",
"description": "HTML link or image reference."
},
"label": {
"type": "string",
"description": "Original image alt attribute, when present."
},
"originalUrl": {
"type": "string",
"description": "Original reference attribute value, before HTML decoding."
}
},
"description": "One reference present in returned original HTML.",
"additionalProperties": false
},
"description": "Link and image references from returned original Text; relative attributes remain unexpanded."
},
"councilName": {
"type": "string",
"description": "Original council name."
},
"meetingDate": {
"type": "string",
"description": "Published calendar day as YYYY-MM-DD, without an inferred timezone."
},
"speakerName": {
"type": "string",
"description": "Original SpeakerFullName, without reconstructing a missing name."
},
"personNumber": {
"type": "string",
"description": "Published speaker PersonNumber, distinct from Person.ID."
},
"transcriptId": {
"type": "string",
"description": "Transcript.ID as an exact signed Int64 decimal string."
},
"textSizeBytes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Actual original Text UTF-8 byte length, including zero for an existing empty string."
},
"languageOfText": {
"type": "string",
"description": "Original LanguageOfText label; absent means unknown, and compound labels remain intact."
},
"speakerFunction": {
"type": "string",
"description": "Original speaker function label."
},
"speakerLastName": {
"type": "string",
"description": "Original speaker last name."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Selected metadata row language; original text is never translated."
},
"speakerFirstName": {
"type": "string",
"description": "Original speaker first name."
},
"businessShortNumber": {
"type": "string",
"description": "Original VoteBusinessShortNumber."
}
},
"description": "One unshortened Bulletin passage or its metadata.",
"additionalProperties": false
},
"description": "Whole matching passages or zero-or-one exact-ID result, without shortening original fields."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Passages actually delivered on a search page; absent in exact-ID mode."
},
"effectiveLimit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Search page size after metadata or full-text clamping.",
"exclusiveMinimum": 0
},
"effectiveFilters": {
"type": "object",
"required": [
"language",
"includeText"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Effective page size for a search, absent for exact lookup.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"description": "Original-text substring after caller whitespace normalization."
},
"dateTo": {
"type": "string",
"description": "Inclusive meeting-day upper bound."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting passage offset for a search, absent for exact lookup."
},
"council": {
"enum": [
"N",
"S"
],
"type": "string",
"description": "Normalized council abbreviation."
},
"dateFrom": {
"type": "string",
"description": "Inclusive meeting-day lower bound."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Selected metadata language."
},
"sessionId": {
"type": "string",
"description": "Exact source session string."
},
"subjectId": {
"type": "string",
"description": "Exact debate subject Int64 identifier."
},
"businessId": {
"type": "string",
"description": "Supplied business identifier resolved through all associated subjects."
},
"includeText": {
"type": "boolean",
"description": "Resolved original-text disclosure; exact default true, search default false."
},
"personNumber": {
"type": "string",
"description": "Exact speaker PersonNumber."
},
"transcriptId": {
"type": "string",
"description": "Exact passage Int64 identifier; incompatible with search filters and paging."
}
},
"description": "Effective passage filters, disclosure mode, and applicable paging defaults.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}chparl_search_members — Chparl Search Members
Find current or former Swiss Parliament affiliation records by name, council, canton, party, or parliamentary group. membership defaults to current; former selects inactive records and all omits the activity filter. query matches a substring of a published first, last, or official name. Use each record’s personNumber with chparl_get_member for identity, full council terms, committees, and declared interests. Follow nextOffset with the same filters.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 10000,
"minimum": 1,
"description": "Requested page size, default 20, effective maximum 100 with notice. Whole records may be fitted to the response byte budget."
},
"query": {
"type": "string",
"description": "Optional name substring, trimmed without changing internal punctuation or diacritics."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting MemberCouncil record offset; continue with returned nextOffset."
},
"council": {
"enum": [
"N",
"S"
],
"type": "string",
"description": "N or S; exact German, French, and Italian council names are accepted. Resolve codes with chparl_list_reference topic councils."
},
"groupId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Optional ParlGroupNumber from chparl_list_reference topic groups."
},
"partyId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Optional Party identifier from chparl_list_reference topic parties."
},
"cantonId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Optional Canton identifier from chparl_list_reference topic cantons."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata language: de (default), fr, or it; uppercase is accepted."
},
"membership": {
"enum": [
"current",
"former",
"all"
],
"type": "string",
"default": "current",
"description": "current (default), former, or all MemberCouncil records."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"members",
"provenance",
"effectiveFilters",
"returnedCount",
"effectiveLimit",
"hasMore"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"notice": {
"type": "string",
"description": "Combined clamping, byte fitting, empty-result, or past-end guidance."
},
"hasMore": {
"type": "boolean",
"description": "Whether further matching affiliation records remain."
},
"members": {
"type": "array",
"items": {
"type": "object",
"required": [
"memberCouncilId",
"personNumber",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"active": {
"type": "boolean",
"description": "Published activity flag; absent means unknown."
},
"groupId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published parliamentary-group identifier for this record."
},
"partyId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published party identifier for this record."
},
"cantonId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published canton identifier."
},
"lastName": {
"type": "string",
"description": "Published last name."
},
"leftDate": {
"type": "string",
"description": "Council term leaving date, when published."
},
"councilId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published council identifier."
},
"firstName": {
"type": "string",
"description": "Published first name."
},
"groupName": {
"type": "string",
"description": "Published parliamentary-group name for this record."
},
"partyName": {
"type": "string",
"description": "Published party name for this record."
},
"sourceUrl": {
"type": "string",
"description": "HTTPS OData URL for this exact source record."
},
"cantonName": {
"type": "string",
"description": "Published canton name."
},
"joinedDate": {
"type": "string",
"description": "Council term joining date, without an inferred timezone."
},
"councilName": {
"type": "string",
"description": "Published council name."
},
"officialName": {
"type": "string",
"description": "Published official name."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "PersonNumber used by every member-profile lookup."
},
"memberCouncilId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "MemberCouncil.ID; distinct from PersonNumber."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Selected metadata row language, not a translation claim."
},
"groupAbbreviation": {
"type": "string",
"description": "Published parliamentary-group abbreviation for this record."
},
"partyAbbreviation": {
"type": "string",
"description": "Published party abbreviation for this record."
},
"cantonAbbreviation": {
"type": "string",
"description": "Published canton abbreviation."
},
"councilAbbreviation": {
"type": "string",
"description": "Published council abbreviation."
}
},
"description": "One published MemberCouncil affiliation record.",
"additionalProperties": false
},
"description": "Complete MemberCouncil affiliation records delivered on this page."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting offset plus delivered records; absent when exhausted."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact whole-query MemberCouncil record count when supplied upstream."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of complete MemberCouncil records delivered."
},
"effectiveLimit": {
"type": "integer",
"maximum": 100,
"description": "Effective requested page size after clamping.",
"exclusiveMinimum": 0
},
"effectiveFilters": {
"type": "object",
"required": [
"language",
"membership",
"limit",
"offset"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Effective requested record count after clamping.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"description": "Trimmed upstream substring search."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Effective starting record offset."
},
"council": {
"enum": [
"N",
"S"
],
"type": "string",
"description": "Effective council filter."
},
"groupId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Effective parliamentary-group filter."
},
"partyId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Effective party filter."
},
"cantonId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Effective canton filter."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Effective metadata language."
},
"membership": {
"enum": [
"current",
"former",
"all"
],
"type": "string",
"description": "current filters Active true; former false; all omits Active."
}
},
"description": "Normalized search filters and resolved defaults.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}chparl_get_member — Chparl Get Member
Read a Swiss Parliament member by PersonNumber, which need not equal Person.ID. overview returns identity and every base MemberCouncil affiliation without pagination. Select council_terms for historical council terms, committees for published MemberCommittee rows, or interests for declared interests; those sections accept limit and offset. Missing paid status means unknown, and empty interests do not establish absence of conflicts of interest. Metadata labels remain in the selected language.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"personNumber"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Relationship sections only: default 20, effective maximum 100 with notice. Omit for overview."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Relationship sections only: default zero; continue with nextOffset. Omit for overview."
},
"section": {
"enum": [
"overview",
"council_terms",
"committees",
"interests"
],
"type": "string",
"default": "overview",
"description": "overview (default), council_terms, committees, or interests."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata language: de (default), fr, or it; uppercase is accepted."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Required positive Int32 PersonNumber as a decimal string; discover with chparl_search_members."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"found",
"section",
"provenance",
"effectiveFilters"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"incompatible_fields",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `incompatible_fields`: Relationship pagination was supplied for overview. `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"found": {
"type": "boolean",
"description": "Whether a Person matched the requested PersonNumber and language."
},
"notice": {
"type": "string",
"description": "Combined clamping, size, empty-section, or past-end guidance."
},
"person": {
"type": "object",
"required": [
"personNumber",
"id",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Person.ID, which need not equal PersonNumber."
},
"lastName": {
"type": "string",
"description": "Published last name."
},
"firstName": {
"type": "string",
"description": "Published first name."
},
"sourceUrl": {
"type": "string",
"description": "HTTPS OData URL for this Person record."
},
"officialName": {
"type": "string",
"description": "Published official name."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "PersonNumber, the profile lookup identifier."
},
"nativeLanguage": {
"type": "string",
"description": "Published native-language value; absence means unknown."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Selected metadata row language."
}
},
"description": "Resolved parliamentary identity, including the distinct Person.ID.",
"additionalProperties": false
},
"hasMore": {
"type": "boolean",
"description": "Whether section records remain; false for complete overview affiliations."
},
"section": {
"enum": [
"overview",
"council_terms",
"committees",
"interests"
],
"type": "string",
"description": "Profile component returned."
},
"guidance": {
"type": "string",
"description": "Discovery guidance when the person is absent."
},
"interests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"sourceUrl"
],
"properties": {
"id": {
"type": "string",
"description": "PersonInterest record GUID."
},
"paid": {
"type": "boolean",
"description": "Published paid flag; absent means unknown."
},
"agency": {
"type": "string",
"description": "Original published Agency code."
},
"sortOrder": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published source sort order."
},
"sourceUrl": {
"type": "string",
"description": "HTTPS OData URL for this interest record."
},
"modifiedAt": {
"type": "string",
"description": "Published modification timestamp without an inferred timezone."
},
"interestName": {
"type": "string",
"description": "Original published interest name."
},
"interestType": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published interest type code."
},
"functionInAgency": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published function-in-agency code."
},
"interestTypeText": {
"type": "string",
"description": "Published interest type text."
},
"organizationType": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published organization type code."
},
"functionInAgencyText": {
"type": "string",
"description": "Published function-in-agency text."
},
"organizationTypeText": {
"type": "string",
"description": "Published organization type text."
}
},
"description": "One declared interest with published paid-status information.",
"additionalProperties": false
},
"description": "Delivered declared interests; missing paid flags stay unknown, and emptiness does not prove no conflicts of interest."
},
"committees": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"committeeId",
"sourceUrl"
],
"properties": {
"id": {
"type": "string",
"description": "MemberCommittee membership GUID."
},
"councilId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published council identifier."
},
"sourceUrl": {
"type": "string",
"description": "HTTPS OData URL for this membership record."
},
"functionId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published committee-function code."
},
"committeeId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "CommitteeNumber for reference and business queries."
},
"councilName": {
"type": "string",
"description": "Published council name."
},
"abbreviation": {
"type": "string",
"description": "Published committee Abbreviation."
},
"functionName": {
"type": "string",
"description": "Published committee-function name."
},
"abbreviation1": {
"type": "string",
"description": "Published committee Abbreviation1."
},
"abbreviation2": {
"type": "string",
"description": "Published committee Abbreviation2."
},
"committeeName": {
"type": "string",
"description": "Published committee name."
},
"committeeTypeId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published committee type identifier."
},
"committeeTypeName": {
"type": "string",
"description": "Published committee type name."
},
"councilAbbreviation": {
"type": "string",
"description": "Published council abbreviation."
},
"committeeTypeAbbreviation": {
"type": "string",
"description": "Published committee type abbreviation."
}
},
"description": "One published committee membership.",
"additionalProperties": false
},
"description": "Delivered published committee memberships; not a complete historical committee ledger."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting offset plus delivered records; absent when exhausted or unpaged."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Exact section count when supplied upstream, or the fully enumerated overview membership count."
},
"memberships": {
"type": "array",
"items": {
"type": "object",
"required": [
"memberCouncilId",
"personNumber",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"active": {
"type": "boolean",
"description": "Published activity flag; absent means unknown."
},
"groupId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published parliamentary-group identifier for this record."
},
"partyId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published party identifier for this record."
},
"cantonId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published canton identifier."
},
"lastName": {
"type": "string",
"description": "Published last name."
},
"leftDate": {
"type": "string",
"description": "Council term leaving date, when published."
},
"councilId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published council identifier."
},
"firstName": {
"type": "string",
"description": "Published first name."
},
"groupName": {
"type": "string",
"description": "Published parliamentary-group name for this record."
},
"partyName": {
"type": "string",
"description": "Published party name for this record."
},
"sourceUrl": {
"type": "string",
"description": "HTTPS OData URL for this exact source record."
},
"cantonName": {
"type": "string",
"description": "Published canton name."
},
"joinedDate": {
"type": "string",
"description": "Council term joining date, without an inferred timezone."
},
"councilName": {
"type": "string",
"description": "Published council name."
},
"officialName": {
"type": "string",
"description": "Published official name."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "PersonNumber used by every member-profile lookup."
},
"memberCouncilId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "MemberCouncil.ID; distinct from PersonNumber."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Selected metadata row language, not a translation claim."
},
"groupAbbreviation": {
"type": "string",
"description": "Published parliamentary-group abbreviation for this record."
},
"partyAbbreviation": {
"type": "string",
"description": "Published party abbreviation for this record."
},
"cantonAbbreviation": {
"type": "string",
"description": "Published canton abbreviation."
},
"councilAbbreviation": {
"type": "string",
"description": "Published council abbreviation."
}
},
"description": "One published MemberCouncil affiliation record.",
"additionalProperties": false
},
"description": "Complete base MemberCouncil affiliations in overview; source continuations are drained."
},
"councilTerms": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"personNumber",
"metadataLanguage",
"sourceUrl"
],
"properties": {
"id": {
"type": "string",
"description": "MemberCouncilHistory record GUID."
},
"active": {
"type": "boolean",
"description": "Published activity flag; absent means unknown."
},
"groupId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published parliamentary-group identifier for this record."
},
"partyId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published party identifier for this record."
},
"cantonId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published canton identifier."
},
"lastName": {
"type": "string",
"description": "Published last name."
},
"leftDate": {
"type": "string",
"description": "Council term leaving date, when published."
},
"councilId": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Published council identifier."
},
"firstName": {
"type": "string",
"description": "Published first name."
},
"groupName": {
"type": "string",
"description": "Published parliamentary-group name for this record."
},
"partyName": {
"type": "string",
"description": "Published party name for this record."
},
"sourceUrl": {
"type": "string",
"description": "HTTPS OData URL for this exact source record."
},
"cantonName": {
"type": "string",
"description": "Published canton name."
},
"joinedDate": {
"type": "string",
"description": "Council term joining date, without an inferred timezone."
},
"councilName": {
"type": "string",
"description": "Published council name."
},
"officialName": {
"type": "string",
"description": "Published official name."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "PersonNumber used by every member-profile lookup."
},
"predecessorId": {
"type": "string",
"description": "Published predecessor GUID, when known."
},
"metadataLanguage": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Selected metadata row language, not a translation claim."
},
"groupAbbreviation": {
"type": "string",
"description": "Published parliamentary-group abbreviation for this record."
},
"partyAbbreviation": {
"type": "string",
"description": "Published party abbreviation for this record."
},
"cantonAbbreviation": {
"type": "string",
"description": "Published canton abbreviation."
},
"councilAbbreviation": {
"type": "string",
"description": "Published council abbreviation."
}
},
"description": "One historical council term with its source identifiers.",
"additionalProperties": false
},
"description": "Delivered complete historical council-term records."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of profile records returned; omitted for a missing person."
},
"effectiveLimit": {
"type": "integer",
"maximum": 100,
"description": "Effective page size, present only for relationship sections.",
"exclusiveMinimum": 0
},
"effectiveFilters": {
"type": "object",
"required": [
"personNumber",
"language",
"section"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Effective relationship page size; absent for overview.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Effective relationship offset; absent for overview."
},
"section": {
"enum": [
"overview",
"council_terms",
"committees",
"interests"
],
"type": "string",
"description": "Effective profile component."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Effective metadata language."
},
"personNumber": {
"type": "string",
"pattern": "^[1-9]\\d*$",
"description": "Effective PersonNumber lookup key."
}
},
"description": "Normalized profile parameters and defaults for the selected section.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}chparl_list_reference — Chparl List Reference
List Swiss Parliament reference entries and source coverage. Choose identifiers, coverage, or languages for server explanations; statuses for the official legacy/current status snapshot; or business_types, councils, cantons, parties, groups, committees, or sessions for live dictionaries. Date filters apply only to sessions. Follow nextOffset with the same topic, language, and dates; labels remain in the requested metadata language and missing labels stay unknown.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 10000,
"minimum": 1,
"description": "Requested page size, default 50; values above 100 are clamped with a notice. Whole-item byte fitting may return fewer entries."
},
"topic": {
"enum": [
"identifiers",
"coverage",
"languages",
"business_types",
"statuses",
"councils",
"cantons",
"parties",
"groups",
"committees",
"sessions"
],
"type": "string",
"description": "Reference dictionary or explanatory topic to list."
},
"dateTo": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Sessions only: inclusive EndDate upper bound, YYYY-MM-DD."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Starting row offset, default zero. Use the returned nextOffset to continue."
},
"dateFrom": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Sessions only: inclusive StartDate lower bound, YYYY-MM-DD."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"default": "de",
"description": "Metadata label language: de (default), fr, or it."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"topic",
"items",
"provenance",
"effectiveFilters",
"returnedCount",
"effectiveLimit",
"hasMore"
]
},
{
"required": [
"error"
]
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"examples": [
"incompatible_fields",
"upstream_rate_limited"
],
"description": "Machine-readable failure mode. Declared by this tool: `incompatible_fields`: Session dates were supplied for another topic, or dateFrom is after dateTo. `upstream_rate_limited`: Parliament returned HTTP 429. Other values are possible when a failure originates below the handler."
},
"recovery": {
"type": "object",
"required": [
"hint"
],
"properties": {
"hint": {
"type": "string"
}
},
"description": "Actionable next step for the caller.",
"additionalProperties": {}
},
"retryable": {
"type": "boolean",
"description": "Whether retrying may succeed."
}
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
}
},
"description": "Present when the call failed. Absent on success.",
"additionalProperties": {}
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Source dictionary key, or stable identifier for a server explanation."
},
"era": {
"enum": [
"legacy",
"current"
],
"type": "string",
"description": "Status vocabulary before or from 1 July 2023."
},
"code": {
"type": "string",
"description": "Published status or parliamentary-group code when available."
},
"label": {
"type": "string",
"description": "Original source label in the requested language; omitted when unpublished. Static facts use server explanations."
},
"active": {
"type": "boolean",
"description": "Published active flag; absent does not imply false."
},
"endDate": {
"type": "string",
"description": "Published end date normalized from OData DateTime without an invented timezone."
},
"councilId": {
"type": "string",
"description": "Published numeric council key, resolved with topic councils."
},
"startDate": {
"type": "string",
"description": "Published start date normalized from OData DateTime without an invented timezone."
},
"description": {
"type": "string",
"description": "Source description, session number and type, or explicit server explanation."
},
"abbreviation": {
"type": "string",
"description": "Published abbreviation, including an existing empty string."
},
"legislativePeriod": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Published legislative period number for a session."
}
},
"description": "One source reference record or explicitly identified server explanation.",
"additionalProperties": false
},
"description": "Complete reference entries delivered on this page."
},
"topic": {
"enum": [
"identifiers",
"coverage",
"languages",
"business_types",
"statuses",
"councils",
"cantons",
"parties",
"groups",
"committees",
"sessions"
],
"type": "string",
"description": "Reference topic returned."
},
"notice": {
"type": "string",
"description": "Combined limit, whole-item byte-budget, empty-result, or past-end guidance."
},
"hasMore": {
"type": "boolean",
"description": "Whether entries remain beyond this delivered page."
},
"nextOffset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Original offset plus delivered entries; absent when exhausted."
},
"provenance": {
"type": "object",
"required": [
"attribution",
"officialPublication",
"sources"
],
"properties": {
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"retrievedAt"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS source response or official snapshot document URL."
},
"retrievedAt": {
"type": "string",
"description": "Actual UTC download timestamp, or the date of a static source snapshot."
}
},
"description": "A source used to produce this result.",
"additionalProperties": false
},
"description": "Every HTTP response contributing data, or each static source snapshot."
},
"attribution": {
"type": "string",
"const": "Parlamentsdienste der Bundesversammlung, Bern",
"description": "Official source attribution."
},
"officialPublication": {
"type": "boolean",
"const": false,
"description": "This server is an unofficial reproduction of the source."
}
},
"description": "Attribution, publication status, and source download dates.",
"additionalProperties": false
},
"totalCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Whole-query reference count when the source supplies one."
},
"returnedCount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Number of complete entries actually delivered."
},
"effectiveLimit": {
"type": "integer",
"maximum": 100,
"description": "Effective row limit after clamping; response-size fitting may deliver fewer.",
"exclusiveMinimum": 0
},
"effectiveFilters": {
"type": "object",
"required": [
"topic",
"language",
"limit",
"offset"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Effective maximum entries requested from the source, capped at 100.",
"exclusiveMinimum": 0
},
"topic": {
"enum": [
"identifiers",
"coverage",
"languages",
"business_types",
"statuses",
"councils",
"cantons",
"parties",
"groups",
"committees",
"sessions"
],
"type": "string",
"description": "Requested reference topic."
},
"dateTo": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Inclusive session EndDate upper bound, if supplied."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Requested starting row, before any whole-item response-size fitting."
},
"dateFrom": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Inclusive session StartDate lower bound, if supplied."
},
"language": {
"enum": [
"de",
"fr",
"it"
],
"type": "string",
"description": "Requested metadata label language."
}
},
"description": "Normalized reference filters and resolved paging defaults.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true
}Prompts
0 advertised
Resources
0 advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 790 ms
- 95th percentile latency
- 790 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 790 ms · metadata changed · 7 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http switzerland-parliament-mcp-server https://switzerland-parliament.caseyjhand.com/mcpCodex
codex mcp add switzerland-parliament-mcp-server --url https://switzerland-parliament.caseyjhand.com/mcpCursor
{
"mcpServers": {
"switzerland-parliament-mcp-server": {
"url": "https://switzerland-parliament.caseyjhand.com/mcp"
}
}
}Cline
{
"mcpServers": {
"switzerland-parliament-mcp-server": {
"type": "streamableHttp",
"url": "https://switzerland-parliament.caseyjhand.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"switzerland-parliament-mcp-server": {
"type": "http",
"url": "https://switzerland-parliament.caseyjhand.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http switzerland-parliament-mcp-server https://switzerland-parliament.caseyjhand.com/mcpClaude Desktop
{
"mcpServers": {
"switzerland-parliament-mcp-server": {
"url": "https://switzerland-parliament.caseyjhand.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"switzerland-parliament-mcp-server": {
"serverUrl": "https://switzerland-parliament.caseyjhand.com/mcp"
}
}
}Let your agent find its tools
Find servers like switzerland-parliament-mcp-server from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.