Skip to main content
Glama

mcp-rpn

MCP server that exposes an RPN calculator

PyPI Python Ruff

Install

pip install mcp-rpn

Related MCP server: Calculator MCP Server

Usage

mcp-rpn

The 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 stack

  • dup - Duplicate top of stack

  • swap - Swap top two elements

Examples:

  • 3 4 + returns 7

  • 10 5 2 + * 2 - returns 32

  • 3 2 / returns 1.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 tools
clearA

Clear the RPN calculator stack.

Removes all values from the current session stack.

Returns: Confirmation message that stack was cleared.

Example: >>> clear() 'Stack cleared'

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesSpace-separated RPN expression (e.g., "3 4 +").
show_stackNoWhether to return full stack after evaluation (default: False).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 2 tool updatesv0.1.1
    • First observedclear
    • First observedevaluate

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count3/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A simple MCP server that provides basic calculator functionality for performing mathematical operations. Built with FastMCP and demonstrates fundamental MCP server implementation patterns.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A simple MCP server that provides calculator tools for basic arithmetic operations with zero-division protection.
    27 npm
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    A simple MCP server that provides a calculator tool for basic arithmetic operations.
    5 npm
    -