reading-room
Server Details
Search the U.S. Senate's subpoenaed COVID-19 records: 18,094 communications, each page-cited.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 7 of 7 tools scored.
fetch, get_concept, and get_record have overlapping retrieval capabilities; fetch accepts both doc_ids and concept ids, making the specialized getters redundant for basic retrieval. search and search_records both search communications, with only subtle differences in search mode, so agents could easily misselect.
Most tools use lowercase snake_case, but there is a mix of verbs: 'fetch' vs. 'get_' and bare 'search' vs. the prefixed search_* variants. While the pattern is readable, the inconsistency is noticeable.
Seven tools cover the server's scope of searching and retrieving records, concepts, and raw pages without redundancy or bloat. The count feels well-sized for a specialized reading room.
The tool surface covers search and retrieval across records, concepts, and pages, which is strong for a read-only repository. A minor gap is the lack of a direct 'get_page' tool: search_pages returns matches but does not offer full page retrieval, though fetch may partially address this.
Available Tools
7 toolsfetchFetch one documentAInspect
Retrieve the full text of one item by id. Accepts a doc_id from search (fauci_diary:entry:00026) and also an OKF concept id (anthony-s-fauci), so a person, organization or topic document can be read the same way. Every response carries the citation to the page of the Committee's PDF it came from.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A doc_id from search, or a concept id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully notes that the response includes a citation to the PDF page and clarifies accepted ID forms, but it does not explicitly mention read-only behavior, error handling, or what happens if the id is not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary action, and every sentence adds value: retrieval purpose, accepted ID types with examples, and a key response trait. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter fetch tool with no output schema and no annotations, the description is quite complete. It explains what the tool does, what inputs are valid, and one important return property (citation). It only lacks details on failure modes and full response shape, but these are less critical for a basic read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'id' parameter at 100% coverage, but the tool description adds concrete examples (fauci_diary:entry:00026, anthony-s-fauci) and clarifies that concept IDs are also acceptable. This materially enhances understanding of the parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the primary action ('Retrieve the full text of one item by id'), specifying both the resource and scope. It distinguishes from search by focusing on single-item retrieval, though it does not explicitly contrast with sibling tools like get_concept or get_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use the tool: after a search, accepting either a doc_id or a concept id. It does not name alternatives or exclusions, but the explanation of accepted input types effectively guides selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conceptRead one concept in fullAInspect
Fetch a concept document from the OKF bundle — frontmatter and body — with every cross-link rewritten to an absolute URL, so the bundle can be traversed from what this returns. A person carries activity, correspondents, organization and a chronological statement timeline; a topic carries its principal voices; a source carries provenance and SHA-256. Accepts a slug (anthony-s-fauci), a bundle path (people/anthony-s-fauci.md), a person_id from the site or JSON API (anthony_s_fauci), or a display name (Anthony S. Fauci).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Slug, bundle path, site person_id or display name. | |
| type | No | Disambiguates when the same name exists in two collections. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses key behavior: returns frontmatter and body, rewrites cross-links to absolute URLs, and describes type-specific payloads. The verb 'Fetch' implies read-only, but it doesn't explicitly state non-modification or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the main action. The second and third sentences provide valuable details on output and accepted formats, but could be slightly trimmed. Every sentence earns its place without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully explains return content (frontmatter, body, type-specific fields), the link rewriting, and accepted input formats. This gives an agent enough context to invoke the tool correctly and understand its results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds concrete examples for the id parameter (slug, bundle path, person_id, display name), which is helpful but not essential beyond the schema. It does not add meaning to the type parameter beyond the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a concept document from the OKF bundle, with cross-links rewritten to absolute URLs. The title 'Read one concept in full' aligns, and the resource 'concept' distinguishes it from sibling tools like get_record or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the purpose ('so the bundle can be traversed') and details accepted ID formats, implying when to use it. However, it does not explicitly mention alternatives or when not to use it, missing full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordFetch one recordAInspect
Retrieve a single communication in full by doc_id, with its citation, participants and neighbouring messages where it sits in a conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Identifier from search_records, e.g. fauci_diary:entry:00026 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It does disclose that the tool returns a full record with citation, participants, and surrounding conversation context, which is helpful. However, it does not mention potential limitations (e.g., whether the return is truncated), ordering of neighbouring messages, or any side effects, leaving some ambiguity for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the primary action and key details, with no filler or repetition. It is front-loaded and efficiently communicates the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description provides sufficient context about what is returned (citation, participants, neighbouring messages). It does not explain the exact output format or ordering, but given the low complexity and the absence of an output schema, it covers the core expectations well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the doc_id parameter description already includes a specific example and origin (from search_records). The tool description adds minimal extra meaning beyond confirming that doc_id identifies the record; it does not introduce new parameter-related details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving a single communication in full by doc_id. It specifies the resource type (communication), the lookup key (doc_id), and what is included (citation, participants, neighbouring messages), effectively distinguishing it from siblings like search_records and fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: you should have a doc_id from search_records. However, the description does not explicitly contrast this tool with alternatives like fetch or state when not to use it. The schema hint about the identifier origin provides some guidance but the description itself lacks explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch the corpusAInspect
Search 18,094 communications from the U.S. Senate HSGAC COVID-19 releases. Returns id, title, excerpt and URL for each match; pass an id to fetch for the full text. This is the standard search contract — search_records offers keyword mode for exact strings and control over quoted material, and search_pages searches the raw OCR text, which is what settles whether something is absent from the corpus.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A question or phrase. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses return fields (id, title, excerpt, URL) and mentions fetching full text via an id. The read-only nature is implied, but the ambiguity of 'pass an id to fetch' (whether it refers to this tool or sibling) and the absence of any limits/error behavior keep it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences that front-load the purpose and return structure, then provide crucial sibling differentiation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter search tool, the description adequately covers corpus scope, output fields, full-text access, and alternative tools. It lacks explicit mention of pagination or result limits, but given the simplicity and the absence of an output schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes 'query' as 'A question or phrase' (100% coverage), so the baseline is 3. The description adds contextual contrast with keyword mode and suggests query semantics, but it does not provide explicit syntax or clarify the id-passing mechanism, so it remains at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Search 18,094 communications from the U.S. Senate HSGAC COVID-19 releases.' It clearly differentiates itself from siblings by calling itself 'the standard search contract' and contrasting with search_records and search_pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool versus alternatives: standard queries, search_records for keyword/exact-string mode, and search_pages for raw OCR text and absence checks. This gives clear, actionable guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_conceptsFind a person, organization, topic or packageAInspect
Search the analysis layer: one cross-linked document per person, organization, topic, released package, media outlet and substantial conversation, each carrying provenance back to the pages it derives from. Use this when the question is who someone is, what a topic covers, or what a package contains — rather than which records match a string, which is search_records. Matches names, aliases and descriptions; get_concept then returns one in full.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Restrict to one collection. Omit to search all of them. | |
| limit | No | Maximum concepts to return (default 20). | |
| query | Yes | A name, alias, organization or subject, e.g. 'Fauci', 'EcoHealth', 'gain of function'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears the burden. It explains the tool's behavior: searches cross-linked concepts with provenance, matches names/aliases/descriptions, and implies that get_concept returns full details. It doesn't detail the return format or explicitly state read-only, but for a search tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first defines the resource and scope, the second gives usage guidance and an alternative. Every sentence earns its place, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with three parameters and no output schema, the description provides enough context: what it searches, when to use it, which sibling to avoid, and where to get full results. The schema covers the parameter details, making this adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters (query, type, limit) with clear descriptions and examples, so the baseline is 3. The description adds only that it 'matches names, aliases and descriptions', which slightly enriches query semantics but doesn't materially extend parameter knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the analysis layer for conceptual entities (people, organizations, topics, packages, etc.), which is a specific resource and verb. It also distinguishes itself from search_records by contrasting semantic search with string-matching search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when the question is who someone is, what a topic covers, or what a package contains' and contrasts with search_records. It also points to get_concept for full retrieval, giving clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_pagesSearch the raw page textAInspect
Literal search over the OCR text of all 5,247 pages, before segmentation into records. This is the completeness layer: it reaches duplicate copies and pages no record covers, and matches across a whole page rather than within a chunk. Use it to settle whether a phrase appears in the corpus at all — a miss here is much stronger evidence of absence than a miss in search_records, though OCR error and page-spanning lines still make it imperfect.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum pages to return (default 20). | |
| query | Yes | Literal FTS query; wrap a phrase in double quotes for an exact match. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for transparency. It discloses the literal matching behavior, the pre-segmentation scope, and imperfections due to OCR and page-spanning lines. It does not mention permissions or rate limits, but for a read-only search tool this is less critical and the description adds meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: stating functionality, defining the tool's role as the completeness layer, and providing usage guidance with caveats. No filler or redundancy, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage context, limitations, and contrasts with siblings. However, it does not explicitly describe the return format (e.g., whether results include snippets or full page text). Given the absence of an output schema, adding a note about the response would make it complete. Still, the description is strong overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that the query is literal, matches across whole pages, and that a miss has stronger evidentiary value. It also frames the query as operating on OCR text, enriching the schema's description. This merits a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a literal search over the OCR text of all 5,247 pages, with a specific verb and resource. It distinguishes itself from sibling tools by positioning itself as the 'completeness layer' and contrasting with search_records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool ('to settle whether a phrase appears in the corpus at all') and compares it to search_records, noting that a miss here is stronger evidence of absence. It also mentions limitations (OCR error, page-spanning lines) that qualify the usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recordsSearch the recordAInspect
Find communications matching a question or phrase. Returns records with speaker, date, grade and a citation to the page of the Committee's PDF. Retrieval only: nothing is summarised, and a record's wording is the record's, not this server's.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | hybrid (default) fuses dense and keyword retrieval and is right for a question. keyword is literal FTS and is the only way to confirm an exact string: dense retrieval matches meaning, so it cannot prove a phrase is present or absent, and short administrative wording is what it handles worst. | |
| limit | No | Maximum records to return (default 20). | |
| query | Yes | A question, phrase or identifier such as a Bates number. In keyword mode, wrap a phrase in double quotes for an exact match. | |
| include_quoted | No | Default false. About 38% of statements are someone else's words and are hidden so they are not attributed to the speaker — but a quote circulating elsewhere is often exactly that, so set this true when verifying one. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It clearly states 'Retrieval only: nothing is summarised, and a record's wording is the record's, not this server's,' which discloses the non-mutating, non-rephrasing nature of the operation. It also mentions the return fields, adding useful context beyond basic search behavior. It does not cover auth or rate limits, but for a retrieval tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and the second sentence adds essential behavioral context about retrieval-only processing. No redundant language or filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with four well-documented parameters and no output schema, the description adequately communicates the core purpose, return shape (speaker, date, grade, citation), and a key behavioral caveat (retrieval only, no summarization). It lacks an explicit note about pagination or result ordering, but those are not critical for basic invocation. The absence of output schema is mitigated by describing the return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all four parameters, so the schema already explains mode, limit, query, and include_quoted in detail. The tool description adds no parameter-specific information beyond what the schema provides (e.g., it does not mention the effect of mode or include_quoted). Therefore the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Find communications matching a question or phrase.' It specifies the resource type ('communications'/'records') and details what is returned ('speaker, date, grade and a citation'). This distinguishes it from sibling tools like search_pages or search_concepts by focusing on records/communications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying 'Find communications matching a question or phrase,' but it does not explicitly contrast with sibling tools like search_pages or search_concepts. There is no 'when to use this vs. that' guidance. The schema provides parameter-level guidance (e.g., mode), but tool-level alternatives are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceFull-text search and retrieval over official congressional documents (hearings, committee reports, Congressional Record) with citations and govinfo.gov links, designed for grounding AI answers in the official record.Last updated60MIT

committee-releasesofficial
Alicense-qualityCmaintenanceEnables searching and retrieving documents that congressional committees publish on their own websites, including press releases, oversight letters, staff reports, and interview transcripts, with no authentication required.Last updated65MIT
Reletterofficial
AlicenseAqualityCmaintenanceSearch 7M+ newsletters and full-text archives, with subscriber numbers, contacts, social accounts, rankings, and audience data.Last updated12MIT- Alicense-qualityBmaintenanceSearches medical literature, clinical trials, drug labels, and adverse-event reports via official public APIs, returning structured records with source URLs and timestamps.Last updatedMIT