Skip to main content
Glama

list_members

Read-onlyIdempotent

List filers with official identity (congressional filers carry their Bioguide ID; executive-branch filers return null with an explanation — identifiers are never invented). Filter by bioguide, by the exact member_id a disclosure row carries, or by a substring of the name as filed. A name search can match several filers; each result carries member_id and bioguide for an exact match.

Input Schema

NameRequiredDescriptionDefault
nameNoCase-insensitive substring of the filer's full name, e.g. pelosi
bioguideNoOfficial Bioguide ID, e.g. P000197
member_idNoExact filer identifier from a disclosure row, e.g. nancy-pelosi

Output Schema

NameRequiredDescriptionDefault
dataYes
cacheYes
countYes
noticeYes
versionYes
directoryYesWhich relation answered and how old it is. Present on every directory response so a reader never has to assume the age of what they were served.
served_atYes
identity_joinYes
paper_transcriptionsYesPaper queue visibility independent of the directory population and measurement timestamp. Completeness state describes the annual paper measurement, not roster coverage.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / version / const
      Previous value: -"1.19.2"New value: +"1.20.0"
  2. Changed1 schema field changed
    • changedOutput schema / properties / version / const
      Previous value: -"1.18.1"New value: +"1.19.2"
  3. Changed1 schema field changed
    • changedOutput schema / properties / version / const
      Previous value: -"1.18.0"New value: +"1.18.1"
  4. Changed5 schema fields changed
    • addedOutput schema / properties / data / items / properties / paper_transcriptions
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "This known filer's paper queue state from the independent paper measurement, without changing directory disclosure counts.",
      +  "properties": {
      +    "known_pending_documents": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Observed outstanding queue records for this member, including unreconciled records; null when coverage is unavailable, and never a count of the uninspected population."
      +    },
      +    "measured_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete."
      +    },
      +    "member_id": {
      +      "description": "Canonical member identifier requested by the member surface.",
      +      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +      "type": "string"
      +    },
      +    "paper_rows_reason": {
      +      "const": "not_transcribed",
      +      "description": "Why the member's remaining transaction-row count is unavailable.",
      +      "type": "string"
      +    },
      +    "paper_rows_remaining": {
      +      "description": "Unknown transaction rows remaining for this member; never estimated.",
      +      "type": "null"
      +    },
      +    "pending": {
      +      "description": "Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete.",
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "An outstanding PTR requiring verified transcription, with its official receipt, first terminal-outcome time and queue diagnosis. Parser failures do not attest paper.",
      +        "properties": {
      +          "active_followers": {
      +            "anyOf": [
      +              {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured."
      +          },
      +          "doc_id": {
      +            "description": "House Clerk PTR document identifier.",
      +            "pattern": "^\\d+$",
      +            "type": "string"
      +          },
      +          "filing_date": {
      +            "description": "Filing date printed in the retained Clerk annual index, YYYY-MM-DD.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "member": {
      +            "description": "Member name from retained Clerk filing metadata.",
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "member_id": {
      +            "description": "Member route identifier, resolved through the existing member alias registry when available.",
      +            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +            "type": "string"
      +          },
      +          "paper_rows": {
      +            "description": "Unknown transaction-row count. PDF page counts and external trade counts are not substitutes.",
      +            "type": "null"
      +          },
      +          "paper_rows_reason": {
      +            "const": "not_transcribed",
      +            "description": "Why no transaction-row count is available.",
      +            "type": "string"
      +          },
      +          "queue_status": {
      +            "description": "Outstanding transcription work or a retained terminal transcription failure.",
      +            "enum": [
      +              "pending_transcription",
      +              "failed_terminal"
      +            ],
      +            "type": "string"
      +          },
      +          "reason": {
      +            "description": "Named terminal queue diagnosis, or null when none is recorded.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "receipt_url": {
      +            "description": "Official Clerk PDF URL matching this DocID.",
      +            "type": "string"
      +          },
      +          "since": {
      +            "description": "First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay.",
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +            "type": "string"
      +          },
      +          "since_basis": {
      +            "description": "Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text.",
      +            "enum": [
      +              "first_verified_no_text_inspection",
      +              "first_terminal_document_outcome"
      +            ],
      +            "type": "string"
      +          },
      +          "state": {
      +            "const": "pending_transcription",
      +            "description": "The filing has no completed verified transcription recorded in this queue.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "doc_id",
      +          "member",
      +          "member_id",
      +          "filing_date",
      +          "receipt_url",
      +          "state",
      +          "queue_status",
      +          "since",
      +          "since_basis",
      +          "reason",
      +          "paper_rows",
      +          "paper_rows_reason",
      +          "active_followers"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "pending_documents": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Member's total outstanding queue filings only when the full annual population is measured; otherwise null."
      +    },
      +    "pending_documents_reason": {
      +      "description": "Reason the member total is unknown, inherited from the same coverage measurement.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "state": {
      +      "anyOf": [
      +        {
      +          "const": "pending_transcription",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim."
      +    }
      +  },
      +  "required": [
      +    "member_id",
      +    "measured_at",
      +    "state",
      +    "pending_documents",
      +    "known_pending_documents",
      +    "pending_documents_reason",
      +    "paper_rows_remaining",
      +    "paper_rows_reason",
      +    "pending"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / data / items / required
      Previous value: -[
      -  "member_id",
      -  "identity",
      -  "full_name",
      -  "chamber",
      -  "party",
      -  "state",
      -  "district",
      -  "coverage"
      -]New value: +[
      +  "member_id",
      +  "identity",
      +  "full_name",
      +  "chamber",
      +  "party",
      +  "state",
      +  "district",
      +  "coverage",
      +  "paper_transcriptions"
      +]
    • addedOutput schema / properties / paper_transcriptions
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Paper queue visibility independent of the directory population and measurement timestamp. Completeness state describes the annual paper measurement, not roster coverage.",
      +  "properties": {
      +    "archive_year": {
      +      "description": "Clerk annual filing-index year being reconciled.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "by_member": {
      +      "description": "Observed paper filers matching the declared filter scope, including filers absent from the legacy roster when metadata supports matching. Does not add roster rows or alter directory counts.",
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "Member projection of the shared House paper coverage measurement.",
      +        "properties": {
      +          "known_pending_documents": {
      +            "anyOf": [
      +              {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Observed outstanding queue records for this member, including unreconciled records; null when coverage is unavailable, and never a count of the uninspected population."
      +          },
      +          "measured_at": {
      +            "anyOf": [
      +              {
      +                "format": "date-time",
      +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Timestamp inherited from the same coverage/counts RPC, canonical UTC Z; null when the read could not complete."
      +          },
      +          "member_id": {
      +            "description": "Canonical member identifier requested by the member surface.",
      +            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +            "type": "string"
      +          },
      +          "paper_rows_reason": {
      +            "const": "not_transcribed",
      +            "description": "Why the member's remaining transaction-row count is unavailable.",
      +            "type": "string"
      +          },
      +          "paper_rows_remaining": {
      +            "description": "Unknown transaction rows remaining for this member; never estimated.",
      +            "type": "null"
      +          },
      +          "pending": {
      +            "description": "Observed pending and terminal paper-queue filings for this member, including records whose index reconciliation is incomplete.",
      +            "items": {
      +              "additionalProperties": false,
      +              "description": "An outstanding PTR requiring verified transcription, with its official receipt, first terminal-outcome time and queue diagnosis. Parser failures do not attest paper.",
      +              "properties": {
      +                "active_followers": {
      +                  "anyOf": [
      +                    {
      +                      "maximum": 9007199254740991,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Distinct active consented member subscribers across paid preferences and confirmed free follows; aggregate only, or null when not measured."
      +                },
      +                "doc_id": {
      +                  "description": "House Clerk PTR document identifier.",
      +                  "pattern": "^\\d+$",
      +                  "type": "string"
      +                },
      +                "filing_date": {
      +                  "description": "Filing date printed in the retained Clerk annual index, YYYY-MM-DD.",
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "member": {
      +                  "description": "Member name from retained Clerk filing metadata.",
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "member_id": {
      +                  "description": "Member route identifier, resolved through the existing member alias registry when available.",
      +                  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +                  "type": "string"
      +                },
      +                "paper_rows": {
      +                  "description": "Unknown transaction-row count. PDF page counts and external trade counts are not substitutes.",
      +                  "type": "null"
      +                },
      +                "paper_rows_reason": {
      +                  "const": "not_transcribed",
      +                  "description": "Why no transaction-row count is available.",
      +                  "type": "string"
      +                },
      +                "queue_status": {
      +                  "description": "Outstanding transcription work or a retained terminal transcription failure.",
      +                  "enum": [
      +                    "pending_transcription",
      +                    "failed_terminal"
      +                  ],
      +                  "type": "string"
      +                },
      +                "reason": {
      +                  "description": "Named terminal queue diagnosis, or null when none is recorded.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "receipt_url": {
      +                  "description": "Official Clerk PDF URL matching this DocID.",
      +                  "type": "string"
      +                },
      +                "since": {
      +                  "description": "First instrumented terminal document outcome, canonical UTC Z. This does not measure filing discovery delay.",
      +                  "format": "date-time",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +                  "type": "string"
      +                },
      +                "since_basis": {
      +                  "description": "Evidence defining the since timestamp; it is never backdated to the filing date. Parser failures do not attest absence of text.",
      +                  "enum": [
      +                    "first_verified_no_text_inspection",
      +                    "first_terminal_document_outcome"
      +                  ],
      +                  "type": "string"
      +                },
      +                "state": {
      +                  "const": "pending_transcription",
      +                  "description": "The filing has no completed verified transcription recorded in this queue.",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "doc_id",
      +                "member",
      +                "member_id",
      +                "filing_date",
      +                "receipt_url",
      +                "state",
      +                "queue_status",
      +                "since",
      +                "since_basis",
      +                "reason",
      +                "paper_rows",
      +                "paper_rows_reason",
      +                "active_followers"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "pending_documents": {
      +            "anyOf": [
      +              {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Member's total outstanding queue filings only when the full annual population is measured; otherwise null."
      +          },
      +          "pending_documents_reason": {
      +            "description": "Reason the member total is unknown, inherited from the same coverage measurement.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "state": {
      +            "anyOf": [
      +              {
      +                "const": "pending_transcription",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Pending transcription when at least one observed outstanding queue document exists; otherwise null, not a completeness claim."
      +          }
      +        },
      +        "required": [
      +          "member_id",
      +          "measured_at",
      +          "state",
      +          "pending_documents",
      +          "known_pending_documents",
      +          "pending_documents_reason",
      +          "paper_rows_remaining",
      +          "paper_rows_reason",
      +          "pending"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "filter_coverage": {
      +      "description": "Paper metadata supports exact member, name and House chamber filters. State or Bioguide filters can only admit members proven by directory records in this response; their paper-only matches remain unknown.",
      +      "enum": [
      +        "paper_metadata",
      +        "directory_response_only"
      +      ],
      +      "type": "string"
      +    },
      +    "filter_reason": {
      +      "description": "Named limitation when directory identity is needed to evaluate filters, otherwise null. An empty restricted list is not proof that no matching paper filings exist.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "filters": {
      +      "additionalProperties": false,
      +      "description": "Member filters applied to the independent paper list; directory cursor and limit do not paginate this list.",
      +      "properties": {
      +        "bioguide": {
      +          "description": "Requested Bioguide; requires a matching known directory record and is never invented for pending-only filers.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "chamber": {
      +          "description": "Requested chamber; this paper queue contains House documents only.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "member_id": {
      +          "description": "Exact canonical member filter, or null for all matching members.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "name": {
      +          "description": "Literal case-insensitive substring applied to retained paper member names, not a wildcard.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "state": {
      +          "description": "Requested state; requires a matching known directory record and is not inferred from a member name.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "member_id",
      +        "name",
      +        "chamber",
      +        "state",
      +        "bioguide"
      +      ],
      +      "type": "object"
      +    },
      +    "measured_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Database transaction timestamp from the same RPC statement as these counts, canonical UTC Z; null when the read could not complete."
      +    },
      +    "reason": {
      +      "description": "Named reason for incomplete or unavailable measurement; null only when reconciled.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "state": {
      +      "description": "Whether the retained annual index and complete PDF inspection population reconcile, remain incomplete, or cannot be read.",
      +      "enum": [
      +        "measured",
      +        "incomplete",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "state",
      +    "reason",
      +    "archive_year",
      +    "measured_at",
      +    "filters",
      +    "filter_coverage",
      +    "filter_reason",
      +    "by_member"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / version / const
      Previous value: -"1.17.0"New value: +"1.18.0"
    • changedOutput schema / required
      Previous value: -[
      -  "data",
      -  "count",
      -  "identity_join",
      -  "served_at",
      -  "directory",
      -  "cache",
      -  "version",
      -  "notice"
      -]New value: +[
      +  "data",
      +  "paper_transcriptions",
      +  "count",
      +  "identity_join",
      +  "served_at",
      +  "directory",
      +  "cache",
      +  "version",
      +  "notice"
      +]
  5. Changed1 schema field changed
    • changedOutput schema / properties / version / const
      Previous value: -"1.16.0"New value: +"1.17.0"
  6. Changed1 schema field changed
    • changedOutput schema / properties / version / const
      Previous value: -"1.15.0"New value: +"1.16.0"
  7. Changed1 schema field changed
    • changedOutput schema / properties / version / const
      Previous value: -"1.14.0"New value: +"1.15.0"
  8. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safe read-only, idempotent profile, yet the description adds real behavioral context: congressional filers carry a Bioguide ID, executive-branch filers return null with an explanation, and identifiers are never fabricated. That is meaningful beyond the annotations, though it stops short of describing pagination or result ordering.

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?

Three dense sentences with the identity-resolution behavior front-loaded and no filler. The first sentence is somewhat overloaded with the parenthetical, but every clause carries information an agent needs.

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?

With an output schema present and annotations covering the safety profile, the description only needs to supply edge-case behavior — which it does via the null-return explanation for executive-branch filers and the multi-match warning. Nothing an agent needs to call it correctly 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 cross-tool provenance semantics: member_id is the exact identifier a disclosure row carries and name is a substring 'as filed'. This contextualizes the params beyond the schema's terse examples.

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?

States a concrete verb+resource: list filers and resolve their official identity. The parenthetical about Bioguide IDs for congressional vs null for executive-branch filers makes the scope precise. It never names a sibling, so differentiation from get_disclosure_history or search_disclosures is only implicit.

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?

Explicitly gives three filter modes (bioguide, exact member_id, name substring) and warns that a name search can match several filers, then points to member_id/bioguide for an exact match. Missing is any statement of when to call this versus the sibling disclosure tools.

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.

Resources