File tree Expand file tree Collapse file tree 2 files changed +10
-17
lines changed
Expand file tree Collapse file tree 2 files changed +10
-17
lines changed Original file line number Diff line number Diff line change 44"""
55
66from mcp .server import FastMCP
7- from mcp .types import ElicitRequest , ElicitRequestParams , ElicitResult
7+ from pydantic import BaseModel , Field
8+
9+
10+ class ApprovalSchema (BaseModel ):
11+ message : str = Field (description = "request message" )
812
913
1014def server () -> None :
@@ -18,21 +22,10 @@ async def approval_tool() -> str:
1822 Returns:
1923 The elicitation result from the user.
2024 """
21- request = ElicitRequest (
22- method = "elicitation/create" ,
23- params = ElicitRequestParams (
24- message = "Do you approve" ,
25- requestedSchema = {
26- "type" : "object" ,
27- "properties" : {
28- "message" : {"type" : "string" , "description" : "request message" },
29- },
30- "required" : ["message" ],
31- },
32- ),
25+ result = await server_ .get_context ().elicit (
26+ message = "Do you approve" ,
27+ schema = ApprovalSchema ,
3328 )
34- result = await server_ .get_context ().session .send_request (request , ElicitResult )
35-
3629 return result .model_dump_json ()
3730
3831 server_ .run (transport = "stdio" )
Original file line number Diff line number Diff line change 1111@pytest .fixture
1212def callback ():
1313 async def callback_ (_ , params ):
14- return ElicitResult (action = "accept" , content = {"message" : params .message })
14+ return ElicitResult (action = "accept" , content = {"message" : f"server_message=< { params .message } >" })
1515
1616 return callback_
1717
@@ -36,5 +36,5 @@ def test_mcp_elicitation(client):
3636 tool_result = agent .messages [- 2 ]
3737
3838 tru_result = json .loads (tool_result ["content" ][0 ]["toolResult" ]["content" ][0 ]["text" ])
39- exp_result = {"meta" : None , " action" : "accept" , "content " : {"message" : "Do you approve" }}
39+ exp_result = {"action" : "accept" , "data " : {"message" : "server_message=< Do you approve> " }}
4040 assert tru_result == exp_result
You can’t perform that action at this time.
0 commit comments