Problem
frontapp_mcp_server/pyproject.toml pins fastmcp>=2.13.0. Sibling repos stocktrim (PR #155) and statuspro have both moved to fastmcp 3.x and unlocked several capabilities frontapp wants:
ResponseCachingMiddleware (built-in read-tool caching) — see issue #TBD-CACHE
- Native MCP Prompts as a first-class primitive — see issue #TBD-PROMPTS
- PrefabApp / MCP Apps spec alignment — see issue #TBD-PREFAB
- Cleaner OTel span instrumentation (replaces our bespoke
observe_* decorators) — see issue #TBD-OBSERVE
This is a precondition issue. Land it first, then the dependent issues become straightforward.
Plan
- Read the fastmcp 3.x changelog/migration guide
- Audit
frontapp_mcp_server/src/frontapp_mcp/_fastmcp_patches.py — many of these patches likely become obsolete on 3.x; document which can go away
- Bump
frontapp_mcp_server/pyproject.toml fastmcp>=3.0.0
- Adapt server entry point (
server.py), middleware registration, and any 2.x-specific call sites
- Verify
uv run poe full-check passes
- Verify
uv run poe mcp-dev starts cleanly and the inspector lists the same tool/resource set
Files likely affected
frontapp_mcp_server/pyproject.toml
frontapp_mcp_server/src/frontapp_mcp/_fastmcp_patches.py
frontapp_mcp_server/src/frontapp_mcp/server.py
frontapp_mcp_server/src/frontapp_mcp/__main__.py
- Possibly
frontapp_mcp_server/tests/conftest.py for any test-side fixtures
Acceptance criteria
Reference
Problem
frontapp_mcp_server/pyproject.tomlpinsfastmcp>=2.13.0. Sibling repos stocktrim (PR #155) and statuspro have both moved to fastmcp 3.x and unlocked several capabilities frontapp wants:ResponseCachingMiddleware(built-in read-tool caching) — see issue #TBD-CACHEobserve_*decorators) — see issue #TBD-OBSERVEThis is a precondition issue. Land it first, then the dependent issues become straightforward.
Plan
frontapp_mcp_server/src/frontapp_mcp/_fastmcp_patches.py— many of these patches likely become obsolete on 3.x; document which can go awayfrontapp_mcp_server/pyproject.tomlfastmcp>=3.0.0server.py), middleware registration, and any 2.x-specific call sitesuv run poe full-checkpassesuv run poe mcp-devstarts cleanly and the inspector lists the same tool/resource setFiles likely affected
frontapp_mcp_server/pyproject.tomlfrontapp_mcp_server/src/frontapp_mcp/_fastmcp_patches.pyfrontapp_mcp_server/src/frontapp_mcp/server.pyfrontapp_mcp_server/src/frontapp_mcp/__main__.pyfrontapp_mcp_server/tests/conftest.pyfor any test-side fixturesAcceptance criteria
fastmcp>=3.0.0pinned, lockfile regenerated_fastmcp_patches.pyaudited; obsolete patches removed with a one-line comment per remaining patchuv run poe full-checkpassesuv run poe mcp-devlists same tools and resources as beforeReference