Search Swiss parliamentary business, votes, debates, members, and declared interests.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Read a 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.
Canonical eight-digit businessId from chparl_search_business, or an exact published short number such as 99.1234.
Relationships only: requested page size, default 20, clamped to 100.
Relationships only: source row offset, default zero; continue with returned nextOffset.
Readable section, default overview.
Metadata and business-text variant: de (default), fr, or it.
Texts only: named original fields; empty array means unset.
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Relationships only: requested page size, default 20, clamped to 100. |
| offset | integer | Relationships only: source row offset, default zero; continue with returned nextOffset. |
| section | string | Readable section, default overview. |
| language | string | Metadata and business-text variant: de (default), fr, or it. |
| businessId* | string | Canonical eight-digit businessId from chparl_search_business, or an exact published short number such as 99.1234. |
| textFields | array | Texts only: named original fields; empty array means unset. |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Relationship sections only: default 20, effective maximum 100 with notice. Omit for overview. |
| offset | integer | Relationship sections only: default zero; continue with nextOffset. Omit for overview. |
| section | string | overview (default), council_terms, committees, or interests. |
| language | string | Metadata language: de (default), fr, or it; uppercase is accepted. |
| personNumber* | string | Required positive Int32 PersonNumber as a decimal string; discover with chparl_search_members. |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| mode | string | Workflow: votes (default), members, or complete groups. |
| limit | integer | Paged modes only: votes default 10/max 50, members default 50/max 100; higher requests are clamped with notice. |
| offset | integer | Paged modes only: starting row offset, default zero; continue using returned nextOffset. |
| voteId | string | Members or groups only: positive Int32 Vote.ID discovered through votes mode; omit for personNumber history. Cannot combine with businessId or sessionId. |
| language | string | Metadata language: de (default), fr, or it; decision text remains as published. |
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Requested page size, default 50; values above 100 are clamped with a notice. Whole-item byte fitting may return fewer entries. |
| topic* | string | Reference dictionary or explanatory topic to list. |
| dateTo | string | Sessions only: inclusive EndDate upper bound, YYYY-MM-DD. |
| offset | integer | Starting row offset, default zero. Use the returned nextOffset to continue. |
| dateFrom | string | Sessions only: inclusive StartDate lower bound, YYYY-MM-DD. |
| language | string | Metadata label language: de (default), fr, or it. |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page request, default 20; clamped to 100. Committee pages count candidate roles, and byte fitting may return fewer businesses. |
| query | string | One title substring, preserving punctuation and diacritics. |
| author | string | Substring of the published submitter label, not every co-signatory. |
| cursor | string | Opaque nextCursor from a previous call with identical filters; omit to start. |
| typeId | string | Business type code from chparl_list_reference topic business_types. |
| language | string | Metadata language: de (default), fr, or it. |
| statusId |
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Requested page size, default 20, effective maximum 100 with notice. Whole records may be fitted to the response byte budget. |
| query | string | Optional name substring, trimmed without changing internal punctuation or diacritics. |
| offset | integer | Starting MemberCouncil record offset; continue with returned nextOffset. |
| council | string | N or S; exact German, French, and Italian council names are accepted. Resolve codes with chparl_list_reference topic councils. |
| groupId | string | Optional ParlGroupNumber from chparl_list_reference topic groups. |
| partyId | string | Optional Party identifier from chparl_list_reference topic parties. |
| cantonId |
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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Search page request: metadata default 20/max 100, full text default 3/max 10; clamped with notice. Incompatible with transcriptId. |
| query | string | One original-text substring; requires sessionId or both dates spanning at most 31 inclusive calendar days. |
| dateTo | string | Inclusive meeting-day upper bound, YYYY-MM-DD. |
| offset | integer | Search starting row offset, default zero; use returned nextOffset. Incompatible with transcriptId. |
| council | string | N or S; exact German, French, and Italian council names are also accepted. |
| dateFrom | string |
| sessionId | string | Votes or member history only: positive Int32 Session.ID from chparl_list_reference topic sessions; combine with businessId to narrow discovery. |
| businessId | string | Votes or member history only: canonical eight-digit businessId from chparl_search_business, or a published short number such as 99.1234. |
| personNumber | string | Members only: exact PersonNumber from chparl_search_members, distinct from Person.ID or current group affiliation. |
{
"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
}| string |
| Current status code from chparl_list_reference topic statuses. |
| sessionId | string | Submission session ID from chparl_list_reference topic sessions. |
| committeeId | string | Committee number from chparl_list_reference topic committees; matches any published committee role. |
| submittedTo | string | Inclusive submission-date upper bound, YYYY-MM-DD. |
| submittedFrom | string | Inclusive submission-date lower bound, YYYY-MM-DD. |
{
"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
}| string |
| Optional Canton identifier from chparl_list_reference topic cantons. |
| language | string | Metadata language: de (default), fr, or it; uppercase is accepted. |
| membership | string | current (default), former, or all MemberCouncil records. |
{
"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
}| Inclusive meeting-day lower bound, YYYY-MM-DD. |
| language | string | Metadata language: de (default), fr, or it; original passage text stays in its published language. |
| sessionId | string | Exact positive decimal session identifier from chparl_list_reference topic sessions. |
| subjectId | string | Positive Int64 debate IdSubject string; incompatible with businessId and transcriptId. |
| businessId | string | Canonical eight-digit businessId from chparl_search_business or published short number; incompatible with subjectId and transcriptId. |
| includeText | boolean | Return whole original text and references; defaults true for transcriptId and false for searches. Explicit false always wins. |
| personNumber | string | Exact speaker PersonNumber from chparl_search_members, distinct from Person.ID. |
| transcriptId | string | Exact positive Int64 transcriptId from a previous chparl_search_transcripts result; only language and includeText may accompany it. |
{
"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
}