Calculator MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Calculator MCP Servercalculate 15 * 4 + 3"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NitroStack Starter Template
Minimal template for learning NitroStack fundamentals with a calculator-focused MCP server and basic widgets.
What This Template Includes
calculatormodule with tools, resources, and promptsTypeScript + Zod validation setup
Widget-ready project structure
Production-friendly npm scripts
Related MCP server: Calculator MCP Server
Quick Start
npx @nitrostack/cli init my-server --template typescript-starter
cd my-server
npm run devCommon Commands
npm run dev
npm run build
npm startNitroStudio
NitroStudio is the recommended way to test and debug this template during development.
Download: https://nitrostack.ai/studio
Studio: https://nitrostack.ai/studio
Links
Templates docs: https://docs.nitrostack.ai/templates/01-starter-template
Main repository: https://github.com/nitrocloudofficial/nitrostack
Community
Available Tools
6 toolsanalyze_accessibilityB
Analyze a parsed lesson for accessibility barriers: missing captions, missing diagram descriptions, and language.
| Name | Required | Description | Default |
|---|---|---|---|
| raw_text | Yes | The extracted lesson text from parse_lesson_file | |
| has_audio | No | Whether the source lesson contains spoken/audio content | |
| has_images | No | Whether the source lesson contains diagrams/images |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, read-only guarantees, permissions, or rate limits. The description only states the action without transparency about effects.
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 a single, focused sentence that immediately states the verb and resource, followed by specific aspects. It is concise and efficient with no redundant information.
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?
The description adequately conveys the tool's purpose for an agent to decide when to call it. Although there is no output schema, the description implies the analysis result without detailing the return format, which is acceptable given the tool's simplicity and the presence of input parameter descriptions.
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?
The schema provides high coverage (100%) with descriptions for all three parameters (raw_text, has_audio, has_images). The description adds context about accessibility barriers but does not substantially enhance the parameter meanings beyond what the schema already states, so the baseline of 3 applies.
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 action (analyze), the resource (parsed lesson), and the specific focus (accessibility barriers like missing captions, diagram descriptions, and language). It distinguishes itself from sibling tools like parse_lesson_file by targeting analysis rather than parsing.
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 gives context ('parsed lesson') implying it should follow parsing, but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions 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.
calculateC
Perform basic arithmetic calculations
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First number | |
| b | Yes | Second number | |
| operation | Yes | The operation to perform |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Temperature value to convert | |
| to_unit | No | Unit to convert to (C or F) | |
| file_name | Yes | Name of the uploaded file | |
| file_type | Yes | MIME type of the uploaded file | |
| from_unit | No | Unit to convert from (C or F) | |
| file_content | Yes | Base64 encoded file content. Will be injected by system. |
TDQS
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.
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.
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.
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.
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.
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.
get_student_progressB
Retrieve a student's recorded quiz history and progress
| Name | Required | Description | Default |
|---|---|---|---|
| student_id | Yes | Identifier for the student |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, mention any side effects, or describe what happens if the student_id is invalid or no data exists. It also does not disclose whether the response includes full history or an aggregated summary. The minimal wording leaves important behavioral traits implicit.
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 a single sentence of nine words, with no redundant phrasing. The verb and resource are front-loaded, and every word contributes to the meaning. It is appropriately sized for a simple retrieval tool.
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 that there is no output schema, the description should explain the nature of the return data. It mentions 'quiz history and progress' but does not specify the structure, fields, or level of detail. For a simple one-parameter tool this might be acceptable, but the vagueness of 'progress' and lack of any error or edge-case context make it incomplete. The description does not compensate for the absence of an output schema.
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?
The schema fully documents the single parameter student_id with a description ('Identifier for the student'), giving 100% coverage. The tool description adds no additional meaning, such as format examples or constraints, but the schema already provides sufficient clarity. Baseline of 3 is appropriate when 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 uses a specific verb ('Retrieve') and a clear resource ('a student's recorded quiz history and progress'). It distinguishes itself from siblings like record_quiz_result (a write operation) and unrelated tools like calculate or convert_temperature. However, it does not specify the exact scope of 'progress' (e.g., summary vs. detailed list), leaving some 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?
Usage is implied by the verb 'Retrieve' and the resource, indicating a read-only action. There is no explicit guidance on when to use this tool versus the sibling record_quiz_result, nor any mention of prerequisites or conditions. It relies on the agent inferring that this is the appropriate tool for viewing progress data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_lesson_fileB
Parse an uploaded lesson file (PDF) and extract structured content
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Name of the uploaded file | |
| file_type | Yes | MIME type of the uploaded file | |
| file_content | Yes | Base64 encoded file content. Injected by system. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining side effects. It does not state whether parsing is read-only, whether any file data is persisted, or what happens on invalid or non-PDF input. This leaves important behavioral expectations unaddressed.
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 a single, concise sentence that communicates the core purpose without unnecessary detail or repetition. It is well-structured and easy to scan.
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?
The description lacks an output schema and does not describe the shape of the extracted structured content. An agent would not know whether the result is JSON, a list of sections, raw text, or something else. It also does not cover error behavior for unsupported files.
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?
The input schema properties are described with generic boilerplate ('Name of the uploaded file', 'MIME type', 'Base64 encoded file content'), but the tool description does add that the file is expected to be a PDF. However, it does not clarify accepted MIME values, filename conventions, or content encoding requirements beyond what the schema already states.
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 action ('Parse'), the target resource ('an uploaded lesson file (PDF)'), and the expected outcome ('extract structured content'). This distinguishes it from the listed sibling tools, none of which perform file parsing.
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 gives no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, file-size limits, or scenarios where another tool would be more appropriate. The use case is only implicitly inferable from the verb 'Parse'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_quiz_resultB
Record a student quiz result for progress tracking
| Name | Required | Description | Default |
|---|---|---|---|
| score | Yes | Score achieved, e.g. 8 | |
| total | Yes | Total possible score, e.g. 10 | |
| student_id | Yes | Identifier for the student | |
| lesson_topic | Yes | Topic of the lesson quizzed on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose side effects. It only states 'record' without clarifying whether this creates a new entry, overwrites an existing one, or validates data. No mention of system side effects, data persistence, or potential destructive actions is made, leaving the behavior partially opaque.
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 a single, clear sentence that immediately conveys the tool's purpose. It is free of unnecessary jargon, redundant phrases, or extraneous details, making it highly efficient and well-structured.
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 simple tool with a fully descriptive schema and no output schema, the description adequately covers the essential context. It explains the purpose without missing critical information about inputs or expected behavior, though it could benefit from a brief note on when this is typically invoked (e.g., after a quiz).
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?
The input schema provides descriptions for all four parameters (e.g., 'Score achieved', 'Total possible score'), achieving 100% coverage. The description itself adds no additional semantic detail beyond what the schema already specifies, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Record'), the specific resource ('a student quiz result'), and the purpose ('for progress tracking'). This distinguishes it from sibling tools like 'get_student_progress' which retrieves data, and 'calculate' which performs computations.
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 explicit guidance on when to use this tool versus alternatives. It mentions the purpose ('progress tracking') but does not specify conditions, such as after a quiz completion or how it relates to other recording tools. No alternative tools are referenced.
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.
6 tool updates
v1.0.0- First observed
analyze_accessibility - First observed
calculate - First observed
convert_temperature - First observed
get_student_progress - First observed
parse_lesson_file - First observed
record_quiz_result
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: arithmetic calculation, temperature conversion, lesson parsing, accessibility analysis, quiz recording, and progress retrieval. There is no overlap or ambiguity in their functions.
All tool names follow a consistent verb_noun pattern in snake_case (calculate, convert_temperature, parse_lesson_file, analyze_accessibility, record_quiz_result, get_student_progress). This makes the API predictable and easy to navigate.
Six tools is well within the ideal range for a focused server. Each tool addresses a specific workflow step without redundancy, though the server name suggests a calculator, the broader educational purpose justifies the variety.
While the domain is not strictly defined, there are notable gaps: no tool to create or edit lessons (only parse), no update/delete for quiz results, and no temperature conversion beyond C/F. Core workflows exist but lack full lifecycle coverage.
Maintenance
Related MCP Connectors
Free calculators as MCP tools: finance, taxes, health, units, dates. Search, fetch & compute.
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
Create AWS cost estimates and shareable AWS Pricing Calculator URLs.
MCPCalc gives agents access to a comprehensive library of calculators spanning finance, math, health, construction, engineering, food, automotive, and more. It includes a full Computer Algebra System (CAS) and a grid-based Spreadsheet calculator.
Related MCP Servers
- FlicenseBqualityCmaintenanceProvides calculator tools, resources, and prompts for learning NitroStack fundamentals.2-
- AlicenseNot gradedqualityBmaintenanceEnables arithmetic operations and calculations through natural language, serving as a learning template for NitroStack.MIT
- FlicenseNot gradedqualityCmaintenanceThis MCP server provides calculator tools, resources, and prompts for arithmetic operations, and serves as a minimal template for learning NitroStack fundamentals.-
- FlicenseAqualityCmaintenanceA calculator-focused MCP server built with NitroStack, providing tools, resources, and prompts for arithmetic operations.14-