Skip to main content
Glama

contradiction.conflicts.scan

Idempotent

Finds conflicting assertions across connected sources by scanning databases, files, or single claims, then persists contradictions without duplicates.

Instructions

Discovers conflicting and inconsistent factual assertions across connected sources. Can scan the entire database, or scope the scan to a specific source, file, or single claim. Uses deterministic candidate grouping, entity resolution, and value comparison algorithms to detect and persist contradictions without duplicates. Mutating and idempotent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of contradiction results to return (default: 50)
claimIdNoScope scan to a single claim by ID, testing it against all eligible candidate claims
sourceIdNoScope scan to claims originating from a specific source ID, file path, or repository name
minConfidenceNoMinimum confidence threshold between 0.0 and 1.0 (default: 0.35)
includeDismissedNoWhether to include previously dismissed contradictions in output (default: false)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoTotal number of contradictions detected
scannedCountNoTotal number of claim candidate pairs evaluated
contradictionsNoDetected contradiction records

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.3

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses key behavioral traits beyond the annotations: it uses deterministic candidate grouping, entity resolution, and value comparison algorithms; it persists contradictions; it avoids duplicates; and it is idempotent. The annotations already declare idempotentHint=true and destructiveHint=false, and the description reinforces and expands on this by explaining the mutating-but-idempotent nature. It doesn't mention rate limits or auth, but for this tool the algorithmic and persistence behavior is the most important context.

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?

The description is compact and front-loaded: it states the core purpose in the first sentence, then scoping options, then algorithmic behavior, then the mutating/idempotent trait. Every sentence earns its place, and the most important information (what it does) comes first.

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?

The description is complete for a scan tool with 5 optional parameters, full schema coverage, and an output schema. It explains the algorithm, persistence, deduplication, and idempotency. The only minor gap is that it doesn't describe the output format, but the output schema exists, so the description needn't explain return values. A 4 is appropriate because it covers the behavioral context well without being exhaustive.

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 the schema already documents all 5 parameters. The description adds context about scoping (source, file, or single claim) that maps to sourceId and claimId, but doesn't add significant detail beyond the schema. Baseline 3 is correct when the schema does the heavy lifting.

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?

The description clearly states the tool's purpose: discovering conflicting and inconsistent factual assertions across connected sources. It specifies the resource (contradictions), the action (scan), and the scope options (entire database, specific source, file, or single claim), which distinguishes it from sibling tools like contradiction.conflicts.list (which lists existing conflicts) and contradiction.conflicts.resolve (which resolves them).

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 description provides clear context on when to use this tool: when you need to discover contradictions across sources, with optional scoping to a source, file, or claim. It doesn't explicitly name alternatives or exclusions, but the scoping options and the contrast with sibling tools (list, get, resolve) imply the usage context. A 4 is appropriate because it gives clear context but doesn't explicitly say 'use this instead of X when...'.

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