Skip to main content
Glama
nikhilxnarula

sagemath-mcp

Classify Edges

classify_edges

Classify each edge of a brick as b-invariant or quasi-b-invariant, reporting nontrivial barriers for quasi-b-invariant edges. For brick graphs only.

Instructions

Split every edge of a brick into b-invariant and quasi-b-invariant.

Each quasi-b-invariant edge is reported with the two nontrivial barriers of G - e. Only defined for bricks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
graphYesa graph6 string or a registry name.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It discloses the core behavior: classification of every edge and reporting quasi-b-invariant edges with the two nontrivial barriers of G - e. However, it does not explicitly state that the operation is non-mutating, what happens for non-brick inputs, or any performance/error characteristics, leaving some burden on the agent.

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 two tight sentences, each earning its place. The primary operation is front-loaded, and the additional barrier-reporting detail and brick precondition are provided without waste.

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?

For a one-parameter graph-theory tool with an output schema, the description is largely complete: it defines the operation, the one precondition, and the key output detail. It could be more complete by naming sibling tools or explaining behavior on invalid/non-brick inputs, but those are modest gaps.

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

Parameters4/5

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

The input schema already fully describes graph as 'a graph6 string or a registry name' (100% coverage). The description adds important extra semantic context by stating the graph must be a brick, which constrains valid parameter values beyond the 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?

The description begins with a specific action and scope: 'Split every edge of a brick into b-invariant and quasi-b-invariant.' This clearly distinguishes classify_edges from siblings like is_edge_binvariant (a single-property test) and has_qbinv_edges (an existence check), since it handles all edges and produces both categories.

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 states a clear precondition: 'Only defined for bricks,' which tells an agent not to call it on non-brick graphs and suggests verifying brickness (e.g., via is_brick) first. It does not explicitly name alternatives or when-not cases such as using has_qbinv_edges for a quick existence check.

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