Skip to main content
Glama
malkreide

swiss-democracy-mcp

by malkreide

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.5

  • Disambiguation4/5

    Most tools have distinct purposes, but there is overlap between democracy_list_vote_dates and democracy_bfs_list_vote_dates, and between democracy_get_vote_detail and democracy_bfs_get_vote_results. Descriptions clarify the different data sources, but an agent could still be confused.

    Naming Consistency5/5

    All tools follow a consistent 'democracy_' prefix with snake_case verb_noun pattern. Source-specific tools (bfs, polis) maintain their own sub-pattern, while generic tools use clear verbs like get, list, search. No mixing of conventions.

    Tool Count5/5

    10 tools is well-scoped for a Swiss democracy data server. Each tool covers a specific aspect: listing dates, searching, details, cantonal results, party positions, BFS real-time, Polis votes and elections. No tool feels superfluous or missing.

    Completeness4/5

    The tool set covers the main aspects of Swiss democratic data: vote search, listing, details, cantonal results, party positions, and two separate historical sources (Swissvotes and Polis). A minor gap is the lack of detailed election results (e.g., candidate-level data), but core workflows are supported.

  • Average 4.1/5 across 10 of 10 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • 0 of 1 community issues answered or closed in the last 6 months
    • 42 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint and idempotentHint. The description adds value by explaining the decoding of numeric codes into labels and the return format (JSON with links to committees). No contradictions with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with sections, but slightly lengthy (three paragraphs). Every sentence adds value, and the use case and code decoding are useful.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple read-only tool with good annotations and a single well-described parameter, the description adequately covers purpose, input, and output. It could mention potential errors or rate limits but is largely complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema itself provides a good description of the vote_number parameter (including example values). The tool description adds a brief restatement, but no substantial new information. Baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it returns party positions (Parolen) for Swiss popular votes, distinguishing it from sibling tools like democracy_get_vote_detail or democracy_bfs_get_vote_results. However, the use of German may reduce clarity for non-German-speaking agents, and the exact scope is implicit.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides a use case ('Analyse von Parteilinien und Kampagnen-Finanzierung') but does not explicitly mention when to avoid this tool or suggest alternatives. Usage is implied rather than guided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds meaningful behavioral context by listing the returned fields (Stimmberechtigte, gültige Stimmen, etc.) and confirming national total inclusion, which goes beyond the annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise and well-structured, with clear sections for use case, parameter description, and return value description. Every sentence serves a purpose, and the key information is front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has an output schema (though not shown) and annotations, the description covers the necessary behavioral details. It includes return value structure and complements the schema. Minor gap: no error handling guidance, but not critical.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides a description for vote_number. The tool description does not add new parameter semantics beyond reiterating the role of vote_number. Schema coverage appears high, so baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool returns cantonal results for a federal vote, specifying the verb (gibt zurück) and resource (Abstimmungsresultate aller 26 Kantone). It includes a use case but does not explicitly differentiate from siblings like democracy_bfs_get_vote_results.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description mentions when to use (cantonal comparison and Ständemehr analysis) but lacks explicit guidance on when not to use or alternatives. This is adequate but not comprehensive.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide readOnlyHint and idempotentHint, reducing burden. The description adds context about the returned JSON and error handling, and lists included fields, aligning with annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with a use-case block, list of included items, and Args/Returns sections. It is informative but could be slightly more concise by avoiding redundancy with schema.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity and the presence of an output schema, the description covers input, use case, and output sufficiently. It mentions error messages and links to additional resources.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The only parameter (params) is described with details about its field (vote_number) and source in the description. The schema also provides a description, so the main description adds clarity about the input's origin.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it returns full details of a federal popular vote, listing specific elements. It distinguishes itself from siblings through the emphasis on 'complete details', but does not explicitly name differences.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description includes a use-case hint ('Vertiefung zu einer konkreten Vorlage') implying when to use, but lacks explicit when-not-to-use or alternatives. It references democracy_search_votes for input, providing context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. The description adds that it returns JSON with dates and proposal counts, but no additional behavioral traits like auth needs or rate limits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Description is concise and front-loaded with purpose. Some redundancy (e.g., 'Nützlich zur Orientierung...' appears twice), but overall efficient with mixed German and technical formatting.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given tool complexity (listing with filtering) and existence of output schema, description adequately explains return format (JSON with dates and counts). Lacks differentiation from sibling list tools but covers essentials.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so description must compensate. It mentions 'Optionaler Zeitraumfilter (year_from, year_to)' for two of three parameters but omits 'limit'. Partial coverage limits clarity.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Listet alle eidgenössischen Abstimmungsdaten auf' (lists all federal voting dates), specifying verb, resource, and scope. It distinguishes from siblings like democracy_get_vote_detail and democracy_bfs_list_vote_dates by focusing on date listing with proposal counts.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description includes a <use_case> tag indicating 'Orientierung/Navigation vor einer Detailabfrage' (orientation/navigation before a detail query), providing context for when to use. However, it does not explicitly exclude usage or mention alternatives like democracy_bfs_list_vote_dates.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, which cover safety. The description adds that authentication is required and returns JSON with election list or registration hint. It does not contradict annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is structured with a title, use case tag, authentication note, and separate Args/Returns sections. It is not overly long, but the German language and special characters may slightly reduce readability for English agents.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the presence of an output schema (context signal), the description adequately covers purpose, parameters, authentication, and return type. It lacks explicit examples or exclusions, but for a list-like tool it is sufficiently complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description compensates by listing parameters (year_from, year_to, lang, limit) and their basic purpose. However, it does not provide detailed guidance such as format or example values beyond what the schema provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it retrieves historical elections (National-/Ständerat, Regierungsrat) from Polis for analysis since 1900. The use case tag explicitly mentions 'Wahlanalysen', making the purpose distinct from sibling tools that deal with votations or popular votes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context: it requires API keys (SRGSSR_CONSUMER_KEY and SECRET). It also gives a use case indicator. However, it does not explicitly contrast with sibling tools (e.g., democracy_polis_list_votations) to guide when to choose this tool over alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already mark it as read-only, idempotent, open-world. The description adds that it requires authentication (SRGSSR keys) and returns JSON with cantonal/optional municipal data, providing context beyond annotations. No contradictions.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise with four sentences plus a structured use case tag and args list. Every sentence adds value: purpose, use case, auth, parameter overview. No fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With an output schema present, the description does not need to detail return values. It covers input, auth, and use case adequately. Minor omission: no mention of rate limits or pagination, but not critical given the straightforward single-item retrieval.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description lists the three parameters from the input schema, but the schema itself already has detailed descriptions for each (e.g., votation_id source, lang enum, municipality inclusion effect). The description adds the auth requirement but does not significantly enrich the semantic meaning of the parameters beyond the schema; baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool returns detailed Polis data for a popular vote, with optional municipal results. It specifies the resource (votation detail) and verb (get), and distinguishes from siblings like democracy_polis_list_votations (listing) and democracy_bfs_get_vote_results (BFS data).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides a concrete use case (analyzing municipal results like Zurich's AHV vote) and prerequisites (votation_id from list_votations, SRGSSR keys). It does not explicitly state when not to use or list alternatives, but the context is clear.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare read-only, idempotent behavior. The description adds context about municipality granularity and authentication needs, but does not elaborate on rate limits or other constraints.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is structured with a use case tag, authentication note, and parameter summary. It is slightly verbose but well-organized and front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity, the description covers authentication, parameter usage, output format, and the value of municipality-level data. No obvious gaps remain.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description lists the parameters (year_from/year_to, lang, limit, offset) but adds little meaning beyond the input schema, which already has clear descriptions. With high schema coverage, baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool retrieves historical popular votes from the SRGSSR Polis system since 1900, with municipality-level granularity, distinguishing it from sibling tools like detail or election queries.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description highlights a specific use case (historical analysis at municipality level) and mentions authentication requirements, but does not explicitly state when not to use this tool or compare to alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable behavioral context: data updates on voting Sunday from 12:00 and the archive contains votes since 1981. This goes beyond what annotations offer, though it could mention any rate limits or data freshness guarantees.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise: two sentences plus a use_case tag and a returns line. It front-loads the core purpose and uses structured tags for additional context. Every sentence adds value without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given no input parameters, a rich set of annotations, and an existing output schema, the description is complete. It explains the tool's role in the workflow, data update timing, and archive coverage. The sibling list and annotations provide further context, leaving no critical gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    There are no parameters, so the input schema provides complete coverage. The description does not need to add parameter details, meeting the baseline score of 4 for zero-parameter tools.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool lists available federal voting dates from the BFS real-time web service and serves as an entry point for BFS data. It distinguishes itself from sibling tools by specifying it provides resource URLs for democracy_bfs_get_vote_results, and the sibling list includes other democracy tools that cover different data scopes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly identifies the tool as an entry point for BFS real-time/archive data and mentions it feeds into democracy_bfs_get_vote_results, giving clear context for when to use it. However, it does not explicitly differentiate from the sibling tool 'democracy_list_vote_dates', which appears to be a non-BFS variant. Without contrast, the agent may be uncertain which listing tool to choose.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate read-only, idempotent, non-destructive; description adds return field context and default limit, no contradictions.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Well-structured with sections (description, use case, filters, returns, args), concise and front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Covers all relevant aspects: filters, pagination, return fields (output schema present), no gaps given complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema has full descriptions for parameters; description briefly repeats them without adding significant new meaning beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool searches all federal popular votes since 1848, with use case and filter options, distinguishing it from siblings like democracy_get_vote_detail.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides a use case tag and lists filter criteria, but lacks explicit when-not-to-use or alternative sibling guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that data is updated continuously on voting Sunday and returns results per template, which provides useful behavioral context beyond annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise at about five sentences, well-structured with a use_case tag and clear sections. Every sentence adds value without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's moderate complexity (two parameters, output JSON schema available, annotations present), the description is complete: it explains the purpose, prerequisite, parameter semantics, and real-time behavior. No gaps remain for an agent to misuse the tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema fully describes both parameters with detailed descriptions (e.g., result_url has maxLength, minLength; level has enum values explained). The description does not need to add more, but the schema itself is comprehensive.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool fetches real-time or archive voting results from BFS. It specifies the use case and distinguishes from the sibling tool democracy_bfs_list_vote_dates by referencing its output as input.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description includes a use_case tag indicating when to use (election results at various levels, especially on voting Sunday). It mentions the prerequisite of using the URL from democracy_bfs_list_vote_dates. It does not explicitly list alternatives or when not to use, but the context is clear.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

swiss-democracy-mcp MCP server

Copy to your README.md:

Score Badge

swiss-democracy-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/malkreide/swiss-democracy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server