Contributing¶
Reporting issues¶
Open an issue on GitHub. Include:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Relevant logs (Cloud Run logs,
mcp-remoteoutput)
Making changes¶
- Fork the repo and create a feature branch.
- Make your changes — see Development for the local setup.
- Run
hatch run checkto ensure lint, types, and tests all pass. - Open a pull request against
main.
Code standards¶
- Python 3.12, typed with
mypy --strict - Ruff for linting and formatting (
line-length = 100) - Google-style docstrings on public classes and methods
- Tests live in
tests/and usepytestwithpytest-asyncio
The CI pipeline enforces all of these on every push.
Adding a new MCP tool¶
- Define the function in
src/the_curator/main.pydecorated with@mcp.tool(). - Add a docstring — it becomes the tool description visible to MCP clients.
- Wire any new dependencies through
PodcastGenerationorVertexClientrather than adding ad-hoc SDK calls inmain.py. - Add a test in
tests/test_main.py. - Document the new tool in API Reference → Server.