Skip to main content
Glama

Search Committee Evidence

committees_search_evidence
Read-onlyIdempotent

USE THIS TOOL WHEN retrieving committee evidence, especially for an identified inquiry.

Returns ONE PAGE of evidence (default 20) plus total, the source's count of matching items. evidence_type='both' lists all oral evidence first, then all written evidence, each newest-published first as the source orders it. Free-text titles are capped per max_title_chars; witness lists are capped at 10 per item. An organisation witness (no named individual) is rendered as ' ()'; a null entry means the source gave no name for that witness at all. For committees with many submissions, re-call with offset=offset+returned while has_more is true. For inquiry-specific research, first call committees_search_businesses and pass its exact committee_business_id; this filters at the authoritative source before pagination.

Source: UK Parliament Committees API oral and written evidence endpoints.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum evidence items to return. Default 20. For evidence_type='both' a page may hold only oral, only written, or the last oral items followed by the first written items.
offsetNoNumber of evidence items to skip before this page. Default 0. Re-call with offset=offset+returned while has_more is true. For evidence_type='both' this is a position in the combined sequence (all oral evidence, then all written evidence).
committee_idYesCommittee ID from committees_search_committees results.
published_toNoOptional inclusive source publication-date upper bound (YYYY-MM-DD). Applied upstream before pagination.
evidence_typeNoType of evidence to search.both
published_fromNoOptional inclusive source publication-date lower bound (YYYY-MM-DD). Applied upstream before pagination.
max_title_charsNoPer-item cap on the free-text title field. Default 300 prevents context blow-up from verbose inquiry titles. Raise to 1000+ only when you need the full title text.
committee_business_idNoExact official inquiry/business ID from committees_search_businesses. Applies the source filter before pagination; do not infer this from a title.

Output Schema

