Commit Graph

108 Commits

Author SHA1 Message Date
Max Isbey 91a983fc4c chore: ignore ANN204 to allow __init__ without return type
Replaces mypy-init-return (which only exempts __init__ when args are
typed) with a blanket ANN204 ignore. Special methods have well-known
return types and pyright infers them correctly.
2026-03-24 23:12:43 +00:00
Max Isbey cfde91dacd chore: exempt tests from ANN, enable mypy-init-return
Align with ecosystem norms per review feedback:
- Add mypy-init-return = true to skip -> None on __init__ when args are typed
- Exempt tests/** from ANN rules (near-universal practice)
- Revert test file annotations and __init__-only changes

Shrinks diff from 149 to ~47 files, keeping the valuable src/ return
type annotations that close the pyright gap.
2026-03-24 23:04:34 +00:00
Max Isbey 5697d68e65 chore: enforce type annotations on all functions via ruff ANN rules
Enable the `ANN` (flake8-annotations) rule set to require return type
and argument annotations on all function definitions. Pyright strict
already enforces argument types but infers return types silently; this
closes the gap so every function has an explicit return annotation.

Configuration choices:
- `ANN401` (any-type) is ignored: `Any` is sometimes the right answer
  and pyright strict already catches genuine misuse.
- `allow-star-arg-any = true`: `*args: Any, **kwargs: Any` is a common
  valid pattern for pass-through wrappers.
- Per-file ignores for `test_func_metadata.py` and `test_server.py` where
  untyped parameters are intentional (testing schema inference on
  unannotated signatures).
- README code snippets (via pytest-examples) exempt — short doc
  examples shouldn't need full annotations.

Auto-fix added `-> None` or inferred return types to ~910 functions.
The remaining ~100 were annotated manually — mostly
`@asynccontextmanager` generators, pytest fixtures, and ASGI handlers
that Ruff couldn't infer.
2026-03-24 23:04:34 +00:00
Jonathan Hefner 5388bea53a docs: generate hierarchical per-module API reference pages (#2103) 2026-03-18 18:15:17 +00:00
Max Isbey e1fd62e0f3 fix: close all memory stream ends in client transport cleanup (#2266) 2026-03-13 14:43:54 +00:00
Jonathan Hefner 0fe16dd5fd fix: silence mkdocs social plugin warnings in strict mode (#2109) 2026-02-19 23:12:51 +01:00
Max Isbey 8f669a77e3 fix: explicitly load required pytest plugins in addopts (#2055) 2026-02-13 18:25:10 +00:00
Aaron Abbott f049c8e5c6 Fix leaked anyio streams in streamable_http (#1991)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-02-11 14:52:07 +00:00
Max Isbey d3133ae6ce chore: update author metadata to LF Projects (#1992) 2026-02-04 11:01:33 +00:00
Marcelo Trylesinski 74f41ff1ae Add more maintainers to the PyPI metadata (#1976) 2026-02-03 16:19:56 +00:00
Max Isbey 2137c8fbdb fix: revert README to v1.x documentation on main (#1971)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-01-29 20:03:01 +00:00
Marcelo Trylesinski 65c614e48e Rename FastMCP to MCPServer (#1951) 2026-01-25 14:45:52 +01:00
Max Isbey a7ddfdae07 ci: add strict-no-cover to detect unnecessary coverage pragmas (#1897) 2026-01-23 21:00:20 +01:00
Marcelo Trylesinski a1d330de9f Proper handle extra data in MCP objects (#1937) 2026-01-23 15:35:23 +01:00
Marcelo Trylesinski f0ab53e194 Add meta to Client methods (#1923) 2026-01-22 14:50:39 +01:00
Marcelo Trylesinski bcb07c2b25 refactor: flatten the methods in Client (#1914) 2026-01-20 13:12:07 +01:00
Rin 0f9a41d777 chore: include cli and ws extras in dev environment (#1905)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-01-19 14:53:08 +01:00
Marcelo Trylesinski 5fdd48a0d3 Completely drop RootModel from types module (#1910) 2026-01-19 14:29:15 +01:00
Felix Weinberger d41d0c0128 chore: add D212 lint rule to enforce Google-style docstrings (#1892) 2026-01-16 16:10:52 +00:00
Marcelo Trylesinski 3ffe142e9a Support Python 3.14 (#1834) 2026-01-07 16:28:23 +00:00
Marcelo Trylesinski 1fd557afdc Add type checker to examples/client (#1837) 2026-01-07 17:08:18 +01:00
Victorien 116c13e2c6 Refactor func_metadata() implementation (#1496) 2025-11-13 20:21:15 +00:00
Max Isbey 89e9c43acf Get baseline 100% clean coverage (#1553) 2025-11-11 14:09:32 +01:00
Luca Chang f161149680 Implement RFC 7523 JWT flows (#1247)
Co-authored-by: Yann Jouanin <yann.jouanin@valueandco.com>
2025-10-29 16:48:08 +00:00
Max Isbey 3e86edfb2f fix: Replace arbitrary sleeps with active server readiness checks in tests (#1527)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-28 21:42:33 +00:00
Christian Clauss 35a9ccdb42 fix: uv CVE-2025-62518 astral-tokio-tar issue GHSA-j5gw-2vrg-8fgx (#1505) 2025-10-22 15:52:56 +02:00
Luca Chang c733eec5d9 Make client examples workspaces to reflect package code (#1466) 2025-10-17 17:13:39 +01:00
Marcelo Trylesinski 814c9c024a Add documentation about testing (#1426) 2025-10-03 14:17:31 +00:00
Christian Clauss c47c767ff4 Python lint: Ruff rules for pylint and code complexity (#525) 2025-09-05 15:20:14 +01:00
David Soria Parra 0926613714 Update dependencies and fix type issues (#1268)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-08-14 10:40:47 +01:00
Marcelo Trylesinski c7671e470c Add pyright strict mode on the whole project (#1254) 2025-08-11 18:56:37 +01:00
Inna Harper 9bf5160eea README - replace code snippets with examples (#1136) 2025-07-14 13:57:47 +01:00
Stanley Law 6d092af6fd chore: add markdownlint on pre-commit hook and lint md files (#996)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-07-10 09:43:49 +01:00
Felix Weinberger e0336213e8 Improve child process termination on POSIX & Windows (#1078)
Co-authored-by: jingx8885 <jingxu8885@qq.com>
Co-authored-by: Surya Prakash Susarla <susarla.surya.prakash.1998@gmail.com>
2025-07-08 15:04:06 +01:00
Marcelo Trylesinski 3fa7bc7b61 tests: add lowest dependency tests (#1067)
Co-authored-by: ihrpr <inna@anthropic.com>
2025-07-06 09:38:56 +02:00
Inna Harper adf327164a Embed code snippets for README from executable examples (#1055) 2025-07-04 17:25:54 +01:00
Inna Harper 0323831b01 unpin jsonschema version (#1037) 2025-06-26 13:28:15 +01:00
bhosmer-ant c8bbfc034d Add schema validation to lowlevel server (#1005) 2025-06-25 09:23:49 -04:00
Marcelo Trylesinski 543961968c Use 120 characters instead of 88 (#856) 2025-06-11 11:45:50 +02:00
Marcelo Trylesinski 8a2359ffeb Pin uv version (#806) 2025-05-26 12:17:23 +01:00
Lekhnath Parajuli d1876433af add support for parallel run (#739)
Co-authored-by: Lekhnath Parajuli <lekhnathparajuli4@gmail.com>
2025-05-23 17:13:24 +01:00
ihrpr b3fbee9c48 Include server examples folder in pyright check (#667) 2025-05-15 09:29:36 +01:00
ihrpr 9d99aee014 Revert "Add message queue for SSE messages POST endpoint (#459)" (#649) 2025-05-07 16:35:20 +01:00
Akash D 3b1b213a96 Add message queue for SSE messages POST endpoint (#459) 2025-05-06 17:10:43 -07:00
Peter Raboud 2210c1be18 Add support for serverside oauth (#255)
Main branch checks / checks (push) Failing after 0s
Check uv.lock / check-lock (push) Has been cancelled
Co-authored-by: David Soria Parra <davidsp@anthropic.com>
Co-authored-by: Basil Hosmer <basil@anthropic.com>
Co-authored-by: ihrpr <inna@anthropic.com>
2025-05-01 19:42:59 +01:00
Samuel Colvin 017135434e add pytest-pretty dev dependency (#546) 2025-04-29 21:02:09 +01:00
Christian Clauss babb477dff Python lint: Ruff rules for comprehensions and performance (#512) 2025-04-15 16:58:33 +02:00
Dan Lapid 8c9269c34b Move uvicorn import to usage (#502) 2025-04-15 16:51:02 +02:00
David Soria Parra 9a2bb6a7e7 refactor: Make types.py strictly typechecked. (#336) 2025-03-26 14:21:35 +00:00
Marcelo Trylesinski 4e11f2890b Add mkdocs (#367) 2025-03-25 13:06:15 +01:00