Skip to main content
Glama

Server Details

Dated, verified API breakages for coding agents, plus a local scan for them in your existing code.

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
GetFootgun/footgun
GitHub Stars
0
Server Listing
footgun
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 4 tools

Disambiguation4/5

lookup_traps and search_traps both retrieve traps and could be confused, but the descriptions explicitly state the trigger for each (before writing code vs. after an error), which mostly resolves the overlap. confirm_trap and file_trap are clearly distinct write/feedback operations.

Naming Consistency4/5

All four tools follow a verb_noun pattern (confirm_trap, file_trap, lookup_traps, search_traps). The only blemish is singular 'trap' in the write tools versus plural 'traps' in the read tools.

Tool Count4/5

Four tools is lean but well matched to a narrow domain: two read paths, one write, one feedback. Each tool earns its place, though the surface is close to the thin side.

Completeness3/5

Read (lookup/search), create (file), and vote (confirm) are covered, but there is no get-by-id to retrieve a specific trap after discovery, and no way to edit, withdraw, or retract a filed trap despite filing being framed as a 'draft'.

Available Tools

4 tools
confirm_trapConfirm or dispute a trapAInspect

After you hit or avoid a trap returned by lookup_traps or search_traps, record whether it is still true. Confirmations raise a trap's trust score and disputes lower it; several disputes send it back for review. One vote per trap per 30 days. Needs a free API key.

NameRequiredDescriptionDefault
trap_idYesThe trap id from a lookup or search result, e.g. "fg-0158".
hours_lostNoOptional hours the trap cost before the fix was found.
still_trueYestrue if the trap happened as described, false if it no longer happens.
version_seenNoOptional SDK, API or tool version where you saw it, e.g. "stripe-node 22.3.0".

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing consequences (confirmations raise trust score, disputes lower it, several disputes send a trap back for review), a rate limit (one vote per trap per 30 days), and an auth requirement (free API key). No contradiction with readOnlyHint=false/destructiveHint=false.

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

Conciseness5/5

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

Four short sentences, front-loaded with the trigger and action, then the consequences, then the limits. Nothing is padded or repeated from the schema.

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

Completeness4/5

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

With no output schema, the description covers the side effects an agent needs to expect (trust score movement, review escalation) and the auth/rate constraints. It does not say what the call returns or what happens when voting again inside the 30-day window, a minor gap for a mutation tool.

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

Parameters3/5

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

Schema coverage is 100%, so all four parameters are already documented, including the example format for trap_id and version_seen. The description only reinforces still_true via 'hit or avoid' and adds no syntax or format detail beyond the schema, so baseline 3 applies.

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?

Specific verb ('record whether it is still true') plus resource ('a trap returned by lookup_traps or search_traps'), with the effect named. It is clearly distinguishable from lookup_traps/search_traps, which only retrieve traps.

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

Usage Guidelines4/5

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

The trigger is explicit: use it after you hit or avoid a trap returned by lookup_traps or search_traps, and it names those siblings as the source of the trap_id. It does not state when NOT to use it, but the prerequisite and timing are unambiguous.

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

file_trapFile a new trapAInspect

Draft a trap after a failure was fixed. Private by default with a Pro or Team key. Public filings are checked automatically against official sources and published only when an official source confirms them. A reviewer can still act on any filing. Citing the provider's official documentation or changelog in sources helps. No API key needed. Set visibility to public to submit to the public registry.

NameRequiredDescriptionDefault
fixYesWhat to change, in plain words.
tagsNoOptional short keywords.
applyYesA short code or command example of the fix.
causeYesWhy it happens.
titleYesOne line naming what goes wrong, as a developer would search for it.
sourcesNoOfficial documentation or changelog URLs that confirm it.
affectedYesWhich versions, plans or dates are affected.
providerYesThe service, by slug or common name, e.g. "stripe".
symptomsYesExact error messages or observed behavior, one per item. Leave out secrets and personal data.
visibilityNopublic submits to the shared registry; private keeps it in your team's space (Pro or Team key).
surface_nameYesThe specific endpoint, package, command or screen, e.g. "webhooks.constructEvent".
surface_typeYesWhich kind of surface broke: api, sdk, ui, billing, infra, or tool (CLIs and AI coding tools).

TDQS

A3.8/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing defaults (private), the moderation pipeline for public filings, the fact that reviewers can still act on any filing, and key requirements. The auth statements are slightly muddled: "Private by default with a Pro or Team key" next to "No API key needed" requires the reader to infer that the latter applies only to public filings.

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

