@@ -52,6 +52,7 @@ import {
52
52
Terminal ,
53
53
} from "lucide-react" ;
54
54
55
+ import { toast } from "react-toastify" ;
55
56
import { ZodType } from "zod" ;
56
57
import "./App.css" ;
57
58
import ConsoleTab from "./components/ConsoleTab" ;
@@ -178,7 +179,7 @@ const App = () => {
178
179
const makeRequest = async < T extends ZodType < object > > (
179
180
request : ClientRequest ,
180
181
schema : T ,
181
- tabKey : keyof typeof errors
182
+ tabKey ? : keyof typeof errors ,
182
183
) => {
183
184
if ( ! mcpClient ) {
184
185
throw new Error ( "MCP client not connected" ) ;
@@ -187,10 +188,19 @@ const App = () => {
187
188
try {
188
189
const response = await mcpClient . request ( request , schema ) ;
189
190
pushHistory ( request , response ) ;
190
- setErrors ( prev => ( { ...prev , [ tabKey ] : null } ) ) ;
191
+
192
+ if ( tabKey !== undefined ) {
193
+ setErrors ( ( prev ) => ( { ...prev , [ tabKey ] : null } ) ) ;
194
+ }
195
+
191
196
return response ;
192
197
} catch ( e : unknown ) {
193
- setErrors ( prev => ( { ...prev , [ tabKey ] : ( e as Error ) . message } ) ) ;
198
+ if ( tabKey === undefined ) {
199
+ toast . error ( ( e as Error ) . message ) ;
200
+ } else {
201
+ setErrors ( ( prev ) => ( { ...prev , [ tabKey ] : ( e as Error ) . message } ) ) ;
202
+ }
203
+
194
204
throw e ;
195
205
}
196
206
} ;
@@ -204,7 +214,7 @@ const App = () => {
204
214
await mcpClient . notification ( notification ) ;
205
215
pushHistory ( notification ) ;
206
216
} catch ( e : unknown ) {
207
- setError ( ( e as Error ) . message ) ;
217
+ toast . error ( ( e as Error ) . message ) ;
208
218
throw e ;
209
219
}
210
220
} ;
@@ -216,7 +226,7 @@ const App = () => {
216
226
params : nextResourceCursor ? { cursor : nextResourceCursor } : { } ,
217
227
} ,
218
228
ListResourcesResultSchema ,
219
- ' resources'
229
+ " resources" ,
220
230
) ;
221
231
setResources ( resources . concat ( response . resources ?? [ ] ) ) ;
222
232
setNextResourceCursor ( response . nextCursor ) ;
@@ -231,7 +241,7 @@ const App = () => {
231
241
: { } ,
232
242
} ,
233
243
ListResourceTemplatesResultSchema ,
234
- ' resources'
244
+ " resources" ,
235
245
) ;
236
246
setResourceTemplates (
237
247
resourceTemplates . concat ( response . resourceTemplates ?? [ ] ) ,
@@ -246,7 +256,7 @@ const App = () => {
246
256
params : { uri } ,
247
257
} ,
248
258
ReadResourceResultSchema ,
249
- ' resources'
259
+ " resources" ,
250
260
) ;
251
261
setResourceContent ( JSON . stringify ( response , null , 2 ) ) ;
252
262
} ;
@@ -258,7 +268,7 @@ const App = () => {
258
268
params : nextPromptCursor ? { cursor : nextPromptCursor } : { } ,
259
269
} ,
260
270
ListPromptsResultSchema ,
261
- ' prompts'
271
+ " prompts" ,
262
272
) ;
263
273
setPrompts ( response . prompts ) ;
264
274
setNextPromptCursor ( response . nextCursor ) ;
@@ -271,7 +281,7 @@ const App = () => {
271
281
params : { name, arguments : args } ,
272
282
} ,
273
283
GetPromptResultSchema ,
274
- ' prompts'
284
+ " prompts" ,
275
285
) ;
276
286
setPromptContent ( JSON . stringify ( response , null , 2 ) ) ;
277
287
} ;
@@ -283,7 +293,7 @@ const App = () => {
283
293
params : nextToolCursor ? { cursor : nextToolCursor } : { } ,
284
294
} ,
285
295
ListToolsResultSchema ,
286
- ' tools'
296
+ " tools" ,
287
297
) ;
288
298
setTools ( response . tools ) ;
289
299
setNextToolCursor ( response . nextCursor ) ;
@@ -302,7 +312,7 @@ const App = () => {
302
312
} ,
303
313
} ,
304
314
CompatibilityCallToolResultSchema ,
305
- ' tools'
315
+ " tools" ,
306
316
) ;
307
317
setToolResult ( response ) ;
308
318
} ;
0 commit comments