Skip to content

Releases: rubensgomes/calculator-mcp

v0.2.16

06 Apr 03:07

Choose a tag to compare

Changes

Changed

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

v0.2.15

06 Apr 03:01

Choose a tag to compare

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

06 Mar 23:43

Choose a tag to compare

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

06 Mar 15:19

Choose a tag to compare

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

06 Mar 03:56

Choose a tag to compare

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

03 Mar 23:49

Choose a tag to compare

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

03 Mar 03:14

Choose a tag to compare

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

01 Mar 23:33

Choose a tag to compare

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

01 Mar 23:01

Choose a tag to compare

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

v0.2.7 — Health check, instructions, and client improvements

28 Feb 03:32

Choose a tag to compare

What's Changed

Added

  • instructions parameter on the FastMCP constructor describing all 16 tools
  • /health custom HTTP route returning plain-text OK with logging
  • get_url() config helper to read client.url from config.yaml
  • client section in config.yaml with the client URL for HTTP transport
  • Health check call (_check_health()) as the first step in run_client() for HTTP transport
  • test_health_check integration test using httpx.ASGITransport
  • "Running the Client" section in README.md with usage instructions

Changed

  • Replaced manual URL construction in client.py with get_url() from config
  • Replaced custom _shutdown_handler / sys.exit(0) in main.py with try/except KeyboardInterrupt, letting FastMCP handle its own signal cleanup

Removed

  • _shutdown_handler() function and signal, sys, types imports from main.py