landmine
Server Details
Known open GitHub issues in exact npm and PyPI versions, with workarounds, for coding agents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- devanshranjan10/landmines
- GitHub Stars
- 0
TDQS
Scored across 2 tools
landmine_check takes a code snippet and landmine_lookup takes package versions, so the input type is the main differentiator and the descriptions make it clear. There is still conceptual overlap — both answer 'what open issues affect these exact versions?' — so an agent with code in hand could plausibly pick either, but the boundary is workable.
Both tools follow the identical prefix_verb pattern (landmine_check, landmine_lookup), giving a clear, predictable namespace. No mixing of conventions.
Two tools is thin for the surface — there is exactly one operation per input type (code vs. dependency list). It is defensible for a narrow purpose, but there is no room for supporting operations like listing affected versions or fetching a single issue.
The two entry points cover the two realistic workflows: auditing existing code and vetting a dependency before adding or upgrading it, and results include evidence and workarounds. Minor gaps remain — no way to retrieve a specific issue or enumerate known-affected versions — but core workflows are covered.
Available Tools
2 toolslandmine_checkKnown bugs a code snippet touchesARead-onlyIdempotentInspect
Check a JS/TS or Python code snippet against the open GitHub issues filed against the exact package versions it runs on. Returns each issue the code touches (by the APIs it calls), with the evidence and the best workaround from the thread (untrusted third-party text).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code to check | |
| language | No | Language of the code (default: py when the packages are PyPI, else js) | |
| packages | Yes | The dependencies the code uses. Exact versions as your lockfile pins them: "next@16.4.0", "@tanstack/react-table@9.2.4", "pandas==2.3.1" (== means PyPI), or "pypi:requests@2.32.3". A bare name looks up the latest version. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds real context beyond that: it queries live open GitHub issues scoped to exact versions, returns evidence plus the thread's best workaround, and explicitly flags that workaround text is untrusted third-party content — a useful injection warning. It omits latency/cost or coverage caveats (e.g., issues not filed or closed issues), keeping it below 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?
Two sentences, front-loaded with the action and scope, followed by the return contract. No filler and nothing repeated from the schema or annotations.
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?
There is no output schema, so the description carries the return contract and does so well: matched issues, evidence, and workaround, with the trust caveat. It could still say what an empty result means or how many results to expect, so it is strong but not 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?
Schema description coverage is 100% and the schema already explains code, language (with its defaulting rule) and the packages version-string syntax. The description only reinforces that versions must be exact and that matching keys off the APIs the code calls; it adds no syntax or edge-case detail beyond the schema, so the baseline of 3 applies.
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?
States a specific verb (check) and resource (a code snippet against open GitHub issues for pinned package versions), and even describes the matching mechanism (issues touched by the APIs the code calls). It is clear what the tool does, but it never names or distinguishes itself from the sibling landmine_lookup, so an agent must infer the split.
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?
Usage is implied by the input shape — you supply a snippet plus pinned dependency versions — and the 'exact package versions it runs on' phrasing hints that pinning matters. However there is no explicit when-to-use/when-not, no mention of when to prefer landmine_lookup, and no guidance on what happens with unpinned or unknown packages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
landmine_lookupKnown open bugs in exact package versionsARead-onlyIdempotentInspect
Look up the open GitHub issues filed against exact npm or PyPI package versions, with no lockfile or scan needed. Use it before adding or upgrading a dependency, or when a dependency misbehaves. Each issue is checked to really name that version. Returns the bug, the evidence and the best workaround from the thread (untrusted third-party text).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | An error message or API name: return only the issues that match it | |
| packages | Yes | Exact versions as your lockfile pins them: "next@16.4.0", "@tanstack/react-table@9.2.4", "pandas==2.3.1" (== means PyPI), or "pypi:requests@2.32.3". A bare name looks up the latest version. | |
| ecosystem | No | Ecosystem for specs without == or a prefix (default npm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, it discloses genuine behavior: every issue is verified to actually name that version, the response includes bug, evidence, and best workaround, and the thread text is untrusted third-party content. The prompt-injection warning is exactly the kind of context an agent needs.
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 dense sentences: what it does, when to use it, what comes back. Front-loaded purpose, zero filler, and the untrusted-content caveat is placed where it will be read.
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?
No output schema exists, yet the description explains the return shape (bug, evidence, workaround) and the safety caveat on that content. Combined with annotations, an agent has everything needed to call and interpret it correctly.
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 version-spec formats, query filter, and ecosystem default are already documented in the schema. The description adds nothing about parameters, which is acceptable given the schema does the work but earns no credit above 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?
States a specific verb (look up) and resource (open GitHub issues against exact npm/PyPI package versions) with scope qualifiers. The phrase 'with no lockfile or scan needed' implicitly separates it from the sibling landmine_check, which presumably scans a lockfile.
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?
Gives concrete triggers: 'before adding or upgrading a dependency, or when a dependency misbehaves.' It never explicitly names landmine_check as the alternative or states when not to use this tool, so routing is implied rather than 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.
2 tool updates
- First observed
landmine_check - First observed
landmine_lookup
Related MCP Connectors
npm & PyPI freshness for AI agents: latest version, deprecations, dated breaking-change diffs.
Honest library picks for coding agents in 25-360 tokens. Tells your agent what NOT to install.
Change intelligence for coding agents: sourced breaking changes for npm, PyPI, and Rust packages.
Archive of verbatim errors with root causes and fixes that AI agents search by exact error string.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceVerified, 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.1AGPL 3.0
- AlicenseAqualityDmaintenanceProvides accurate, source-grounded breaking-change briefings for npm packages by reading real GitHub release notes and CHANGELOGs, helping coding agents avoid hallucinated dependency migrations.33 npmMIT
- AlicenseAqualityDmaintenanceTracks latest versions and breaking changes for popular SDKs, enabling agents to check version updates and potential breaking changes efficiently.446 npmApache 2.0
- AlicenseAqualityCmaintenanceChecks npm and PyPI packages for outdated versions, deprecation status, and breaking changes with cited sources, enabling AI agents to verify dependency freshness.14 npmISC
Glama MCP Gateway
Add one secure layer between your agents and this server.