Skip to main content
Glama

Server Details

Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
clouatre-labs/math-mcp-learning-server
GitHub Stars
2

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.

Tool Definition Quality

Score is being calculated. Check back soon.

Available Tools

17 tools
calc_expressionMathematical CalculatorA
Read-onlyIdempotent
Inspect

Safely evaluate mathematical expressions with support for basic operations and math functions.

Supported operations: +, -, *, /, **, () Supported functions: sin, cos, tan, log, sqrt, abs, pow

Note: Use this tool to evaluate a single mathematical expression. To compute descriptive statistics over a list of numbers, use the statistics tool instead.

Examples:

  • "2 + 3 * 4" → 14

  • "sqrt(16)" → 4.0

  • "sin(3.14159/2)" → 1.0

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesMathematical expression to evaluate. Supports +, -, *, /, **, and math functions (sin, cos, sqrt, log, etc.). Example: '2 * sin(pi/4) + sqrt(16)'

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicYes
resultYes
difficultyYes
expressionYes
Behavior4/5

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

Adds 'Safely evaluate' implying sandboxing/security constraints, and lists specific supported functions/operations beyond what annotations provide; no contradictions with readOnly/idempotent hints.

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?

Well-structured with clear sections (purpose, supported ops, note, examples); front-loaded with core verb; every sentence provides distinct value.

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

Completeness5/5

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

Fully complete for a single-parameter tool; covers purpose, constraints, sibling differentiation, and examples without needing to describe return values (output schema exists).

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?

Despite 100% schema coverage, adds valuable input/output examples in description text that demonstrate expected expression formats and return values.

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?

Explicitly states 'evaluate mathematical expressions' with specific supported operations, and clearly distinguishes from calc_statistics sibling by noting when to use the statistics tool instead.

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

Usage Guidelines5/5

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

Explicitly states when to use ('evaluate a single mathematical expression') and when not to use ('To compute descriptive statistics... use the statistics tool instead'), naming the specific alternative.

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

calc_interestCompound Interest CalculatorA
Read-onlyIdempotent
Inspect

Calculate compound interest for investments.

Formula: A = P(1 + r/n)^(nt) Where:

  • P = principal amount

  • r = annual interest rate (as decimal)

  • n = number of times interest compounds per year

  • t = time in years

Examples: compound_interest(10000, 0.05, 5) # $10,000 at 5% for 5 years → $12,762.82 compound_interest(5000, 0.03, 10, 12) # $5,000 at 3% compounded monthly → $6,744.25

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesAnnual interest rate as decimal 0.0-1.0 (e.g. 0.05 = 5%). If entering a percentage, divide by 100 first.
timeYesInvestment time in years (must be > 0), e.g. 10.0
principalYesInitial investment amount in dollars (must be > 0), e.g. 1000.0
compounds_per_yearNoCompounding frequency per year (must be > 0): 12=monthly, 365=daily

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateYes
timeYes
topicYes
formulaYes
principalYes
difficultyYes
final_amountYes
total_interestYes
compounds_per_yearYes
Behavior3/5

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

Adds mathematical formula explaining the computation logic beyond annotations, though doesn't mention other behavioral traits like precision limits or performance characteristics.

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?

Well-structured with formula explanation followed immediately by examples; every section serves a distinct purpose without redundancy.

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?

Appropriately complete for a calculation tool with existing output schema; formula and examples provide sufficient context for invocation.

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?

Examples illustrate parameter mapping and usage patterns (e.g., optional compounds_per_year), adding practical context to the 100% schema coverage.

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?

Clearly states it calculates compound interest for investments with specific formula, distinguishing it from general calc_expression and matrix tools, though doesn't explicitly contrast with simple interest.

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?

Provides implied usage through concrete examples showing different parameter combinations, but lacks explicit when-to-use/when-not-to-use guidance versus alternatives like calc_expression.

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

