Math MCP Learning
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.
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.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
17 toolscalc_expressionMathematical CalculatorARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Mathematical expression to evaluate. Supports +, -, *, /, **, and math functions (sin, cos, sqrt, log, etc.). Example: '2 * sin(pi/4) + sqrt(16)' |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | Yes | |
| result | Yes | |
| difficulty | Yes | |
| expression | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 CalculatorARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Annual interest rate as decimal 0.0-1.0 (e.g. 0.05 = 5%). If entering a percentage, divide by 100 first. | |
| time | Yes | Investment time in years (must be > 0), e.g. 10.0 | |
| principal | Yes | Initial investment amount in dollars (must be > 0), e.g. 1000.0 | |
| compounds_per_year | No | Compounding frequency per year (must be > 0): 12=monthly, 365=daily |
Output Schema
| Name | Required | Description |
|---|---|---|
| rate | Yes | |
| time | Yes | |
| topic | Yes | |
| formula | Yes | |
| principal | Yes | |
| difficulty | Yes | |
| final_amount | Yes | |
| total_interest | Yes | |
| compounds_per_year | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 AnalysisARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | List of numbers to compute descriptive statistics on. Example: [1.0, 2.5, 3.0, 4.5, 5.0] | |
| operation | Yes | Statistical operation to perform. Allowed values: mean, median, mode, std_dev, variance |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | Yes | |
| result | Yes | |
| operation | Yes | |
| difficulty | Yes | |
| sample_size | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ConverterARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Numeric value to convert, e.g., 100.0 | |
| to_unit | Yes | Target 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_unit | Yes | Source 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_type | Yes | Unit category: length, weight, or temperature |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | Yes | |
| value | Yes | |
| to_unit | Yes | |
| from_unit | Yes | |
| unit_type | Yes | |
| difficulty | Yes | |
| converted_value | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 DeterminantARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | 2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]] |
Output Schema
| Name | Required | Description |
|---|---|---|
| size | Yes | |
| topic | Yes | |
| difficulty | Yes | |
| determinant | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 EigenvaluesARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | 2D list of numbers representing a square matrix. Each inner list is a row. Example: [[4, 2], [1, 3]] |
Output Schema
| Name | Required | Description |
|---|---|---|
| size | Yes | |
| error | No | |
| topic | Yes | |
| success | Yes | |
| difficulty | Yes | |
| eigenvalues | No | |
| eigenvectors | No | |
| complex_values | No | |
| complex_eigenvalues_warning | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 InverseARead-onlyIdempotentInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | 2D list of numbers representing a square matrix. Each inner list is a row. Example: [[1, 2], [3, 4]] |
Output Schema
| Name | Required | Description |
|---|---|---|
| size | Yes | |
| error | No | |
| topic | Yes | |
| success | Yes | |
| difficulty | Yes | |
| result_matrix | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 MultiplicationARead-onlyIdempotentInspect
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]])
| Name | Required | Description | Default |
|---|---|---|---|
| matrix_a | Yes | 2D list of numbers representing the first matrix. Each inner list is a row. Example: [[1, 2], [3, 4]] | |
| matrix_b | Yes | 2D list of numbers representing the second matrix. Each inner list is a row. Example: [[5, 6], [7, 8]] |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | Yes | |
| cols_a | Yes | |
| cols_b | Yes | |
| rows_a | Yes | |
| rows_b | Yes | |
| difficulty | Yes | |
| result_matrix | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 TransposeARead-onlyIdempotentInspect
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]])
| Name | Required | Description | Default |
|---|---|---|---|
| matrix | Yes | 2D list of numbers representing the matrix. Each inner list is a row. Example: [[1, 2, 3], [4, 5, 6]] |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | Yes | |
| difficulty | Yes | |
| original_cols | Yes | |
| original_rows | Yes | |
| result_matrix | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PlotARead-onlyIdempotentInspect
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")
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Box color (name or hex code, e.g., 'blue', '#2E86AB') | |
| title | No | Chart title string, e.g., 'Distribution Comparison' | Box Plot |
| y_label | No | Y-axis label, e.g., 'Values' | Values |
| data_groups | Yes | List of data groups to compare, e.g., [[1, 2, 3], [4, 5, 6]] | |
| group_labels | No | Labels for each group, e.g., ['Group A', 'Group B'] |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ChartARead-onlyIdempotentInspect
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')
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to generate, e.g., 30 | |
| color | No | Line color (name or hex code, e.g., 'blue', '#2E86AB') | |
| trend | No | Market trend direction | bullish |
| start_price | No | Starting price value, e.g., 100.0 |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PlotterARead-onlyIdempotentInspect
Generate mathematical function plots (requires matplotlib).
Examples: plot_function("x**2", (-5, 5)) plot_function("sin(x)", (-3.14, 3.14))
| Name | Required | Description | Default |
|---|---|---|---|
| x_range | Yes | X-axis range as (min, max), e.g., (-5.0, 5.0) | |
| expression | Yes | Mathematical expression to plot, e.g., "x**2" or "sin(x)". Must be <= MAX_EXPRESSION_LENGTH characters. Example: "x**2" | |
| num_points | No | Number of sample points to plot along x_range, e.g., 100 |
Tool Definition Quality
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.
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.
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.
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.
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.
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 HistogramBRead-onlyIdempotentInspect
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")
| Name | Required | Description | Default |
|---|---|---|---|
| bins | No | Number of histogram bins, e.g., 20 | |
| data | Yes | List of numeric values to bin, e.g., [1.0, 2.0, 2.5, 3.0] | |
| title | No | Chart title string, e.g., 'Data Distribution' | Data Distribution |
Tool Definition Quality
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.
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.
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.
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.
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.
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 ChartARead-onlyIdempotentInspect
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')
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Line color (name or hex code, e.g., 'blue', '#2E86AB') | |
| title | No | Chart title string, e.g., 'Squares' | Line Chart |
| x_data | Yes | X-axis data points, e.g., [1, 2, 3, 4] | |
| y_data | Yes | Y-axis data points, e.g., [1, 4, 9, 16] | |
| x_label | No | X-axis label, e.g., 'Time' | X |
| y_label | No | Y-axis label, e.g., 'Distance' | Y |
| show_grid | No | Whether to display grid lines |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PlotBRead-onlyIdempotentInspect
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)
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Point color (name or hex code, e.g., 'blue', '#2E86AB') | |
| title | No | Chart title string, e.g., 'Correlation Study' | Scatter Plot |
| x_data | Yes | X-axis data points, e.g., [1, 2, 3, 4] | |
| y_data | Yes | Y-axis data points, e.g., [1, 4, 9, 16] | |
| x_label | No | X-axis label, e.g., 'Variable X' | X |
| y_label | No | Y-axis label, e.g., 'Variable Y' | Y |
| point_size | No | Scatter point size in points^2, e.g., 50 |
Tool Definition Quality
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.
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.
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.
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.
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.
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 VariableARead-onlyIdempotentInspect
Load previously saved calculation result from workspace.
Examples: load_variable("portfolio_return") # Returns saved calculation load_variable("circle_area") # Access across sessions
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the variable to load from workspace, e.g., 'circle_area' |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| error | No | |
| topic | No | |
| action | Yes | |
| result | No | |
| success | Yes | |
| timestamp | No | |
| difficulty | No | |
| expression | No | |
| session_id | No | |
| available_variables | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Variable name for the saved calculation. Used to retrieve it later. Example: 'circle_area' | |
| result | Yes | Numeric result of evaluating the expression, e.g., 78.54 | |
| expression | Yes | The mathematical expression that was evaluated. Example: 'pi * r**2' |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| topic | Yes | |
| action | No | |
| is_new | Yes | |
| result | Yes | |
| success | Yes | |
| difficulty | Yes | |
| expression | Yes | |
| session_id | No | |
| total_variables | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!