diff --git a/client/src/App.tsx b/client/src/App.tsx index a24dd76..c7b9412 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -84,6 +84,10 @@ const App = () => { prompts: null, tools: null, }); + + const clearError = (tabKey: keyof typeof errors) => { + setErrors((prev) => ({ ...prev, [tabKey]: null })); + }; const [command, setCommand] = useState(() => { return localStorage.getItem("lastCommand") || "mcp-server-everything"; }); @@ -529,11 +533,23 @@ const App = () => { { + clearError("resources"); + listResources(); + }} + listResourceTemplates={() => { + clearError("resources"); + listResourceTemplates(); + }} + readResource={(uri) => { + clearError("resources"); + readResource(uri); + }} selectedResource={selectedResource} - setSelectedResource={setSelectedResource} + setSelectedResource={(resource) => { + clearError("resources"); + setSelectedResource(resource); + }} resourceContent={resourceContent} nextCursor={nextResourceCursor} nextTemplateCursor={nextResourceTemplateCursor} @@ -541,20 +557,36 @@ const App = () => { /> { + clearError("prompts"); + listPrompts(); + }} + getPrompt={(name, args) => { + clearError("prompts"); + getPrompt(name, args); + }} selectedPrompt={selectedPrompt} - setSelectedPrompt={setSelectedPrompt} + setSelectedPrompt={(prompt) => { + clearError("prompts"); + setSelectedPrompt(prompt); + }} promptContent={promptContent} nextCursor={nextPromptCursor} error={errors.prompts} /> { + clearError("tools"); + listTools(); + }} + callTool={(name, params) => { + clearError("tools"); + callTool(name, params); + }} selectedTool={selectedTool} setSelectedTool={(tool) => { + clearError("tools"); setSelectedTool(tool); setToolResult(null); }} diff --git a/client/src/components/ToolsTab.tsx b/client/src/components/ToolsTab.tsx index ea5f3f1..7c0f3dc 100644 --- a/client/src/components/ToolsTab.tsx +++ b/client/src/components/ToolsTab.tsx @@ -3,7 +3,11 @@ import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { TabsContent } from "@/components/ui/tabs"; -import { CallToolResult, ListToolsResult, Tool } from "@modelcontextprotocol/sdk/types.js"; +import { + CallToolResult, + ListToolsResult, + Tool, +} from "@modelcontextprotocol/sdk/types.js"; import { AlertCircle, Send } from "lucide-react"; import { useState } from "react"; import ListPane from "./ListPane";