calc_statisticsStatistical AnalysisA
Read-onlyIdempotent
Inspect

Perform statistical calculations on a list of numbers.

Available operations: mean, median, mode, std_dev, variance

Note: Use this tool to compute descriptive statistics over a list of numbers. To evaluate a single mathematical expression, use the calculate tool instead.

Examples: statistics([1.0, 2.5, 3.0, 4.5, 5.0], "mean") # Returns 3.2 statistics([1.0, 2.5, 3.0, 4.5, 5.0], "std_dev") # Returns ~1.58

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesList of numbers to compute descriptive statistics on. Example: [1.0, 2.5, 3.0, 4.5, 5.0]
operationYesStatistical operation to perform. Allowed values: mean, median, mode, std_dev, variance

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicYes
resultYes
operationYes
difficultyYes
sample_sizeYes
Behavior4/5

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

Annotations cover read-only/idempotent traits; description adds scope context (descriptive statistics vs single expressions) without contradicting structured hints.

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?

Well-structured with front-loaded purpose, bulleted operations, clear Note section, and concise examples—every sentence earns its place.

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

Completeness5/5

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

Given the simple 2-parameter schema and presence of output schema, the description provides complete usage context without unnecessary verbosity.

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?

With 100% schema coverage, baseline is met; examples in description add semantic value by demonstrating valid parameter combinations and return formats.

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?

Clear verb-resource pair ('perform statistical calculations on a list of numbers') and explicitly distinguishes from calc_expression sibling via the Note section.

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

Usage Guidelines5/5

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

Explicitly states when to use ('compute descriptive statistics over a list of numbers') and when not to use ('To evaluate a single mathematical expression, use the calculate tool instead').

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

calc_unitsUnit ConverterA
Read-onlyIdempotent
Inspect

Convert between different units of measurement.

Supported unit types:

  • length: mm, cm, m, km, in, ft, yd, mi

  • weight: g, kg, oz, lb

  • temperature: c, f, k (Celsius, Fahrenheit, Kelvin)

Examples: convert_units(5, "km", "mi", "length") # 5 kilometers → 3.11 miles convert_units(150, "lb", "kg", "weight") # 150 pounds → 68.04 kilograms

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesNumeric value to convert, e.g., 100.0
to_unitYesTarget unit abbreviation. Valid units depend on unit_type: length (mm, cm, m, km, in, ft, yd, mi), weight (g, kg, oz, lb), temperature (c, f, k)
from_unitYesSource unit abbreviation. Valid units depend on unit_type: length (mm, cm, m, km, in, ft, yd, mi), weight (g, kg, oz, lb), temperature (c, f, k)
unit_typeYesUnit category: length, weight, or temperature

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicYes
valueYes
to_unitYes
from_unitYes
unit_typeYes
difficultyYes
converted_valueYes
Behavior3/5

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

Adds minimal behavioral context beyond annotations (read-only, idempotent); omits details about precision, rounding behavior, or error responses for unsupported unit combinations.

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?

Well-structured with clear header, categorized bullet list of units, and concrete code examples; no redundant or filler text.

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?

Comprehensive coverage of supported units and categories; sufficient given the presence of an output schema, though could note temperature conversion formula differences.

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?

Despite 100% schema coverage, the embedded code examples effectively demonstrate parameter ordering and valid string formats for unit abbreviations.

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?

Clear purpose ('Convert between different units') with specific unit categories listed, distinguishing it from mathematical calculation siblings like calc_expression and matrix operations.

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 implied through examples and supported unit list, but lacks explicit guidance on when to prefer this over calc_expression for unit-related math or error handling for invalid conversions.

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

matrix_determinantMatrix DeterminantA
Read-onlyIdempotent
Inspect

Calculate the determinant of a square matrix.

Note: Requires NumPy. Raises ValueError if NumPy is unavailable.

