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>
24 lines
1.2 KiB
Markdown
24 lines
1.2 KiB
Markdown
# 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](https://github.com/astral-sh/uv) to create and manage the virtual environment.
|
|
- `uv venv --python 3.12`
|
|
- `source .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 `pytest` from 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`, and `pytest`) 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`, and `mypy` passed.
|
|
|
|
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.
|