Conciseness3/5

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

The core action is front-loaded and there is no filler, but the definition is a string of six short clipped sentences and the key/auth sentences sit apart from each other, making the private-vs-public credential story harder to parse than necessary.

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

Completeness4/5

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

For a 12-parameter, 9-required write tool with no output schema, it covers when to file, the privacy model, the moderation outcome for public filings, and credential expectations. It leaves open what the call returns (draft identifier, filing status) and whether a draft can be edited or confirmed afterward via confirm_trap.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the schema, including visibility and sources. The description repeats visibility semantics and adds a soft recommendation to cite official docs in sources, but contributes no syntax, formatting, or length guidance beyond the schema.

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 specific verb and resource: "Draft a trap after a failure was fixed," which is clearly a create-new-entry action distinct from confirm_trap (act on existing) and lookup_traps/search_traps (read). It does not explicitly name those siblings, so differentiation is inferred rather than stated.

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?

Gives a clear trigger condition ("after a failure was fixed") and explains the private/public decision path, including that public submissions are checked against official sources before publishing. It stops short of naming when to use confirm_trap or search_traps instead.

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

lookup_trapsLook up traps for a providerA
Read-onlyIdempotent
Inspect

Call before writing code against a third-party API, platform, or AI tool. Returns up to 10 verified, dated failure modes for that provider, each with symptoms, cause, fix, a code example and the date it was last checked. Use search_traps instead when you already have an error message.

NameRequiredDescriptionDefault
contextNoOptional one-line description of the task, e.g. "verify webhook signatures in Next.js". Ranks the most relevant traps first.
surfaceNoOptional part of the service you are working on, e.g. "webhooks" or "image generation". Ranks matching traps first; never filters others out.
providerYesThe service, by slug or common name, e.g. "stripe", "supabase", "github-actions", "openai api".
include_staleNoAlso return traps not re-checked recently. Default false.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-open-world. The description adds substantive context: result cap of 10, curation/verification ('verified, dated'), the fields returned (symptoms, cause, fix, code example, last-checked date), and the existence of staleness handling. It does not say what happens when the provider is unknown or no traps match, which is the main remaining gap.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the trigger, then the return contract, then the sibling disambiguation. No filler or repetition of the title.

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

Completeness4/5

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

No output schema exists, and the description compensates by describing the returned fields and the 10-item cap, which is what an agent needs to consume results. Minor omission: no guidance on empty results or unknown provider slugs.

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

Parameters3/5

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

Schema description coverage is 100% and the four parameters are documented with examples and ranking behavior, so the schema does the heavy lifting. The description adds nothing parameter-specific (no mention of slug format, ranking, or include_stale), so baseline 3 applies.

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 ('look up traps for a provider') and immediately distinguishes itself from the sibling search_traps by input type (provider vs. error message). An agent can route between them without opening either schema.

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?

Gives an explicit trigger ('Call before writing code against a third-party API, platform, or AI tool') and names the alternative with its selecting condition ('Use search_traps instead when you already have an error message'). Both when-to-use and when-not-to-use are present.

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

search_trapsSearch traps by error textA
Read-onlyIdempotent
Inspect

Call when a call to a third-party service fails or behaves unexpectedly. Paste the error text. Returns up to 5 verified traps whose symptoms match it, closest first, each with cause and fix. Returns nothing when no trap matches closely. Use lookup_traps instead before writing code.

NameRequiredDescriptionDefault
providerNoOptional service slug or name to search within, e.g. "stripe". Omit to search every provider.
error_textYesThe error message or unexpected output, as shown. Known key and secret formats are redacted before matching.
include_staleNoAlso match traps not re-checked recently. Default false.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: a capped result count of 5, closest-first ordering, cause/fix payload shape, and the fact that an empty result is a normal outcome rather than an error. It stops short of noting cost or latency, so not 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.

Conciseness5/5

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

Four short sentences, front-loaded with the trigger, then the return contract, then the alternative. Every sentence carries distinct information and none restates the name or title.

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?

No output schema exists, yet the description fully covers the return shape, ordering, cap, and empty-result case, and it routes to the correct sibling. An agent has everything needed to decide to call it and interpret the response.

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

Parameters3/5

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

Schema description coverage is 100%, so error_text, provider, and include_stale are already documented with examples and defaults. The description adds only the matching intent ('whose symptoms match it'), which is helpful framing but not new per-parameter semantics. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource (search traps by error text) and describes exactly what comes back: up to 5 verified traps whose symptoms match, closest first, each with cause and fix. It also names the sibling lookup_traps, so an agent can distinguish it without opening either schema.

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?