Examples: matrix_determinant([[1, 2], [3, 4]]) matrix_determinant([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) # Identity matrix

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeYes
topicYes
difficultyYes
determinantYes
Behavior4/5

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

The description adds valuable behavioral context beyond annotations: it discloses the NumPy dependency and ValueError on unavailability, which annotations don't cover. While annotations already indicate read-only, idempotent, and closed-world behavior, the description provides practical implementation details that help the agent understand runtime constraints.

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?

Perfectly structured with a clear purpose statement followed by a note about dependencies and practical examples. Every sentence earns its place: the first defines the tool, the note warns about requirements, and examples demonstrate proper invocation. No wasted words.

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

Completeness5/5

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

Complete for a mathematical computation tool with good annotations and output schema. The description covers purpose, dependencies, error conditions, and provides examples. With annotations covering safety properties and output schema presumably defining the return value, no additional information is needed.

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?

With 100% schema description coverage, the schema already fully documents the single 'matrix' parameter. The description doesn't add parameter semantics beyond what's in the schema, but the examples provide concrete usage patterns that complement the schema's technical specification.

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 specific action ('Calculate the determinant') and resource ('of a square matrix'), distinguishing it from sibling tools like matrix_inverse or matrix_eigenvalues. It precisely defines the mathematical operation without ambiguity.

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 by specifying it's for square matrices and noting the NumPy dependency, but doesn't explicitly state when to use this versus alternatives like matrix_eigenvalues for other matrix properties. The examples help illustrate proper usage scenarios.

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

matrix_eigenvaluesMatrix EigenvaluesA
Read-onlyIdempotent
Inspect

Calculate the eigenvalues of a square matrix.

Note: Requires NumPy. Raises ValueError if NumPy is unavailable.

Examples: matrix_eigenvalues([[4, 2], [1, 3]]) matrix_eigenvalues([[3, 0, 0], [0, 5, 0], [0, 0, 7]]) # Diagonal matrix

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes2D list of numbers representing a square matrix. Each inner list is a row. Example: [[4, 2], [1, 3]]

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeYes
errorNo
topicYes
successYes
difficultyYes
eigenvaluesNo
eigenvectorsNo
complex_valuesNo
complex_eigenvalues_warningNo
Behavior4/5

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

The description adds valuable behavioral context beyond annotations by specifying the NumPy dependency and ValueError condition, which annotations don't cover. While annotations already indicate read-only, non-open-world, and idempotent behavior, the description usefully supplements with implementation details. No contradiction with annotations exists.

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 perfectly structured with a clear purpose statement upfront, followed by a concise note about dependencies, and relevant examples. Every sentence adds value with no wasted words, making it easy for an agent to parse quickly.

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

Completeness5/5

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

Given the tool's mathematical nature, comprehensive annotations (readOnlyHint, idempotentHint), 100% schema coverage, and existence of an output schema, the description provides complete context. It covers purpose, dependencies, error conditions, and examples—sufficient for an agent to understand and invoke correctly.

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?

With 100% schema description coverage, the schema fully documents the matrix parameter including format, constraints, and examples. The description doesn't add parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for high schema coverage.

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 specific action ('calculate') and resource ('eigenvalues of a square matrix'), distinguishing it from sibling tools like matrix_determinant or matrix_inverse. It precisely defines the mathematical operation without being vague or tautological.

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?

The description provides implied usage through the examples showing diagonal matrices, but lacks explicit guidance on when to use this tool versus alternatives like matrix_determinant or when eigenvalues are appropriate versus other matrix operations. No explicit when-not-to-use or alternative recommendations are provided.

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

matrix_inverseMatrix InverseA
Read-onlyIdempotent
Inspect

Calculate the inverse of a square matrix.

Note: Requires NumPy. Raises ValueError if NumPy is unavailable.

Examples: matrix_inverse([[1, 2], [3, 4]]) matrix_inverse([[2, 0], [0, 2]]) # Diagonal matrix

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeYes
errorNo
topicYes
successYes
difficultyYes
result_matrixNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false. The description adds valuable behavioral context beyond annotations: it discloses the NumPy dependency and potential ValueError if unavailable, which are important implementation details not covered by annotations.

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 perfectly structured: a clear purpose statement followed by a note about dependencies and concrete examples. Every sentence serves a distinct purpose with zero redundancy, making it easy to scan and understand.

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

Completeness5/5

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

Given the tool's mathematical nature, comprehensive annotations (readOnly, idempotent), 100% schema coverage, and existence of an output schema, the description is complete. It covers purpose, dependencies, error conditions, and examples—everything needed for an agent to use this tool correctly.

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%, with the schema fully documenting the 'matrix' parameter format and constraints. The description doesn't add parameter details beyond what's in the schema, but provides helpful examples showing valid input formats, which slightly enhances understanding.

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 specific action ('Calculate the inverse') and resource ('square matrix'), distinguishing it from sibling tools like matrix_determinant or matrix_transpose. It precisely defines the mathematical operation without ambiguity.

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 by specifying it's for square matrices and mentioning NumPy dependency, which helps determine when to use it. However, it doesn't explicitly state when NOT to use it (e.g., for non-square matrices) or name alternatives like matrix_determinant for related operations.

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

matrix_multiplyMatrix MultiplicationA
Read-onlyIdempotent
Inspect

Multiply two matrices (A × B).

Note: Requires NumPy. Raises ValueError if NumPy is unavailable.

Examples: matrix_multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]) matrix_multiply([[1, 2, 3]], [[1], [2], [3]])

