Skip to main content
Glama
VRDhwaraganath

NitroStack Calculator MCP Server

NitroStack Starter Template

Minimal template for learning NitroStack fundamentals with a calculator-focused MCP server and basic widgets.

What This Template Includes

  • calculator module with tools, resources, and prompts

  • TypeScript + Zod validation setup

  • Widget-ready project structure

  • Production-friendly npm scripts

Related MCP server: amrita-companion-mcp

Quick Start

npx @nitrostack/cli init my-server --template typescript-starter
cd my-server
npm run dev

Common Commands

npm run dev
npm run build
npm start

NitroStudio

NitroStudio is the recommended way to test and debug this template during development.

Community

Available Tools

6 tools
calculateC

Perform basic arithmetic calculations

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst number
bYesSecond number
operationYesThe operation to perform

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility. It states it performs calculations but omits potential side effects like division-by-zero errors or whether the tool is read-only, leaving behavior ambiguous.

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 extremely concise, using only four words to convey the entire purpose. There is no redundancy or unnecessary elaboration.

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?

The description lacks essential context such as the return format, error handling, or precision of results. Given no output schema and no annotations, the tool is incomplete for an agent to fully understand behavior without additional inference.

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?

The schema descriptions cover all parameters, giving a baseline of 3. The tool description itself adds no extra meaning beyond the schema, but the schema already defines 'a', 'b', and 'operation' sufficiently for basic arithmetic.

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?

The description clearly states the tool performs basic arithmetic calculations, which is a specific action. It distinguishes itself from sibling tools like convert_temperature by being generic, though it lacks detail on exact operations.

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

Usage Guidelines1/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 such as convert_temperature. There is no mention of typical use cases or conditions for selection.

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

convert_temperatureC

Convert temperature units based on file content or direct input. Supports Celsius (C) and Fahrenheit (F).

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoTemperature value to convert
to_unitNoUnit to convert to (C or F)
file_nameYesName of the uploaded file
file_typeYesMIME type of the uploaded file
from_unitNoUnit to convert from (C or F)
file_contentYesBase64 encoded file content. Will be injected by system.

TDQS

C2.7/5.0
Behavior1/5

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

The description states the tool works 'based on file content or direct input', but the schema requires file_name, file_type, and file_content for all invocations, making direct input impossible without dummy file data. This contradiction is misleading and fails to disclose the actual required 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 a single, short sentence that gets to the point quickly. It could be slightly more explicit about the file/direct input behavior, but overall it is concise and well-structured.

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?

The description lacks necessary context about the relationship between the file parameters and the temperature conversion parameters, especially given the required fields. There is also no explanation of output format or behavior when both file and direct input are provided, leaving the tool's usage incomplete.

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?

All parameters have descriptions, so schema coverage is complete, meeting the baseline. However, the descriptions are minimal, and the file-related parameters are confusing because they are marked required even for 'direct input' and provide no clarity on their purpose or interaction with the value/from_unit/to_unit parameters.

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?

The description clearly states the tool converts temperature units between Celsius and Fahrenheit, identifying the specific verb and resource. However, the mention of 'file content or direct input' introduces some ambiguity about the exact mode of operation, slightly detracting from full clarity.

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?

No guidance is provided on when to use this tool versus the sibling tools like 'calculate' or 'upload-and-analyze'. The description only explains what the tool does, not the scenarios in which it should be preferred.

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

export-reportB

Generate and export incident report in HTML or JSON format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesExport format (html or json)
incident_idYesThe incident ID to export

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of explaining behavior. It does not clarify whether the export creates a file, returns a download link, writes to storage, or requires special permissions, leaving the tool's side effects and output ambiguous.

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 a single, concise sentence that states the core action and the supported output formats without unnecessary words or redundancy.

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?

The description is adequate for a simple two-parameter tool, but it omits what the export returns or where it goes. Given no output schema is present, a bit more detail about the result would make the tool contextually 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?

The schema already covers both parameters with descriptions and the format enum, so the description adds little beyond the schema. There is no additional semantic detail about the incident_id format or the nature of the exported report.

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?

The description clearly identifies the action (generate/export), the resource (incident report), and the supported formats (HTML or JSON). It is distinct from sibling tools like get-incident-details and list-incidents, though it could more explicitly contrast with them.

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?

No guidance is provided about when to use this tool versus alternatives such as get-incident-details or list-incidents. The description implies it is for export, but does not explain the circumstances that should lead an agent to choose it over retrieval tools.

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

get-incident-detailsA

Get full details for a specific incident including root cause analysis and recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
incident_idYesThe incident ID (e.g., INC-005)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing side effects. 'Get' suggests a read-only operation, but the description does not explicitly state that it has no side effects, does not modify data, or what permissions/errors might apply. This is acceptable but not fully transparent.

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 a single, focused sentence with no redundant words. It efficiently communicates the action, target, and useful output content without unnecessary detail.

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?

The description gives enough context for an agent to understand the tool's purpose and likely output, especially by mentioning root cause analysis and recommendations. Since there is no output schema, this descriptive content partially fills the gap, though a more explicit return structure would make it fully 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?

