mcpField
C
calculator

calculator

github.com/code-and-sortsOther58853 installsUpdated 26w ago
Repository

About calculator

A calculator skill for evaluating arithmetic expressions with arbitrary-precision decimal math. It supports standard operators, parentheses, and integer exponents, but not symbolic math or trigonometric functions.

Key features

  1. 01Arbitrary-precision decimal arithmetic
  2. 02Operator precedence and parentheses
  3. 03Right-associative integer exponents
  4. 04Errors for invalid expressions and division by zero

Use cases

  1. 01Calculate decimal expressions without floating-point artifacts
  2. 02Evaluate expressions with nested parentheses
  3. 03Compute integer powers with right-associative order

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/code-and-sorts/awesome-copilot-agents --skill calculator

After installing, type/calculatorin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

scripts/
jest.config.js
package-lock.json
package.json
tsconfig.json
scripts/src/
calculator.test.ts
calculator.ts
run.ts

Details

From the project README

Calculator

Evaluate arithmetic expressions with arbitrary-precision decimal math using big.js.

When to Use

  • User asks to calculate or evaluate a math expression
  • Precise decimal arithmetic is needed (avoids floating-point errors like 0.1 + 0.2 = 0.30000000000000004)
  • Expressions involve parentheses, operator precedence, or exponents

Supported Operations

OperatorDescriptionPrecedence
+Addition1
-Subtraction1
*Multiplication2
/Division2
^Exponent (right-associative)3
()ParenthesesHighest

Usage

cd scripts
npm ci || npm install
npm run build
npm run calculate "<expression>"

Examples

InputOutput
"3 + 2"5
"10 / 4"2.5
"2 ^ 10"1024
"(2 + 3) * 4"20
"1 + 4.5 * (3-6) / 5"-1.7
"-5 + 3"-2
"2 ^ 3 ^ 2"512 (right-associative: 2^9)

Edge Cases

  • Empty expression: Throws "Empty expression" error
  • Mismatched parentheses: Throws "Mismatched parentheses" error
  • Division by zero: big.js throws an error
  • Exponent must be integer: big.js .pow() requires integer exponents

Limitations

  • No trigonometric functions (sin, cos, tan)
  • No variables or symbolic math
  • Exponents must be integers
  • No factorial, modulo, or bitwise operators

Comments

Markdown supported