Skip to main content
Glama

canada-parliament-mcp-server

Canparl List Reference

canparl_list_reference
Read-onlyIdempotent

List canonical session coverage and bill, division, and caucus vocabulary. Use source-specific terms when constructing filters. Omitted session means the verified current session for vocabulary. For topic sessions omit session; the entire global index is returned. Topic parties covers the current session only: its entries come from the current House roster, so a past division's caucuses come from canparl_get_vote byParty.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "topic": "<topic>"
    },
    "name": "canparl_list_reference"
  }
}

Input Schema

NameRequiredDescriptionDefault
topicYesReference topic used to construct source-specific filters.
sessionNoSession for session-dependent vocabulary; omitted means current. Omit it for topic sessions; topic parties accepts only the current session.

Output Schema

NameRequiredDescriptionDefault
capNoComplete reference entry count; no display cap is imposed.
errorNoPresent when the call failed. Absent on success.
shownNoAll returned reference entries.
topicNoReference topic used to construct source-specific filters.
noticeNoCatalog-only or historical coverage guidance.
entriesNoComplete bounded reference vocabulary or real session union.
sessionNoSelected session, or null for the global session index.
truncatedNoAlways false: the entire vocabulary is returned.
provenanceNoSource retrieval metadata.
totalCountNoExact number of reference entries.
appliedFiltersNoResolved reference scope.
currentSessionNoCurrent session verified from the official default bill feed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / session / anyOf
      Previous value: -[
      -  {
      -    "description": "Parliament-session token, such as 45-1.",
      -    "pattern": "^\\d+-\\d+$",
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Parliament and session numbers.",
      -    "properties": {
      -      "parliament": {
      -        "description": "Positive parliament number.",
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      },
      -      "session": {
      -        "description": "Positive session number.",
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "parliament",
      -      "session"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "description": "Parliament-session token, such as 45-1.",
      +    "pattern": "^\\s*(?:[0-9]+-[0-9]+\\s*)?$",
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Parliament and session numbers.",
      +    "properties": {
      +      "parliament": {
      +        "description": "Positive parliament number.",
      +        "exclusiveMinimum": 0,
      +        "maximum": 9007199254740991,
      +        "type": "integer"
      +      },
      +      "session": {
      +        "description": "Positive session number.",
      +        "exclusiveMinimum": 0,
      +        "maximum": 9007199254740991,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "parliament",
      +      "session"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / session / description
      Previous value: -"Parliamentary session; omitted means current."New value: +"Session for session-dependent vocabulary; omitted means current. Omit it for topic sessions; topic parties accepts only the current session."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `unknown_reference_session`: Session malformed or absent from the topic-relevant source index. `incompatible_reference_session`: A session is supplied for the global sessions topic. `upstream_blocked`: An official parliamentary source refuses the request with HTTP 403. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `unknown_reference_session`: Session with a zero or out-of-range number, or absent from the topic-relevant source index. `incompatible_reference_session`: A session is supplied for the global sessions topic, or a session other than the current one for the parties topic, whose entries describe the current House roster. `upstream_blocked`: An official parliamentary source refuses the request with HTTP 403. Other values are possible when a failure originates below the handler."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description adds real behavioral context: omitted session resolves to the verified current session, topic sessions ignore session and return the global index, and topic parties is roster-limited to the current session. Only the exact return shape is undisclosed, which the output schema covers.

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?

Front-loaded with the purpose, then the session rules and the fallback routing. Dense and mostly justified, though the sentence about parties reads as a run-on and could be split for clarity.

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 annotations, a full schema, and an output schema, the description supplies the topic-specific session rules that the schema does not encode, which is what an agent needs to call it correctly. 'Session coverage' could be stated more concretely, but nothing essential is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: omitting session means the current session for session-dependent vocabulary, session must be omitted for topic sessions, and parties accepts only the current session. This materially disambiguates how to set the session parameter.

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?

States a specific verb (List) and resource (canonical session coverage plus bill/division/caucus vocabulary), making clear this is a vocabulary-lookup tool distinct from the get_/search_ siblings. An agent can tell it returns enumerated terms for constructing filters rather than records.

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

Usage Guidelines5/5

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

Explicitly says to use source-specific terms when constructing filters, specifies session omission semantics for each topic, and routes the agent to canparl_get_vote byParty for past-division caucuses. When-to-use and the cross-tool alternative are both spelled out.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.