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: math-mcp

Ресурсы

Шаблон 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 для подробностей.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Provides secure mathematical computation capabilities including expression evaluation, symbolic math (derivatives, simplification), matrix operations, statistics, and unit conversion, with multi-tier acceleration through WebAssembly and WebWorkers for high-performance calculations.
    7
    178
    ISC
  • A
    license
    A
    quality
    C
    maintenance
    A secure MCP server for evaluating mathematical expressions with grammar validation, function whitelisting, and sandboxed execution. It provides tools for expression evaluation, variable management, and resources for grammar and function documentation.
    6
    37
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    High-precision mathematics server for MCP clients, providing exact integer arithmetic, symbolic derivatives, and numerical calculus via LaTeX-style input.
    6
    17
    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.
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/calculator-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server