ParametersJSON Schema
NameRequiredDescriptionDefault
matrix_aYes2D list of numbers representing the first matrix. Each inner list is a row. Example: [[1, 2], [3, 4]]
matrix_bYes2D list of numbers representing the second matrix. Each inner list is a row. Example: [[5, 6], [7, 8]]

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicYes
cols_aYes
cols_bYes
rows_aYes
rows_bYes
difficultyYes
result_matrixYes
Behavior4/5

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

The description adds valuable behavioral context beyond annotations: it specifies a dependency requirement (NumPy) and error behavior (raises ValueError if unavailable). Annotations already indicate readOnlyHint=true, openWorldHint=false, and idempotentHint=true, but the description provides practical implementation details that help the agent understand runtime constraints.

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 perfectly structured: a clear purpose statement followed by a note about requirements and examples. Every sentence earns its place, with no redundant information. The examples are directly relevant and demonstrate different use cases without unnecessary elaboration.

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

Completeness5/5

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

Given the tool's mathematical nature, complete schema coverage, comprehensive annotations, and the presence of an output schema (which handles return values), the description provides exactly what's needed. It covers purpose, prerequisites, and examples without duplicating information available elsewhere in the structured data.

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?

With 100% schema description coverage, the input schema already fully documents both parameters (matrix_a and matrix_b) with examples and constraints. The description doesn't add additional parameter semantics beyond what's in the schema, but provides usage examples that reinforce the parameter format. This meets the baseline expectation when schema coverage is complete.

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 specific action ('Multiply two matrices') and distinguishes it from sibling tools like matrix_determinant, matrix_inverse, and matrix_transpose. It provides the mathematical operation (A × B) and includes examples showing different matrix dimensions, making the purpose unambiguous and well-differentiated.

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 explicitly states when NOT to use this tool ('Requires NumPy. Raises ValueError if NumPy is unavailable'), providing clear prerequisites. However, it doesn't explicitly guide when to choose this tool over alternatives like calc_expression for general calculations or other matrix operations, though the purpose clearly indicates it's for matrix multiplication specifically.

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

matrix_transposeMatrix TransposeA
Read-onlyIdempotent
Inspect

Transpose a matrix (swap rows and columns).

Note: Requires NumPy. Raises ValueError if NumPy is unavailable.

