Rebuild the docs around tested examples; shrink README.v2.md to a pitch (#2978)
This commit is contained in:
parent
4caa41f6d5
commit
411a6d3980
1 changed files with 9510 additions and 2639 deletions
23
docs_src/mrtr/tutorial002.py
Normal file
23
docs_src/mrtr/tutorial002.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
from mcp_types import CallToolResult, ElicitRequest, ElicitResult, InputRequest, InputRequiredResult, InputResponse
|
||||
|
||||
from mcp import Client
|
||||
|
||||
|
||||
def fulfil(request: InputRequest) -> InputResponse:
|
||||
if not isinstance(request, ElicitRequest):
|
||||
raise NotImplementedError(f"this client cannot answer a {request.method!r} request")
|
||||
return ElicitResult(action="accept", content={"region": "eu-west-1"})
|
||||
|
||||
|
||||
async def provision(client: Client, name: str) -> CallToolResult:
|
||||
result = await client.call_tool("provision", {"name": name}, allow_input_required=True)
|
||||
while isinstance(result, InputRequiredResult):
|
||||
responses = {key: fulfil(request) for key, request in (result.input_requests or {}).items()}
|
||||
result = await client.call_tool(
|
||||
"provision",
|
||||
{"name": name},
|
||||
input_responses=responses,
|
||||
request_state=result.request_state,
|
||||
allow_input_required=True,
|
||||
)
|
||||
return result
|
||||
Loading…
Reference in a new issue