26 lines
643 B
Python
26 lines
643 B
Python
from typing import Annotated
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from mcp.server import MCPServer
|
|
from mcp.server.mcpserver import Elicit, Resolve
|
|
|
|
mcp = MCPServer("Bistro")
|
|
|
|
|
|
class Confirmation(BaseModel):
|
|
confirm: bool
|
|
|
|
|
|
async def ask_to_confirm(date: str) -> Elicit[Confirmation]:
|
|
"""Resolver: ask the user to confirm the booking."""
|
|
return Elicit(f"Book a table for {date}?", Confirmation)
|
|
|
|
|
|
@mcp.tool()
|
|
async def book_table(date: str, answer: Annotated[Confirmation, Resolve(ask_to_confirm)]) -> str:
|
|
"""Book a table at the bistro."""
|
|
if answer.confirm:
|
|
return f"Booked for {date}."
|
|
return "No booking made."
|