Skip to content

Releases: rubensgomes-org/calculator-mcp

v0.3.0

Choose a tag to compare

@rubensgomes rubensgomes released this 20 Aug 01:25

Added

  • Dockerfile — multi-stage image (python:3.14-slim-trixie) that installs
    pinned dependencies from poetry.lock, builds the project wheel, and runs
    the server as a non-root user on port 9000
  • .dockerignore and docker-compose.yml
  • DOCKER.md — container build, configuration, and deployment guide
  • Docker sections in README.md and SETUP.md
  • Docker image build and container health-check steps to the release process
  • keywords, license and classifiers metadata in pyproject.toml

Fixed

  • Server failed to start with PackageNotFoundError because
    server.py looked up the pre-rename distribution name calculator-mcp
    instead of calculator-mcp-rubens

Changed

  • Default server.host in the bundled config.yaml is now 0.0.0.0 so the
    server is reachable when running inside a container
  • Added pylint 4.0.6+ and isort 8.0.1+ to the dev dependency group. They
    were previously expected to be installed globally via pipx, so a fresh
    clone could not run them after poetry install
  • Bumped fastmcp minimum version from 3.2.0 to 3.4.7
  • Bumped calculator-lib-rubens minimum version from 0.1.6 to 0.2.0
  • Bumped py-key-value-aio minimum version from 0.4.4 to 0.4.5
  • Bumped poetry-core build requirement from 2.3.1 to 2.4.1
  • Bumped dev dependencies: black 26.5.1+, coverage 7.15.4+,
    pytest-asyncio 1.4.0+, mypy 1.20.2+

Removed

  • Support for Python 3.12 and 3.13. requires-python is now >=3.14.0

v0.2.16

Choose a tag to compare

@rubensgomes rubensgomes released this 06 Apr 03:07

Changes

Changed

  • Renamed PyPI package from calculator-mcp to calculator-mcp-rubens

v0.2.15

Choose a tag to compare

@rubensgomes rubensgomes released this 06 Apr 03:01

Changes

Changed

  • Bumped fastmcp minimum version from 3.1.0 to 3.2.0
  • Bumped calculator-lib-rubens minimum version from 0.1.5 to 0.1.6
  • Bumped dev dependencies: black 26.3.1+, coverage 7.13.5+, pytest-cov 7.1.0+, pytest-asyncio 1.4.0a0+, mypy 1.20.0+

Removed

  • Unused todo.py OAuth example script

v0.2.14

Choose a tag to compare

@rubensgomes rubensgomes released this 06 Mar 23:43

Changes

Changed

  • Moved client.py from src/calculator_mcp/ to tests/integration/ (integration test client only)
  • Updated CLAUDE.md, README.md, llms.txt project structure and references

Added

  • tests/integration/__init__.py package init for integration tests
  • tests/test_config.py — 14 unit tests for all config helpers
  • tests/test_main.py — 3 unit tests for CLI entry point (HTTP, stdio, KeyboardInterrupt)
  • tests/test_tools.py — 47 unit tests for all 16 tool functions (direct calls with edge cases)

Removed

  • src/calculator_mcp/client.py (moved to tests/integration/client.py)

v0.2.13

Choose a tag to compare

@rubensgomes rubensgomes released this 06 Mar 15:19

Changes

Removed

  • _check_health() function and its call from client.py
  • Unused httpx import from client.py

Fixed

  • "httpd" typo in README.md configuration example (now "http")

Changed

  • README.md: added client config section, added client.py to project structure, removed health check mention
  • llms.txt: corrected config path, added client config entries, added client.py to key files, added py-key-value-aio[disk] dependency
  • CLAUDE.md: added OAuth storage to tech stack, added missing modules to project structure, added architecture notes for client and main modules

v0.2.12

Choose a tag to compare

@rubensgomes rubensgomes released this 06 Mar 03:56

Fix OAuth token exchange and add config-driven OAuth settings