The single parameter incident_id is fully described in the schema with an example, so schema coverage is 100%. The description does not add extra parameter semantics beyond what the schema already provides, but no additional clarification is needed for this simple parameter.

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 function: retrieving full details for a specific incident. It specifies the resource (incident) and scope (specific incident ID), and mentions the included content (root cause analysis and recommendations), distinguishing it from broader tools like list-incidents.

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 implies use when full details of a single incident are needed, but it does not explicitly contrast with sibling tools such as list-incidents or export-report. No direct guidance is given on when to choose this tool over alternatives, leaving some inference required.

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

list-incidentsB

List incidents filtered by severity level, returning incident cards with details

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status
severityNoFilter by severity level

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the burden of explaining behavioral aspects. It does not state whether the operation is read-only, any side effects, permissions, or rate limits. The phrase 'returning incident cards with details' gives a hint about the response format but lacks explicit behavioral transparency.

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 a single, concise sentence that effectively communicates the core function. It is well-structured and front-loaded with the primary action ('List incidents') followed by the filter option.

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 simplicity and lack of an output schema, the description is reasonably complete. It mentions the return of incident cards with details, which is sufficient context. It does not address pagination or ordering, but these are not strictly necessary for a basic list operation.

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 high (100%) because both parameters have descriptions in the schema. The description adds only a minimal note about filtering by severity, which duplicates the schema. Since the schema already describes the parameters, the description adds no significant additional meaning.

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?

The description clearly states the tool lists incidents, a specific verb and resource. It distinguishes from get-incident-details by implying a collection rather than a single item. However, it mentions only filtering by severity while the schema also supports filtering by status, so the description is slightly incomplete.

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 explicit guidance on when to use this tool versus alternatives like get-incident-details or export-report. It implies use for listing incidents but does not explain scenarios, such as when a summary list is needed versus detailed details or export.

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

upload-and-analyzeA

Upload log files and analyze them for anomalies, severity classification, and root cause detection

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate of logs to analyze (ISO format, defaults to 2026-07-18)
file_nameNoName of the uploaded log file (defaults to sample logs)
file_typeNoMIME type of the uploaded file (defaults to text/plain)
file_contentNoBase64 encoded file content (uses fixture logs if not provided)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for disclosing side effects. It states 'Upload log files' which may imply a write action, but it does not clarify whether the tool is read-only, stores data, or has any lasting effects. This opacity about behavioral traits warrants a low score.

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 a single, concise sentence with no unnecessary words. It front-loads the action and outcomes, making it easy to parse 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?

For a simple tool with no output schema or nested objects, the description provides sufficient context. It clearly communicates the tool's function and does not require additional detail to be actionable.

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%, as each parameter (date, file_name, file_type, file_content) has a description. The tool description itself adds no parameter-level detail beyond the schema, so the baseline score of 3 is appropriate.

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 action (upload and analyze) and the specific outcomes (anomalies, severity classification, root cause detection), making its purpose unambiguous. It is distinct from sibling tools such as calculate or list-incidents, which focus on other domains.

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 implies usage for log analysis but does not explicitly mention when to use it versus the sibling alternatives. It lacks guidance on conditions or exclusions, such as 'use this when you have log files' or 'for incident details, use get-incident-details instead.'

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedcalculate
    • First observedconvert_temperature
    • First observedexport-report
    • First observedget-incident-details
    • First observedlist-incidents
    • First observedupload-and-analyze

TDQS

B3.1/5.0

Scored across 6 tools

Disambiguation5/5

All six tools have clearly distinct purposes: calculate and convert_temperature handle math, while the incident-related tools (upload-and-analyze, get-incident-details, list-incidents, export-report) each perform a unique action (analyze, retrieve, list, export). No overlaps or ambiguities exist.

Naming Consistency2/5

Naming conventions are inconsistent: 'calculate' is a bare verb, 'convert_temperature' uses an underscore, 'upload-and-analyze' uses hyphens, and the incident tools mix noun phrases with hyphens. A uniform pattern (e.g., verb_noun) is not followed.

Tool Count5/5

With six tools, the count falls within the typical 3–15 range and is appropriate for the mixed functionality (calculation and incident management). No redundancy or excessive bloat.

Completeness2/5

The tool set is incomplete relative to its apparent scope. As a calculator server, it lacks common operations (trigonometry, logarithms, etc.). As an incident management system, it provides list/get/upload/export but misses update and delete operations. The mix of domains further reduces coherence and completeness.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    This MCP server provides calculator tools, resources, and prompts for arithmetic operations, and serves as a minimal template for learning NitroStack fundamentals.
    -
  • F
    license
    A
    quality
    C
    maintenance
    A minimal NitroStack starter template with a calculator module including tools, resources, and prompts for learning MCP server fundamentals.
    4
    -
  • F
    license
    C
    quality
    C
    maintenance
    A minimal MCP server template for learning NitroStack fundamentals, featuring a calculator module with tools, resources, and prompts.
    9
    -
  • F
    license
    A
    quality
    C
    maintenance
    A starter template for building calculator-focused MCP servers using NitroStack, including tools, resources, and prompts.
    6
    25 npm
    -