Examples: matrix_transpose([[1, 2, 3], [4, 5, 6]]) matrix_transpose([[1], [2], [3]])

ParametersJSON Schema
NameRequiredDescriptionDefault
matrixYes2D list of numbers representing the matrix. Each inner list is a row. Example: [[1, 2, 3], [4, 5, 6]]

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicYes
difficultyYes
original_colsYes
original_rowsYes
result_matrixYes
Behavior4/5

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

The description adds valuable behavioral context beyond annotations: it discloses the NumPy dependency requirement and the ValueError that occurs when NumPy is unavailable. Annotations already indicate this is a read-only, non-destructive, idempotent operation, but the description provides implementation-specific details that help the agent understand runtime behavior.

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?

The description is well-structured with a clear purpose statement followed by a note and examples. The note about NumPy dependency is essential, but the examples could be more concise. Overall, most content earns its place, though slightly verbose in the examples section.

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

Completeness5/5

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

Given the tool's simplicity, 100% schema coverage, comprehensive annotations, and the presence of an output schema, the description is complete. It covers the core operation, dependencies, error conditions, and provides illustrative examples—sufficient for an agent to understand and invoke this tool correctly.

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?

With 100% schema description coverage, the input schema fully documents the 'matrix' parameter structure, constraints (maxItems: 10000), and format. The description adds minimal value beyond the schema, only reinforcing through examples what the schema already specifies about the 2D array format.

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 specific action ('transpose a matrix') and defines what that means ('swap rows and columns'). It distinguishes this tool from sibling matrix tools like matrix_determinant, matrix_inverse, and matrix_multiply by focusing exclusively on transposition.

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?

The description provides implied usage through the examples showing 2D arrays, but lacks explicit guidance on when to use this tool versus alternatives. No context is given about when transposition is needed versus other matrix operations available in sibling tools.

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

plot_box_plotBox PlotA
Read-onlyIdempotent
Inspect

Create a box plot for comparing distributions (requires matplotlib).

Examples: plot_box_plot([[1, 2, 3, 4, 5], [2, 4, 6, 8, 10]], group_labels=["A", "B"]) plot_box_plot([[10, 20, 30], [15, 25, 35], [5, 15, 25]], title="Comparison")

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoBox color (name or hex code, e.g., 'blue', '#2E86AB')
titleNoChart title string, e.g., 'Distribution Comparison'Box Plot
y_labelNoY-axis label, e.g., 'Values'Values
data_groupsYesList of data groups to compare, e.g., [[1, 2, 3], [4, 5, 6]]
group_labelsNoLabels for each group, e.g., ['Group A', 'Group B']
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds useful context about the matplotlib dependency, which isn't captured in annotations, but doesn't mention output behavior (e.g., display vs. save) or potential errors.

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?

The description is appropriately sized with two sentences: a clear purpose statement and two concise examples. It's front-loaded with the core functionality, though the examples could be slightly more streamlined.

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?

Given the tool's moderate complexity, 100% schema coverage, and annotations covering safety/idempotency, the description is reasonably complete. It lacks output details (no output schema) and deeper usage context, but the dependency note and examples provide adequate guidance for basic use.

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 parameters are fully documented in the schema. The description's examples illustrate usage of data_groups and group_labels/title, but don't add meaningful semantic details beyond what the schema already provides.

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 specific action ('Create a box plot') and resource ('for comparing distributions'), with explicit mention of the dependency ('requires matplotlib'). It distinguishes from sibling tools like plot_histogram or plot_scatter by specifying the exact chart type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like plot_histogram or plot_scatter. It includes examples but offers no explicit when/when-not instructions or comparisons to sibling tools.

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

plot_financial_lineFinancial Line ChartA
Read-onlyIdempotent
Inspect

Generate and plot synthetic financial price data (requires matplotlib).

Creates realistic price movement patterns for educational purposes. Does not use real market data.

Note: Use for time-series price data with optional moving average overlay. For general XY data, use plot_line_chart instead.

