chore: import upstream snapshot with attribution
Deploy Docs / deploy-docs (push) Failing after 1s
Conformance Tests / client-conformance (push) Failing after 3s
Conformance Tests / server-conformance (push) Failing after 1s
GitHub Actions Security Analysis / zizmor (push) Failing after 1s
CI / checks (push) Failing after 59m20s
CI / all-green (push) Waiting to run
Deploy Docs / deploy-docs (push) Failing after 1s
Conformance Tests / client-conformance (push) Failing after 3s
Conformance Tests / server-conformance (push) Failing after 1s
GitHub Actions Security Analysis / zizmor (push) Failing after 1s
CI / checks (push) Failing after 59m20s
CI / all-green (push) Waiting to run
This commit is contained in:
@@ -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.session.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.session.call_tool(
|
||||
"provision",
|
||||
{"name": name},
|
||||
input_responses=responses,
|
||||
request_state=result.request_state,
|
||||
allow_input_required=True,
|
||||
)
|
||||
return result
|
||||
Reference in New Issue
Block a user