Releases: rubensgomes/calculator-mcp
v0.2.16
v0.2.15
Changes
Changed
- Bumped
fastmcpminimum version from 3.1.0 to 3.2.0 - Bumped
calculator-lib-rubensminimum version from 0.1.5 to 0.1.6 - Bumped dev dependencies:
black26.3.1+,coverage7.13.5+,pytest-cov7.1.0+,pytest-asyncio1.4.0a0+,mypy1.20.0+
Removed
- Unused
todo.pyOAuth example script
v0.2.14
Changes
Changed
- Moved
client.pyfromsrc/calculator_mcp/totests/integration/(integration test client only) - Updated
CLAUDE.md,README.md,llms.txtproject structure and references
Added
tests/integration/__init__.pypackage init for integration teststests/test_config.py— 14 unit tests for all config helperstests/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 totests/integration/client.py)
v0.2.13
Changes
Removed
_check_health()function and its call fromclient.py- Unused
httpximport fromclient.py
Fixed
"httpd"typo in README.md configuration example (now"http")
Changed
- README.md: added
clientconfig section, addedclient.pyto project structure, removed health check mention - llms.txt: corrected config path, added client config entries, added
client.pyto key files, addedpy-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
Fix OAuth token exchange and add config-driven OAuth settings
Fixed
- OAuth token exchange failing with 401 due to CloudFront Lambda proxy rejecting
Authorization: Basicheader
Added
get_token_dir()andget_callback_port()config helpers inconfig.pytoken_dirandcallback_portclient settings inconfig.yaml- OAuth token storage encryption key setup instructions in
SETUP.md - WSL2 browser interop instructions in
SETUP.md docs/oauth-troubleshooting.mdtroubleshooting guide for OAuth issues
Changed
client.py: use config-driventoken_dirandcallback_portinstead of hardcoded valuesclient.py: requestclient_secret_postauth method during OAuth dynamic client registrationclient.py: skip health check for OAuth connections (hosted endpoint requires bearer token)
v0.2.11
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.pyviafastmcp.client.auth.OAuthwith encrypted disk-based token storage is_oauth()config helper inconfig.pyto readclient.is_oauthfromconfig.yamlis_oauthandurlclient settings inconfig.yamlfor the hosted FastMCP endpoint- ZScaler certificate troubleshooting section in
SETUP.md py-key-value-aio[disk]project dependency inpyproject.toml
Changed
.mcp.jsonserver URL updated tohttps://rubens-calculator-mcp.fastmcp.app/mcpclient.py: moved health check inside theasync with client:block, addedclient.ping()before tool callsconfig.yaml: default logging level forcalculator_mcpchanged from INFO to DEBUG
v0.2.10
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.jsonproject-scope MCP server configuration for Claude Code- "Add MCP Server to Claude Code" section in
README.mdwith setup instructions cookiecutteranduvtoSETUP.mdprerequisites andpipx/uvinstall lists
Changed
- Fixed YAML indentation in
README.mdconfiguration example - Updated
poetry.lock
Removed
- Disclaimer header from
tests/__init__.py
v0.2.9
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
mypyback from standalonepipxinstall to Poetry dev dependency - Restructured
poethepoetclean task into individual subtasks with a sequence combiner - Added
pylintstep to the release-plan slash command - Removed
mypyfromSETUP.mdprerequisites andpipxinstall/upgrade lists - Added
mypytoSETUP.mddev dependencies section - Suppressed
unused-argumentpylint warning onhealth_checkroute handler
v0.2.8
Summary
Dependency and tooling maintenance release.
Changed
- Moved
isort,mypy,pylint, andpytestfrom Poetry dev dependencies to standalonepipxinstalls - Reverted
poetry-corebuild requirement from>=2.3.2to>=2.3.1(latest available) - Alphabetized prerequisites and sorted remaining dev dependencies in
pyproject.toml - Updated
SETUP.mdprerequisites list and install instructions to includeisort,mypy, andpoethepoet
Added
poethepoettask runner with acleantask inpyproject.toml
Removed
isort,mypy,pylint,pytest, andpipxfrom Poetry dev dependency group
v0.2.7 — Health check, instructions, and client improvements
What's Changed
Added
instructionsparameter on the FastMCP constructor describing all 16 tools/healthcustom HTTP route returning plain-textOKwith loggingget_url()config helper to readclient.urlfromconfig.yamlclientsection inconfig.yamlwith the client URL for HTTP transport- Health check call (
_check_health()) as the first step inrun_client()for HTTP transport test_health_checkintegration test usinghttpx.ASGITransport- "Running the Client" section in
README.mdwith usage instructions
Changed
- Replaced manual URL construction in
client.pywithget_url()from config - Replaced custom
_shutdown_handler/sys.exit(0)inmain.pywithtry/except KeyboardInterrupt, letting FastMCP handle its own signal cleanup
Removed
_shutdown_handler()function andsignal,sys,typesimports frommain.py