Examples: plot_financial_line(days=60, trend='bullish') plot_financial_line(days=90, trend='volatile', start_price=150.0, color='orange')

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to generate, e.g., 30
colorNoLine color (name or hex code, e.g., 'blue', '#2E86AB')
trendNoMarket trend directionbullish
start_priceNoStarting price value, e.g., 100.0
Behavior4/5

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

The description adds valuable behavioral context beyond annotations. While annotations indicate readOnlyHint=true (safe operation), openWorldHint=false (deterministic), and idempotentHint=true (repeatable), the description adds that it 'Creates realistic price movement patterns for educational purposes' and 'Does not use real market data' - important behavioral constraints not captured in annotations. No contradiction with annotations exists.

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 well-structured and appropriately sized. It front-loads the core purpose, follows with important constraints, provides usage guidance in a dedicated 'Note:' section, and includes practical examples. Every sentence serves a distinct purpose with zero waste or redundancy.

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?

Given the tool's moderate complexity (4 parameters, no output schema), the description provides good contextual completeness. It covers purpose, constraints, usage guidelines, and examples. The main gap is lack of information about the output format (what kind of plot is generated, whether it's displayed or saved), but with annotations covering safety and determinism, and schema covering all parameters, it's mostly complete.

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?

With 100% schema description coverage, the baseline is 3. The description provides example usage that illustrates parameter combinations ('plot_financial_line(days=60, trend='bullish')'), which adds practical context beyond the schema's technical descriptions. However, it doesn't add significant semantic meaning about individual parameters beyond what the schema already documents.

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: 'Generate and plot synthetic financial price data' with specific verbs (generate, plot) and resource (financial price data). It distinguishes from siblings by specifying 'for educational purposes' and 'Does not use real market data', differentiating it from potential real-data tools. The explicit mention of 'requires matplotlib' adds implementation context.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool vs alternatives. The 'Note:' section states 'Use for time-series price data with optional moving average overlay' and explicitly names the alternative: 'For general XY data, use plot_line_chart instead.' This gives clear boundaries for tool selection and references a specific sibling tool.

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

plot_functionFunction PlotterA
Read-onlyIdempotent
Inspect

Generate mathematical function plots (requires matplotlib).

Examples: plot_function("x**2", (-5, 5)) plot_function("sin(x)", (-3.14, 3.14))

ParametersJSON Schema
NameRequiredDescriptionDefault
x_rangeYesX-axis range as (min, max), e.g., (-5.0, 5.0)
expressionYesMathematical expression to plot, e.g., "x**2" or "sin(x)". Must be <= MAX_EXPRESSION_LENGTH characters. Example: "x**2"
num_pointsNoNumber of sample points to plot along x_range, e.g., 100
Behavior3/5

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

Annotations already provide readOnlyHint=true, openWorldHint=false, and idempotentHint=true, indicating safe, deterministic operations. The description adds valuable context about the matplotlib dependency, which isn't captured in annotations, but doesn't disclose other behavioral traits like error handling, performance limits, or output format details.

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 front-loaded with the core purpose, followed by concise examples that reinforce usage without unnecessary elaboration. Every sentence earns its place by providing actionable information, and the structure is efficient for quick comprehension.

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?

Given the tool's moderate complexity (mathematical plotting), rich annotations (safety and determinism hints), and 100% schema coverage, the description is mostly complete. However, without an output schema, it lacks details on return values (e.g., image format, error responses), leaving a minor gap in contextual understanding.

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 fully documents parameters. The description provides examples that illustrate usage but doesn't add semantic meaning beyond what the schema already specifies (e.g., expression format, x_range as tuple). Baseline 3 is appropriate as 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 specific action ('Generate mathematical function plots') and the resource ('mathematical function plots'), distinguishing it from sibling plotting tools like plot_box_plot or plot_scatter by specifying it's for mathematical functions. The examples reinforce this specificity.

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 for when to use this tool (for mathematical function plots) and mentions a prerequisite ('requires matplotlib'), but doesn't explicitly state when not to use it or name alternatives among the sibling tools (e.g., plot_line_chart for non-mathematical lines).

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

