Skip to main content
Glama
cyanheads

calculator-mcp-server

by cyanheads

Version License Docker MCP SDK npm TypeScript Bun

Установить в Claude Desktop Установить в Cursor Установить в VS Code

Фреймворк

Публичный сервер: https://calculator.caseyjhand.com/mcp


Инструменты

Один инструмент для всех математических операций:

Имя инструмента

Описание

calculate

Вычисляет математические выражения, упрощает алгебраические выражения или вычисляет символьные производные.

calculate

Один инструмент, покрывающий 100% назначения сервера. Параметр operation по умолчанию равен evaluate, поэтому обычный случай — просто { expression: "..." }.

  • Evaluate — арифметика, тригонометрия, логарифмы, статистика, матрицы, комплексные числа, преобразование единиц, комбинаторика

  • Simplify — символьное упрощение алгебраических выражений (например, 2x + 3x -> 5 * x). Поддерживает алгебраические и тригонометрические тождества

  • Derivative — вычисление символьных производных (например, 3x^2 + 2x + 1 -> 6 * x + 2)

  • Область переменных через параметр scope: { "x": 5, "y": 3 }

  • Настраиваемая точность числовых результатов

  • Пустые необязательные значения variable и precision из клиентов MCP на основе форм считаются опущенными


Related MCP server: pycodemath

Ресурсы

Шаблон URI

Описание

calculator://help

Доступные функции, операторы, константы и справочник по синтаксису.


Возможности

Построен на @cyanheads/mcp-ts-core:

  • Декларативные определения инструментов — один файл на инструмент, фреймворк обрабатывает регистрацию и валидацию

  • Единая обработка ошибок для всех инструментов

  • Структурированное логирование с опциональной трассировкой OpenTelemetry

  • Работает локально (stdio/HTTP) или в Docker

Специфично для калькулятора:

  • Усиленный экземпляр math.js v15 — опасные функции отключены, выполнение изолировано через vm.runInNewContext() с таймаутом

  • Аутентификация не требуется — все операции только для чтения и без сохранения состояния

  • Проверка ввода: ограничение длины выражения, отклонение разделителей выражений (точки с запятой и переводы строк), только числовые значения области

  • Проверка результата: заблокированные типы результатов (функции, парсеры, наборы результатов), настраиваемый максимальный размер результата

  • Очистка области: только числовые значения, предотвращение загрязнения прототипа (заблокированы __proto__, constructor и т.д.)


Начало работы

Публичный размещённый экземпляр

Публичный экземпляр доступен по адресу https://calculator.caseyjhand.com/mcp — установка не требуется. Подключите любой MCP-клиент к нему через Streamable HTTP:

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "streamable-http",
      "url": "https://calculator.caseyjhand.com/mcp"
    }
  }
}

Самостоятельное размещение / Локально

Добавьте одну из следующих строк в файл конфигурации вашего MCP-клиента:

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/calculator-mcp-server@latest"]
    }
  }
}

Или с помощью npx (Bun не требуется):

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/calculator-mcp-server@latest"]
    }
  }
}

Или с помощью Docker:

{
  "mcpServers": {
    "calculator-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "ghcr.io/cyanheads/calculator-mcp-server:latest"
      ]
    }
  }
}

Предварительные требования

Установка

  1. Клонируйте репозиторий:

git clone https://github.com/cyanheads/calculator-mcp-server.git
  1. Перейдите в каталог:

cd calculator-mcp-server
  1. Установите зависимости:

bun install

Конфигурация

Переменная

Описание

По умолчанию

CALC_MAX_EXPRESSION_LENGTH

Максимально допустимая длина строки выражения (10–10 000).

1000

CALC_EVALUATION_TIMEOUT_MS

Максимальное время вычисления в миллисекундах (100–30 000).

5000

CALC_MAX_RESULT_LENGTH

Максимальная длина строки результата в символах (1 000–1 000 000).

100000

MCP_TRANSPORT_TYPE

Транспорт: stdio или http.

stdio

MCP_HTTP_HOST

Имя хоста для HTTP-сервера.

localhost

MCP_HTTP_PORT

Порт для HTTP-сервера.

3010

MCP_HTTP_ENDPOINT_PATH

Путь для HTTP MCP-эндпоинта.

/mcp

MCP_HTTP_MAX_BODY_BYTES

Максимальный размер входящего HTTP-запроса; 0 отключает ограничение.

1048576

MCP_AUTH_MODE

Режим аутентификации: none, jwt или oauth.

none

MCP_LOG_LEVEL

Уровень логирования (RFC 5424).

info

См. .env.example для дополнительных настроек сеанса, возобновляемости, логирования и телеметрии.


Запуск сервера

Локальная разработка

  • Соберите и запустите производственную версию:

    bun run build
    bun run start:http   # or start:stdio
  • Запустите проверки и тесты:

    bun run devcheck     # Lints, formats, type-checks
    bun run test         # Runs test suite

Docker

docker build -t calculator-mcp-server .
docker run -p 3010:3010 calculator-mcp-server

Образ по умолчанию использует Streamable HTTP на порту 3010, сеансы без сохранения состояния и журналы в /var/log/calculator-mcp-server.


Структура проекта

Каталог

Назначение

src/mcp-server/tools/

Определения инструментов (*.tool.ts).

src/mcp-server/resources/

Определения ресурсов (*.resource.ts).

src/services/

Интеграции доменных сервисов (MathService).

src/config/

Разбор и валидация переменных окружения с помощью Zod.

docs/

Сгенерированное дерево каталогов.


Руководство по разработке

См. AGENTS.md или CLAUDE.md для руководства по разработке и архитектурных правил. Краткая версия:

  • Обработчики выбрасывают исключения, фреймворк перехватывает — никаких try/catch в логике инструментов

  • Используйте ctx.log для логирования

  • Регистрируйте новые инструменты и ресурсы в src/index.ts


Вклад

Приветствуются issues и pull request'ы. Запустите проверки перед отправкой:

bun run devcheck
bun run test

Лицензия

Apache-2.0 — см. LICENSE для подробностей.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    High-precision mathematics server for MCP clients, providing exact integer arithmetic, symbolic derivatives, and numerical calculus via LaTeX-style input.
    6
    5 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides a token-efficient exact math engine for AI agents, enabling computation of derivatives, integrals, equations, and optimized Python/NumPy code via a single MCP tool.
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A mathematical MCP server exposing 6 basic arithmetic and secure symbolic expression evaluation tools (add, subtract, multiply, divide, power, evaluate_expression) with structured JSON responses, input validation, and safe AST-based parsing.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Safe MCP server for math operations: evaluate, simplify, and differentiate expressions with configurable precision, using a sandboxed worker thread and strict AST allowlist to block dangerous input.
    3
    MIT