mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-23 00:34:27 +01:00
Include context into completions (#966)
This commit is contained in:
@@ -364,6 +364,24 @@ class FastMCP:
|
||||
|
||||
return decorator
|
||||
|
||||
def completion(self):
|
||||
"""Decorator to register a completion handler.
|
||||
|
||||
The completion handler receives:
|
||||
- ref: PromptReference or ResourceTemplateReference
|
||||
- argument: CompletionArgument with name and partial value
|
||||
- context: Optional CompletionContext with previously resolved arguments
|
||||
|
||||
Example:
|
||||
@mcp.completion()
|
||||
async def handle_completion(ref, argument, context):
|
||||
if isinstance(ref, ResourceTemplateReference):
|
||||
# Return completions based on ref, argument, and context
|
||||
return Completion(values=["option1", "option2"])
|
||||
return None
|
||||
"""
|
||||
return self._mcp_server.completion()
|
||||
|
||||
def add_resource(self, resource: Resource) -> None:
|
||||
"""Add a resource to the server.
|
||||
|
||||
|
||||
@@ -433,6 +433,7 @@ class Server(Generic[LifespanResultT, RequestT]):
|
||||
[
|
||||
types.PromptReference | types.ResourceTemplateReference,
|
||||
types.CompletionArgument,
|
||||
types.CompletionContext | None,
|
||||
],
|
||||
Awaitable[types.Completion | None],
|
||||
],
|
||||
@@ -440,7 +441,7 @@ class Server(Generic[LifespanResultT, RequestT]):
|
||||
logger.debug("Registering handler for CompleteRequest")
|
||||
|
||||
async def handler(req: types.CompleteRequest):
|
||||
completion = await func(req.params.ref, req.params.argument)
|
||||
completion = await func(req.params.ref, req.params.argument, req.params.context)
|
||||
return types.ServerResult(
|
||||
types.CompleteResult(
|
||||
completion=completion
|
||||
|
||||
Reference in New Issue
Block a user