Skip to main content
Glama

NOMOS

detect_contradictions

Read-onlyIdempotent

Analyze policy documents (and optional behavioral decision logs) to detect contradictions, hidden rules, and gaps between declared policy and observed behavior. Stateless — no artifact is created and nothing is persisted. Returns contradiction types: threshold_conflicts (numeric rule overlaps), ghost_terms (undefined terms used in rules), role_conflicts (same action allowed by one role, denied by another), rule_collisions (direct logical conflicts), and layer_divergences (policy says X but behavioral data shows Y).

Input Schema

NameRequiredDescriptionDefault
api_keyNoNOMOS API key (nmk_live_...).
documentsYesPolicy documents to analyze for contradictions.
behavioral_logsNoOptional historical decision records. Enables layer_divergence detection — surfaces behavioral patterns that deviate from written policy.

Output Schema

NameRequiredDescriptionDefault
summaryNoPlain-language summary of findings
hidden_rulesNoRules inferred from behavior not in written policy
contradictionsNoList of detected contradictions
total_contradictionsNoTotal contradictions found

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely new context: nothing is persisted and no artifact is created, which matters for a policy-analysis call. It stops short of mentioning API key requirements or input size limits, so it is strong but not complete.

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?

Two sentences, front-loaded with the core action and followed by the stateless guarantee and the result taxonomy. The category list is dense but each entry conveys distinct output an agent needs for interpretation.

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 an output schema present and full parameter coverage, the description covers purpose, statelessness, and result types adequately for a three-parameter analysis tool. It could note auth or document volume expectations, but nothing critical for correct invocation is missing.

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 both the document fields and behavioral_logs are already documented in the schema, including the layer_divergence note the description repeats. The description adds no format, sizing, or api_key nuance beyond structured data, 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 ('Analyze policy documents ... to detect contradictions') and enumerates the exact output categories (threshold_conflicts, ghost_terms, role_conflicts, rule_collisions, layer_divergences). The 'Stateless — no artifact is created' clause separates it from the artifact-producing siblings like generate_governance.

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?

Implies usage through 'optional behavioral decision logs' enabling layer_divergence detection, which tells the agent when to supply extra input. However, it never states when to choose this over the adjacent siblings (verify_decision, ask_authority) or what preconditions the documents must meet.

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