Skip to main content
Glama

cross_check_mods

Cross-check an instance's Modrinth and CurseForge mod views by slug to identify duplicate files, dual-tracked mods, single-source mods, and unidentified jars.

Instructions

Cross-source inventory of an instance's mods: joins the Modrinth view (jars identified by sha1) with the CurseForge view (packwiz .index entries) by project slug, and reports mods installed from BOTH sources as two different files (true duplicates), single files both sources recognize (dualTracked), mods installed from one source that also exist on the other, single-source mods, and jars neither source could identify. Jars with no index entry are also identified as CurseForge files by fingerprint (modpack-bundled mods). Matching is by slug only.

Input Schema

NameRequiredDescriptionDefault
instanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.1

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does substantial work: it discloses the matching key (slug only), how each side identifies files (sha1 for Modrinth, packwiz .index for CurseForge), and that jars without an index entry are fingerprint-identified as CurseForge. It explicitly flags the limiting behavior of slug-only matching, which an agent needs to interpret false negatives. It never states that the operation is read-only or notes scan cost/time, which keeps 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.

Conciseness3/5

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

The core scope is front-loaded in the opening clause, but virtually all content is packed into one very long run-on sentence spanning five result categories plus the fingerprinting caveat. It is dense rather than padded, yet a short enumerated list would make the categories far easier to scan.

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

Completeness3/5

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

For a complex analysis tool with no output schema and no annotations, the description does cover the semantic categories of the return value and even names one field ('dualTracked'), which is the most important missing piece. However, it does not convey the shape of the result (per-category arrays vs counts), and the sole parameter remains undefined, leaving real gaps for an agent to close on its own.

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

Parameters2/5

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

The single required parameter 'instance' has 0% schema description coverage, so the description must compensate and does not: it says 'an instance's mods' but never states whether the value is an instance name, id, or path. An agent must infer the identifier form from sibling tools rather than from this definition.

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?

The description names a specific operation (cross-source inventory join of Modrinth sha1 jars with CurseForge packwiz .index entries) and enumerates the exact categories it reports: true duplicates, dualTracked, one-source-with-other-source-presence, single-source, and unidentifiable jars. This is far more specific than a sibling like list_mods. It does not name an alternative sibling (e.g. dedupe_mod or diagnose_instance) to contrast against, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied by the output categories: an agent can infer it is for finding duplicates and unidentified jars, but the description never says when to call this versus dedupe_mod, check_mod_updates, or list_mods. No preconditions, no exclusions, no explicit 'use this when' phrasing.

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