@@ -58,7 +58,10 @@ func demoElicitationHandler(s *server.MCPServer) server.ToolHandlerFunc {
5858 return nil , fmt .Errorf ("unexpected response format" )
5959 }
6060
61- projectName := data ["projectName" ].(string )
61+ projectName := "default-project"
62+ if name , ok := data ["projectName" ].(string ); ok {
63+ projectName = name
64+ }
6265 framework := "none"
6366 if fw , ok := data ["framework" ].(string ); ok {
6467 framework = fw
@@ -123,8 +126,7 @@ func main() {
123126 mcp .WithString ("data" , mcp .Required (), mcp .Description ("Data to process" )),
124127 ),
125128 func (ctx context.Context , request mcp.CallToolRequest ) (* mcp.CallToolResult , error ) {
126- data := request .GetArguments ()["data" ].(string )
127-
129+ data := request .GetString ("data" , "" )
128130 // Only request elicitation if data seems sensitive
129131 if len (data ) > 100 {
130132 elicitationRequest := mcp.ElicitationRequest {
@@ -160,7 +162,11 @@ func main() {
160162 }, nil
161163 }
162164
163- responseData := result .Response .Value .(map [string ]interface {})
165+ responseData , ok := result .Response .Value .(map [string ]interface {})
166+ if ! ok {
167+ responseData = make (map [string ]interface {})
168+ }
169+
164170 if proceed , ok := responseData ["proceed" ].(bool ); ! ok || ! proceed {
165171 reason := "No reason provided"
166172 if r , ok := responseData ["reason" ].(string ); ok && r != "" {
0 commit comments