Gives an explicit trigger (a third-party call fails or behaves unexpectedly), an explicit alternative for a different situation (use lookup_traps instead before writing code), and the no-match condition. The when/when-not routing is fully spelled out.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedconfirm_trap4 fields changed
      • addedInput schema / properties / hours_lost / description
        Added value: +"Optional hours the trap cost before the fix was found."
      • addedInput schema / properties / still_true / description
        Added value: +"true if the trap happened as described, false if it no longer happens."
      • addedInput schema / properties / trap_id / description
        Added value: +"The trap id from a lookup or search result, e.g. \"fg-0158\"."
      • addedInput schema / properties / version_seen / description
        Added value: +"Optional SDK, API or tool version where you saw it, e.g. \"stripe-node 22.3.0\"."
    • Changedfile_trap12 fields changed
      • addedInput schema / properties / affected / description
        Added value: +"Which versions, plans or dates are affected."
      • addedInput schema / properties / apply / description
        Added value: +"A short code or command example of the fix."
      • addedInput schema / properties / cause / description
        Added value: +"Why it happens."
      • addedInput schema / properties / fix / description
        Added value: +"What to change, in plain words."
      • addedInput schema / properties / provider / description
        Added value: +"The service, by slug or common name, e.g. \"stripe\"."
      • addedInput schema / properties / sources / description
        Added value: +"Official documentation or changelog URLs that confirm it."
      • addedInput schema / properties / surface_name / description
        Added value: +"The specific endpoint, package, command or screen, e.g. \"webhooks.constructEvent\"."
      • addedInput schema / properties / surface_type / description
        Added value: +"Which kind of surface broke: api, sdk, ui, billing, infra, or tool (CLIs and AI coding tools)."
      • addedInput schema / properties / symptoms / description
        Added value: +"Exact error messages or observed behavior, one per item. Leave out secrets and personal data."
      • addedInput schema / properties / tags / description
        Added value: +"Optional short keywords."
      • addedInput schema / properties / title / description
        Added value: +"One line naming what goes wrong, as a developer would search for it."
      • addedInput schema / properties / visibility / description
        Added value: +"public submits to the shared registry; private keeps it in your team's space (Pro or Team key)."
    • Changedlookup_traps4 fields changed
      • addedInput schema / properties / context / description
        Added value: +"Optional one-line description of the task, e.g. \"verify webhook signatures in Next.js\". Ranks the most relevant traps first."
      • addedInput schema / properties / include_stale / description
        Added value: +"Also return traps not re-checked recently. Default false."
      • addedInput schema / properties / provider / description
        Added value: +"The service, by slug or common name, e.g. \"stripe\", \"supabase\", \"github-actions\", \"openai api\"."
      • addedInput schema / properties / surface / description
        Added value: +"Optional part of the service you are working on, e.g. \"webhooks\" or \"image generation\". Ranks matching traps first; never filters others out."
    • Changedsearch_traps3 fields changed
      • addedInput schema / properties / error_text / description
        Added value: +"The error message or unexpected output, as shown. Known key and secret formats are redacted before matching."
      • addedInput schema / properties / include_stale / description
        Added value: +"Also match traps not re-checked recently. Default false."
      • addedInput schema / properties / provider / description
        Added value: +"Optional service slug or name to search within, e.g. \"stripe\". Omit to search every provider."
  2. 1 tool update
    • Changedfile_trap1 field changed
      • addedInput schema / properties / visibility
        Added value: +{
        +  "enum": [
        +    "private",
        +    "public"
        +  ],
        +  "type": "string"
        +}
  3. 4 tool updates
    • First observedconfirm_trap
    • First observedfile_trap
    • First observedlookup_traps
    • First observedsearch_traps

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Verified, dated facts for AI coding agents: what breaks between npm package versions (diffed from TypeScript types), per-version vulnerabilities, the newest version compatible with a given Node/Python/Rust/PHP, end-of-life dates of ~480 runtimes and frameworks, and AI model prices. Covers npm, PyPI, crates.io and Packagist.
    12
    1
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to query breaking API changes in dependencies since a model's training cutoff, retrieve project dependency change summaries, and look up model training cutoff dates.
    52 PyPI
    10
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Tells coding agents what changed in a Python library, in which release, and what replaces it. Answers locally and deterministically from static diffs of PyPI releases.
    5
    467 PyPI
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to identify exactly what broke between two dependency versions, with citations for every claim, and to verify package existence to catch typosquatting, all without requiring an API key.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.