NameRequiredDescriptionDefault
limitYesMax evidence items requested for this page
totalYesEvidence items matching this query, from committees-api's totalResults (for evidence_type='both', the oral count plus the written count)
offsetYesNumber of evidence items skipped before this page
evidenceNoEvidence items in this page. Titles are capped per max_title_chars; witness lists are capped at 10 per item.
has_moreYesTrue if evidence exists beyond this page (offset + returned < total). Re-call with offset=offset+returned to fetch the next page.
returnedYesNumber of evidence items actually returned in this call
committee_idYesCommittee ID this page belongs to
evidence_typeYesEvidence type filter applied to this query

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • addedInput schema / properties / committee_business_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Exact official inquiry/business ID from committees_search_businesses. Applies the source filter before pagination; do not infer this from a title."
      +}
    • addedInput schema / properties / published_from
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional inclusive source publication-date lower bound (YYYY-MM-DD). Applied upstream before pagination."
      +}
    • addedInput schema / properties / published_to
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional inclusive source publication-date upper bound (YYYY-MM-DD). Applied upstream before pagination."
      +}
    • addedOutput schema / properties / evidence / items / properties / committee_businesses
      Added value: +{
      +  "description": "Source inquiry/business identities associated with this evidence item",
      +  "items": {
      +    "description": "Source-supplied parliamentary committee business or inquiry identity.",
      +    "properties": {
      +      "close_date": {
      +        "anyOf": [
      +          {
      +            "format": "date",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Source-supplied business closing date"
      +      },
      +      "id": {
      +        "description": "Official CommitteeBusiness ID; use as committee_business_id for exact evidence filtering",
      +        "type": "integer"
      +      },
      +      "is_inquiry": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Source-supplied type flag; null when absent"
      +      },
      +      "latest_report": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Source-supplied latest-report metadata, unmodified when present"
      +      },
      +      "open_date": {
      +        "anyOf": [
      +          {
      +            "format": "date",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Source-supplied business opening date"
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Source-supplied business status where present"
      +      },
      +      "title": {
      +        "description": "Source-supplied inquiry or business title",
      +        "type": "string"
      +      },
      +      "type": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Source-supplied business type name, e.g. Inquiry"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "title"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / evidence / items / properties / date / description
      Previous value: -"Date the evidence was given or submitted"New value: +"Compatibility date: oral meeting_date when present, otherwise publication_date; use the source-specific fields for research"
    • addedOutput schema / properties / evidence / items / properties / document
      Added value: +{
      +  "anyOf": [
      +    {
      +      "properties": {
      +        "document_id": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null,
      +          "description": "Source document ID"
      +        },
      +        "files": {
      +          "description": "Source-supplied document file metadata",
      +          "items": {
      +            "properties": {
      +              "file_name": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Source-supplied document filename"
      +              },
      +              "format": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Source-supplied document file format"
      +              },
      +              "size_bytes": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Source-supplied document file size in bytes"
      +              },
      +              "url": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null,
      +                "description": "Source-supplied file URL; null means the source supplied no direct URL"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source document metadata; null when no document is supplied"
      +}
    • addedOutput schema / properties / evidence / items / properties / hc_number
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source HC paper number where supplied"
      +}
    • addedOutput schema / properties / evidence / items / properties / internal_reference
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source internal submission reference, usually for written evidence"
      +}
    • addedOutput schema / properties / evidence / items / properties / legacy_html_url
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source legacy HTML URL where supplied"
      +}
    • addedOutput schema / properties / evidence / items / properties / legacy_pdf_url
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source legacy PDF URL where supplied"
      +}
    • addedOutput schema / properties / evidence / items / properties / meeting_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source oral-evidence meeting date; null for written evidence or absent source data"
      +}
    • addedOutput schema / properties / evidence / items / properties / publication_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source publication date; null only when the upstream record omits it"
      +}
    • addedOutput schema / properties / evidence / items / properties / session
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Source parliamentary session description where supplied"
      +}
  2. Changed7 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum evidence items to return. Default 20. When evidence_type='both' the limit is split across oral and written (roughly half each)."New value: +"Maximum evidence items to return. Default 20. For evidence_type='both' a page may hold only oral, only written, or the last oral items followed by the first written items."
    • changedInput schema / properties / offset / description
      Previous value: -"Number of evidence items to skip before this page. Default 0. Re-call with offset=offset+returned while has_more is true."New value: +"Number of evidence items to skip before this page. Default 0. Re-call with offset=offset+returned while has_more is true. For evidence_type='both' this is a position in the combined sequence (all oral evidence, then all written evidence)."
    • changedInput schema / properties / offset / maximum
      Previous value: -2000New value: +2147483647
    • changedOutput schema / description
      Previous value: -"A page of evidence submissions to a parliamentary committee.\n\nReturned by committees_search_evidence. Callers paginate by\nre-calling with offset=offset+returned while has_more is True.\nWhen evidence_type=\"both\", oral and written evidence are\ninterleaved in a single `evidence` list and the limit is split\nacross both."New value: +"A page of evidence submissions to a parliamentary committee.\n\nReturned by committees_search_evidence. Callers paginate by\nre-calling with offset=offset+returned while has_more is True.\nWhen evidence_type=\"both\", the sequence being paged is all oral\nevidence followed by all written evidence."
    • changedOutput schema / properties / has_more / description
      Previous value: -"True if there may be more evidence beyond this page. Re-call with offset=offset+returned to fetch the next page. Conservative: when evidence_type='both', True if either oral or written upstream page came back full."New value: +"True if evidence exists beyond this page (offset + returned < total). Re-call with offset=offset+returned to fetch the next page."
    • addedOutput schema / properties / total
      Added value: +{
      +  "description": "Evidence items matching this query, from committees-api's totalResults (for evidence_type='both', the oral count plus the written count)",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "committee_id",
      -  "evidence_type",
      -  "offset",
      -  "limit",
      -  "returned",
      -  "has_more"
      -]New value: +[
      +  "committee_id",
      +  "evidence_type",
      +  "offset",
      +  "limit",
      +  "returned",
      +  "total",
      +  "has_more"
      +]
  3. Changed2 schema fields changed
    • changedOutput schema / properties / evidence / items / properties / witnesses / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / evidence / items / properties / witnesses / description
      Previous value: -"Witness names (oral evidence only, capped at 10 per item)"New value: +"Witness display names (oral evidence only, capped at 10 per item). An organisation witness (e.g. a regulator or company giving evidence collectively, not through one named individual) has no personal name upstream — that entry is rendered as '<Organisation> (<Role>)' instead, e.g. 'Bank of England (Governor)'. A null entry means committees-api.parliament.uk supplied neither a personal name nor an organisation for that witness slot — honest absence, not a fabricated placeholder; it is not omitted from the list, so the count of entries still matches the number of witnesses upstream."
  4. Changed7 schema fields changed
    • addedInput schema / properties / committee_id
      Added value: +{
      +  "description": "Committee ID from committees_search_committees results.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / evidence_type
      Added value: +{
      +  "default": "both",
      +  "description": "Type of evidence to search.",
      +  "enum": [
      +    "oral",
      +    "written",
      +    "both"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 20,
      +  "description": "Maximum evidence items to return. Default 20. When evidence_type='both' the limit is split across oral and written (roughly half each).",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / max_title_chars
      Added value: +{
      +  "default": 300,
      +  "description": "Per-item cap on the free-text title field. Default 300 prevents context blow-up from verbose inquiry titles. Raise to 1000+ only when you need the full title text.",
      +  "maximum": 2000,
      +  "minimum": 50,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Number of evidence items to skip before this page. Default 0. Re-call with offset=offset+returned while has_more is true.",
      +  "maximum": 2000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • removedInput schema / properties / params
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "CommitteeEvidenceInput.",
      -  "properties": {
      -    "committee_id": {
      -      "description": "Committee ID from committees_search_committees results.",
      -      "minimum": 1,
      -      "type": "integer"
      -    },
      -    "evidence_type": {
      -      "default": "both",
      -      "description": "Type of evidence to search.",
      -      "enum": [
      -        "oral",
      -        "written",
      -        "both"
      -      ],
      -      "type": "string"
      -    },
      -    "limit": {
      -      "default": 20,
      -      "description": "Maximum evidence items to return. Default 20. When evidence_type='both' the limit is split across oral and written (roughly half each).",
      -      "maximum": 100,
      -      "minimum": 1,
      -      "type": "integer"
      -    },
      -    "max_title_chars": {
      -      "default": 300,
      -      "description": "Per-item cap on the free-text title field. Default 300 prevents context blow-up from verbose inquiry titles. Raise to 1000+ only when you need the full title text.",
      -      "maximum": 2000,
      -      "minimum": 50,
      -      "type": "integer"
      -    },
      -    "offset": {
      -      "default": 0,
      -      "description": "Number of evidence items to skip before this page. Default 0. Re-call with offset=offset+returned while has_more is true.",
      -      "maximum": 2000,
      -      "minimum": 0,
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "committee_id"
      -  ],
      -  "type": "object"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "params"
      -]New value: +[
      +  "committee_id"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / params / description
      Previous value: -"CommitteeEvidenceInput with committee_id, evidence_type,\noffset/limit pagination, and max_title_chars."New value: +"CommitteeEvidenceInput."
  6. Changed1 schema field changed
    • addedInput schema / properties / params / description
      Added value: +"CommitteeEvidenceInput with committee_id, evidence_type,\noffset/limit pagination, and max_title_chars."
  7. Changed14 schema fields changed
    • addedInput schema / properties / params / properties / limit
      Added value: +{
      +  "default": 20,
      +  "description": "Maximum evidence items to return. Default 20. When evidence_type='both' the limit is split across oral and written (roughly half each).",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / params / properties / max_title_chars
      Added value: +{
      +  "default": 300,
      +  "description": "Per-item cap on the free-text title field. Default 300 prevents context blow-up from verbose inquiry titles. Raise to 1000+ only when you need the full title text.",
      +  "maximum": 2000,
      +  "minimum": 50,
      +  "type": "integer"
      +}
    • addedInput schema / properties / params / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Number of evidence items to skip before this page. Default 0. Re-call with offset=offset+returned while has_more is true.",
      +  "maximum": 2000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedOutput schema / description
      Previous value: -"Generic wrapper for non-object return types."New value: +"A page of evidence submissions to a parliamentary committee.\n\nReturned by committees_search_evidence. Callers paginate by\nre-calling with offset=offset+returned while has_more is True.\nWhen evidence_type=\"both\", oral and written evidence are\ninterleaved in a single `evidence` list and the limit is split\nacross both."
    • addedOutput schema / properties / committee_id
      Added value: +{
      +  "description": "Committee ID this page belongs to",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / evidence
      Added value: +{
      +  "description": "Evidence items in this page. Titles are capped per max_title_chars; witness lists are capped at 10 per item.",
      +  "items": {
      +    "properties": {
      +      "date": {
      +        "anyOf": [
      +          {
      +            "format": "date",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Date the evidence was given or submitted"
      +      },
      +      "id": {
      +        "description": "Evidence item ID",
      +        "type": "integer"
      +      },
      +      "title": {
      +        "description": "Evidence title or session description (may be truncated per max_title_chars)",
      +        "type": "string"
      +      },
      +      "type": {
      +        "description": "Type of evidence",
      +        "enum": [
      +          "oral",
      +          "written"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "URL to the evidence document"
      +      },
      +      "witnesses": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Witness names (oral evidence only, capped at 10 per item)"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "type",
      +      "title"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / evidence_type
      Added value: +{
      +  "description": "Evidence type filter applied to this query",
      +  "enum": [
      +    "oral",
      +    "written",
      +    "both"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "True if there may be more evidence beyond this page. Re-call with offset=offset+returned to fetch the next page. Conservative: when evidence_type='both', True if either oral or written upstream page came back full.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / limit
      Added value: +{
      +  "description": "Max evidence items requested for this page",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "Number of evidence items skipped before this page",
      +  "type": "integer"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / returned
      Added value: +{
      +  "description": "Number of evidence items actually returned in this call",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "committee_id",
      +  "evidence_type",
      +  "offset",
      +  "limit",
      +  "returned",
      +  "has_more"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  8. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, but the description adds substantial behavioral detail beyond them: one-page default of 20, source ordering of oral-then-written evidence, title and witness caps, null-witness semantics, and the upstream-before-pagination filter behavior. This is exactly the context an agent needs to interpret pagination and output correctly.

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 front-loaded with the use case and then proceeds through pagination, ordering, formatting, and workflow in a logical sequence. It is dense but every sentence carries operational value; the only slight cost is that several distinct concerns are packed into one block without paragraph breaks.

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 an 8-parameter tool with an output schema and rich annotations, the description covers the remaining gaps: pagination mechanics (offset=offset+returned while has_more is true), source ordering, witness rendering, and how to obtain committee_business_id. Nothing needed to call it correctly appears to be 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 genuine meaning beyond the schema: evidence_type='both' ordering (all oral first, then written, each newest first), max_title_chars context-blow-up rationale, and witness-list capping. It does not re-explain every parameter (e.g., date range semantics are left largely to the schema), but it compensates well for the most consequential parameters.

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 and resource ('retrieving committee evidence') and scopes it to identified inquiries. It is clearly distinguishable from sibling tools like committees_search_businesses and committees_search_committees, which it references as upstream sources.

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 when to use it ('USE THIS TOOL WHEN retrieving committee evidence, especially for an identified inquiry') and names the alternative workflow: first call committees_search_businesses and pass its exact committee_business_id. It also tells the agent where committee_id comes from.

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.