Files
intervalsicu-mcp/AGENTS.md
T
Chris Farhood 935abf86d4
build-image / build (push) Failing after 18s
Fork intervals-mcp-server: native OAuth + streamable-HTTP, no monkeypatch
- 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>
2026-07-04 15:07:46 -04:00

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.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.