935abf86d4
build-image / build (push) Failing after 18s
- Bump mcp[cli] 1.22 -> 1.28.1 (negotiates MCP protocol 2025-11-25, matching current Claude clients; the old 2025-06-18 server never got a tools/list on the connector surface). - Bake transport config into code: stateless_http + json_response for HTTP (single JSON body instead of a 34KB SSE stream, which the connector pipeline handles far more reliably). - Bake Authentik OAuth (AuthSettings + JWT TokenVerifier) into intervals_mcp_server.auth, configured from MCP_ISSUER/MCP_RESOURCE/MCP_JWKS_URI/MCP_CLIENT_ID — removes the runtime FastMCP.__init__ monkeypatch from the k8s deployment command. - Accept token audience with/without trailing slash (RFC 8707 clients use the slash-normalised resource metadata value). - Dockerfile CMD runs the module (transport via MCP_TRANSPORT); add .gitea CI to build+push the image to git.farh.net/farhoodlabs/intervalsicu-mcp. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.2 KiB
1.2 KiB
Contributor Guide
This project is a Python 3.12 backend service built with FastMCP and httpx. All source code lives under src/intervals_mcp_server and tests live under tests.
Development Environment
- Use uv to create and manage the virtual environment.
uv venv --python 3.12source .venv/bin/activate
- Sync dependencies including dev extras with
uv sync --all-extras. - When editing or running the server manually use
mcp run src/intervals_mcp_server/server.py.
Testing Instructions
- Run unit tests with
pytestfrom the repository root. - Ensure linting passes with
ruff .(no configuration file means default rules). - Run static type checks using
mypy src tests. - All three steps (
ruff,mypy, andpytest) should succeed before committing.
PR Instructions
- Use concise commit messages.
- Title pull requests using the format
[intervals-mcp-server] <brief description>. - Describe any manual testing steps performed and mention whether
pytest,ruff, andmypypassed.
There is currently no frontend code in this repository. If a frontend is added in the future (for example with React or another framework), document how to run and test it within this file.