plot_histogramStatistical HistogramB
Read-onlyIdempotent
Inspect

Create statistical histograms (requires matplotlib).

Examples: plot_histogram([1.0, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0]) plot_histogram([10, 20, 30, 40, 50], bins=5, title="Test Scores")

ParametersJSON Schema
NameRequiredDescriptionDefault
binsNoNumber of histogram bins, e.g., 20
dataYesList of numeric values to bin, e.g., [1.0, 2.0, 2.5, 3.0]
titleNoChart title string, e.g., 'Data Distribution'Data Distribution
Behavior3/5

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

Adds valuable dependency context ('requires matplotlib') beyond annotations, but fails to disclose output format or side effects given no output schema exists.

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?

Extremely compact and front-loaded; examples earn their place by showing valid syntax, though a brief output description would improve structure.

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

Completeness2/5

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

Critical gap: no output schema exists and description fails to specify what the tool returns (file path, base64 image, or direct display).

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?

Despite 100% schema coverage, the concrete examples effectively demonstrate parameter interactions (bins=5, title=...) that pure descriptions cannot convey.

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?

Clearly states it creates statistical histograms with specific verb and resource, distinguishing it from sibling plotting tools like plot_line_chart or plot_scatter.

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

Usage Guidelines2/5

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

Provides usage examples but lacks guidance on when to select this over similar visualization siblings like plot_box_plot or plot_function.

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

plot_line_chartLine ChartA
Read-onlyIdempotent
Inspect

Create a line chart from data points (requires matplotlib).

Note: Use for general XY data. For time-series price data with optional moving average, use plot_financial_line instead.

Examples: plot_line_chart([1, 2, 3, 4], [1, 4, 9, 16], title="Squares") plot_line_chart([0, 1, 2], [0, 1, 4], color='red', x_label='Time', y_label='Distance')

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoLine color (name or hex code, e.g., 'blue', '#2E86AB')
titleNoChart title string, e.g., 'Squares'Line Chart
x_dataYesX-axis data points, e.g., [1, 2, 3, 4]
y_dataYesY-axis data points, e.g., [1, 4, 9, 16]
x_labelNoX-axis label, e.g., 'Time'X
y_labelNoY-axis label, e.g., 'Distance'Y
show_gridNoWhether to display grid lines
Behavior4/5

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

The description adds valuable context beyond annotations by stating 'requires matplotlib' (dependency requirement) and providing concrete usage examples. While annotations already cover readOnlyHint=true, openWorldHint=false, and idempotentHint=true, the description enhances understanding with practical implementation details.

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 perfectly structured with a clear purpose statement, important note about usage context, and practical examples. Every sentence serves a distinct purpose with zero wasted words, and information is front-loaded appropriately.

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 visualization tool with comprehensive annotations and full schema coverage, the description provides excellent context about when to use it versus alternatives and practical examples. The main gap is the lack of output schema, but the description compensates well with implementation guidance.

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?

With 100% schema description coverage, the input schema already documents all 7 parameters thoroughly. The description provides examples showing parameter usage (e.g., title='Squares', color='red', x_label='Time') but doesn't add significant semantic meaning beyond what's in the schema descriptions.

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 with specific verb ('Create') and resource ('line chart from data points'), and explicitly distinguishes it from its sibling plot_financial_line by stating 'Use for general XY data' versus 'time-series price data with optional moving average'.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('Use for general XY data') and when to use an alternative ('For time-series price data with optional moving average, use plot_financial_line instead'), clearly differentiating between sibling tools.

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

plot_scatterScatter PlotB
Read-onlyIdempotent
Inspect

Create a scatter plot from data points (requires matplotlib).

