Skip to main content
Glama
NovaSolver Studio MCP Server

NovaSolver Studio MCP Server

Official
by novasolver

detect_contacts

Find facing faces on separately modeled assembly parts within a search gap, then optionally add bonded contact pairs for static analysis; adjust pair types with update_case.

Instructions

Find faces of different parts that face each other within search_mm (separately modelled parts of an assembly, a gap that may close). apply=true adds them as contact_pairs of type bonded; change a pair with update_case(changes={"contact_pairs..type": "frictionless" | "frictional" | "no-separation", "...mu": 0.2}). Static analysis only (small sliding).

Input Schema

NameRequiredDescriptionDefault
applyNo
case_idYes
languageNoja
search_mmNo

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 only say readOnlyHint=false, destructiveHint=false, idempotentHint=false; the description adds real substance by naming exactly what gets written (contact_pairs of type bonded) and how to retype a pair afterward with the frictionless/frictional/no-separation values and a mu example. It does not say whether existing contact_pairs are overwritten or how re-running behaves, which matters since idempotentHint=false.

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

Conciseness4/5

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

Front-loaded with the core operation, then the apply semantics, then the update_case escape hatch. The inline JSON fragment for retyping pairs is dense but earns its place by showing the exact key path; the parenthetical about separately modelled parts is slightly verbose but disambiguating.

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 mutating analysis tool with no output schema, the description covers what is written but not what is returned (e.g., the list of detected pairs, their names, or how many were found), nor how the language parameter affects results. Enough to invoke it, not enough to 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 0%, so the description must carry the weight: it explains apply's effect and clarifies search_mm as the distance tolerance for face-pair search. It says nothing about case_id (obvious) or the language enum, leaving one of four parameters unexplained despite a 0% coverage schema.

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 ('Find faces of different parts that face each other') and pins down the domain meaning with 'separately modelled parts of an assembly, a gap that may close' plus the search_mm tolerance. An agent can tell this is contact detection between distinct parts, not a generic geometry query.

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 the key mode split ('apply=true adds them as contact_pairs of type bonded'), so the agent knows the dry-run vs commit behavior, and points to update_case for subsequent edits. It also bounds the tool with 'Static analysis only (small sliding)'. No explicit 'when not to use' or prerequisite guidance, which keeps it from a 5.

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