Allow generic parameters to be passed onto Context on FastMCP tools

Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
This commit is contained in:
Junpei Kawamoto 2025-04-10 03:36:46 -06:00 • committed by GitHub
commit da54ea003e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,7 +2,7 @@ from __future__ import annotations as _annotations
import inspect
from collections.abc import Callable
from typing import TYPE_CHECKING, Any
from typing import TYPE_CHECKING, Any, get_origin
from pydantic import BaseModel, Field
@ -53,7 +53,9 @@ class Tool(BaseModel):
if context_kwarg is None:
sig = inspect.signature(fn)
for param_name, param in sig.parameters.items():
if param.annotation is Context:
if get_origin(param.annotation) is not None:
continue
if issubclass(param.annotation, Context):
context_kwarg = param_name
break