Examples: plot_scatter([1, 2, 3, 4], [1, 4, 9, 16], title="Correlation Study") plot_scatter([1, 2, 3], [2, 4, 5], color='purple', point_size=100)

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoPoint color (name or hex code, e.g., 'blue', '#2E86AB')
titleNoChart title string, e.g., 'Correlation Study'Scatter Plot
x_dataYesX-axis data points, e.g., [1, 2, 3, 4]
y_dataYesY-axis data points, e.g., [1, 4, 9, 16]
x_labelNoX-axis label, e.g., 'Variable X'X
y_labelNoY-axis label, e.g., 'Variable Y'Y
point_sizeNoScatter point size in points^2, e.g., 50
Behavior3/5

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

Adds useful dependency note ('requires matplotlib') beyond annotations, but omits output format and side effect details.

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?

Appropriately brief and front-loaded with purpose statement followed by illustrative examples; no wasted text.

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?

Adequate for inputs but missing output description (image format, file path return) which would be helpful given no output schema exists.

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 has 100% description coverage; description provides redundant examples without adding semantic meaning beyond schema.

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?

Clear verb ('Create') and resource ('scatter plot'), but lacks explicit differentiation from sibling plotting tools like plot_line_chart or plot_histogram.

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?

Examples imply usage for correlation studies, but no explicit when-to-use guidance or comparison to alternative visualization tools.

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

workspace_loadLoad VariableA
Read-onlyIdempotent
Inspect

Load previously saved calculation result from workspace.

Examples: load_variable("portfolio_return") # Returns saved calculation load_variable("circle_area") # Access across sessions

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the variable to load from workspace, e.g., 'circle_area'

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
errorNo
topicNo
actionYes
resultNo
successYes
timestampNo
difficultyNo
expressionNo
session_idNo
available_variablesNo
Behavior4/5

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

Adds valuable persistence context ('Access across sessions') beyond annotations, confirming data survives session boundaries.

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?

Extremely concise, front-loaded action statement with efficient examples that earn their place.

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?

Adequate for simple single-parameter tool; mentions persistence and provides examples, though could explicitly reference workspace_save relationship.

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?

With 100% schema coverage, baseline is 3; examples illustrate usage but don't add semantic meaning beyond the schema's own description.

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?

Clear verb ('Load') and resource ('Variable' from 'workspace'), distinguishes from calculation/plotting siblings, though doesn't explicitly contrast with workspace_save.

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?

Examples imply usage context but lack explicit when/when-not guidance or reference to workspace_save as the paired operation.

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

workspace_saveSave Calculation to WorkspaceBInspect

Save calculation to persistent workspace (survives restarts).

Examples: save_calculation("portfolio_return", "10000 * 1.07^5", 14025.52) save_calculation("circle_area", "pi * 5^2", 78.54)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVariable name for the saved calculation. Used to retrieve it later. Example: 'circle_area'
resultYesNumeric result of evaluating the expression, e.g., 78.54
expressionYesThe mathematical expression that was evaluated. Example: 'pi * r**2'

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
topicYes
actionNo
is_newYes
resultYes
successYes
difficultyYes
expressionYes
session_idNo
total_variablesYes
Behavior4/5

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

Adds crucial persistence context ('survives restarts') beyond annotations, clarifying durability without contradicting 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?

Extremely concise with clear front-loaded purpose statement; examples earn their place but description is minimally sufficient.

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?

Adequate for simple 3-parameter tool with complete schema and output schema present, though lacks cross-reference to workspace_load retrieval workflow.

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% establishing baseline 3; examples illustrate usage but description prose adds no new parameter semantics.

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?

States specific action (save) and resource (calculation to persistent workspace), with parenthetical distinguishing persistence from ephemeral calculation siblings.

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

Usage Guidelines2/5

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

Provides examples but offers no explicit guidance on when to use versus calculation tools or workspace_load sibling.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.