rpn-mcp
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., "@rpn-mcpcalculate 10 5 2 + * 2 - and show the stack"
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.
mcp-rpn
MCP server that exposes an RPN calculator
Install
pip install mcp-rpnRelated MCP server: Calculator MCP Server
Usage
mcp-rpnThe server uses stdio transport for MCP protocol communication.
MCP Tools
evaluate
Evaluate an RPN (Reverse Polish Notation) expression.
{
"name": "evaluate",
"arguments": {
"expression": "3 4 +",
"show_stack": true
}
}Operators:
+- Add-- Subtract-- Multiply/- Divide**- Power%- Modulo
Commands:
clear- Clear the stackdup- Duplicate top of stackswap- Swap top two elements
Examples:
3 4 +returns710 5 2 + * 2 -returns323 2 /returns1.5
clear
Clear the calculator stack.
{
"name": "clear",
"arguments": {}
}Development
git clone https://github.com/daedalus/mcp-rpn.git
cd mcp-rpn
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/MCP Registry
mcp-name: io.github.daedalus/mcp-rpn
Available Tools
2 toolsclearA
Clear the RPN calculator stack.
Removes all values from the current session stack.
Returns: Confirmation message that stack was cleared.
Example: >>> clear() 'Stack cleared'
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It explicitly discloses the destructive action ('Removes all values') and describes the return value (confirmation message), which gives the agent enough to understand side 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 brief, front-loaded with the primary purpose, and each sentence adds meaningful detail (scope, return value, example). No filler.
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 state-reset tool, the description covers purpose, behavior, return value, and an example. With no parameters and a trivial schema, nothing essential is missing.
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 tool has zero parameters and the schema is empty, so there are no parameter semantics to add. The description correctly implies no arguments are needed, and the baseline for 0-param tools is 4.
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 opens with a clear verb+resource ('Clear the RPN calculator stack') and further specifies the scope ('current session stack'), making it distinct from the sibling tool 'evaluate' which presumably computes expressions.
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?
It provides clear context for when this tool is appropriate — clearing the current session's stack — without explicit alternatives. Since there is only one sibling (evaluate), the usage is implied but not explicitly contrasted, so it slightly misses a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluateA
Evaluate an RPN (Reverse Polish Notation) expression.
Operators: +, -, *, /, **, % (add, subtract, multiply, divide, power, modulo). Commands: clear (clear stack), dup (duplicate top), swap (swap top two). Example: '3 4 +' returns 7
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Space-separated RPN expression (e.g., "3 4 +"). | |
| show_stack | No | Whether to return full stack after evaluation (default: False). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose side effects. It mentions stack commands (clear, dup, swap) and the show_stack parameter, implying a persistent stack, but it never explicitly states whether stack state persists across calls or how errors like division by zero are handled. This ambiguity is a significant gap.
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, beginning with the primary purpose and then listing operators and commands. There is no fluff, though the line breaks make it slightly less dense than necessary. Each sentence contributes meaningful 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?
An output schema exists, so return value details are covered. However, the tool appears to involve a shared stack (given the sibling 'clear' and the show_stack parameter), and the description does not explain how the stack persists across calls or how evaluate interacts with clear. This missing context makes the description incomplete for a stateful tool.
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%, so the baseline is 3. The description adds value by enumerating the allowed operators and commands, which is not present in the schema, and gives an example of a valid expression. However, it does not elaborate on the show_stack parameter beyond the schema, so it does not fully extend parameter 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 'Evaluate an RPN expression' and provides a concrete example ('3 4 +' returns 7). It also enumerates operators and stack commands, distinguishing it from the sibling 'clear' tool.
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 implies usage by giving an example and listing supported operators/commands, but it does not explicitly state when to use this tool versus the sibling 'clear' or mention any prerequisites. It lacks explicit exclusions or alternative guidance.
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.
2 tool updates
v0.1.1- First observed
clear - First observed
evaluate
TDQS
Scored across 2 tools
The evaluate and clear tools have clearly distinct primary purposes: evaluate processes RPN expressions, while clear resets the stack. However, evaluate also supports a 'clear' command, creating a minor overlap where users might use a command inside an expression instead of the dedicated tool, but descriptions make the distinction clear enough.
Both tool names are simple, lowercase, single-word verbs (evaluate and clear), following a consistent pattern. There is no mixing of conventions, and each name accurately reflects its action.
With only 2 tools, the server feels slightly thin, though the scope is a narrow RPN calculator. The clear tool is somewhat redundant because the evaluate tool already supports a 'clear' command, making the count less justified than if it were a single evaluate tool.
The evaluate tool covers core arithmetic operators and stack manipulation commands (dup, swap), providing a functional surface for an RPN calculator. A minor gap is the lack of a dedicated stack inspection command or tool, but the primary lifecycle of evaluation and clearing is covered.
Maintenance
Related MCP Connectors
This MCP server enables users to perform scientific computations regarding linear algebra and vect…
Read-only developer, date, finance, and text utilities. Authless remote MCP server by Clean.tools.
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA simple MCP server that provides basic calculator functionality for performing mathematical operations. Built with FastMCP and demonstrates fundamental MCP server implementation patterns.-
- AlicenseNot gradedqualityDmaintenanceA simple MCP server that provides calculator tools for basic arithmetic operations with zero-division protection.27 npmISC
- FlicenseAqualityDmaintenanceA simple MCP server that provides basic calculator operations such as add, subtract, multiply, and divide.4-
- FlicenseNot gradedqualityDmaintenanceA simple MCP server that provides a calculator tool for basic arithmetic operations.5 npm-