Fixed

  • OAuth token exchange failing with 401 due to CloudFront Lambda proxy rejecting Authorization: Basic header

Added

  • get_token_dir() and get_callback_port() config helpers in config.py
  • token_dir and callback_port client settings in config.yaml
  • OAuth token storage encryption key setup instructions in SETUP.md
  • WSL2 browser interop instructions in SETUP.md
  • docs/oauth-troubleshooting.md troubleshooting guide for OAuth issues

Changed

  • client.py: use config-driven token_dir and callback_port instead of hardcoded values
  • client.py: request client_secret_post auth method during OAuth dynamic client registration
  • client.py: skip health check for OAuth connections (hosted endpoint requires bearer token)

v0.2.11

Choose a tag to compare

@rubensgomes rubensgomes released this 03 Mar 23:49

Summary

Add OAuth support to the MCP client with encrypted token storage, update the MCP server URL to the hosted FastMCP endpoint, document ZScaler certificate workarounds, and add the py-key-value-aio[disk] dependency.

Added

  • OAuth support in client.py via fastmcp.client.auth.OAuth with encrypted disk-based token storage
  • is_oauth() config helper in config.py to read client.is_oauth from config.yaml
  • is_oauth and url client settings in config.yaml for the hosted FastMCP endpoint
  • ZScaler certificate troubleshooting section in SETUP.md
  • py-key-value-aio[disk] project dependency in pyproject.toml

Changed

  • .mcp.json server URL updated to https://rubens-calculator-mcp.fastmcp.app/mcp
  • client.py: moved health check inside the async with client: block, added client.ping() before tool calls
  • config.yaml: default logging level for calculator_mcp changed from INFO to DEBUG

v0.2.10

Choose a tag to compare

@rubensgomes rubensgomes released this 03 Mar 03:14

Summary

Minor maintenance release: adds .mcp.json project-scope MCP server configuration for Claude Code, documents the MCP server setup in README.md, adds cookiecutter and uv to SETUP.md prerequisites and install instructions, removes the disclaimer header from tests/__init__.py, fixes YAML indentation in the README.md config example, and updates poetry.lock.

Changes

Added

  • .mcp.json project-scope MCP server configuration for Claude Code
  • "Add MCP Server to Claude Code" section in README.md with setup instructions
  • cookiecutter and uv to SETUP.md prerequisites and pipx/uv install lists

Changed

  • Fixed YAML indentation in README.md configuration example
  • Updated poetry.lock

Removed

  • Disclaimer header from tests/__init__.py

v0.2.9

Choose a tag to compare

@rubensgomes rubensgomes released this 01 Mar 23:33

Summary

Minor maintenance release: moves mypy back from standalone pipx install to Poetry dev dependency, restructures poethepoet clean task into individual subtasks with a sequence combiner, adds pylint step to the release-plan command, and updates SETUP.md accordingly.

Changes

  • Moved mypy back from standalone pipx install to Poetry dev dependency
  • Restructured poethepoet clean task into individual subtasks with a sequence combiner
  • Added pylint step to the release-plan slash command
  • Removed mypy from SETUP.md prerequisites and pipx install/upgrade lists
  • Added mypy to SETUP.md dev dependencies section
  • Suppressed unused-argument pylint warning on health_check route handler

v0.2.8

Choose a tag to compare

@rubensgomes rubensgomes released this 01 Mar 23:01

Summary

Dependency and tooling maintenance release.

Changed

  • Moved isort, mypy, pylint, and pytest from Poetry dev dependencies to standalone pipx installs
  • Reverted poetry-core build requirement from >=2.3.2 to >=2.3.1 (latest available)
  • Alphabetized prerequisites and sorted remaining dev dependencies in pyproject.toml
  • Updated SETUP.md prerequisites list and install instructions to include isort, mypy, and poethepoet

Added

  • poethepoet task runner with a clean task in pyproject.toml

Removed

  • isort, mypy, pylint, pytest, and pipx from Poetry dev dependency group