feat: Add _meta field support to tool UI

Shows [_meta](https://modelcontextprotocol.io/specification/2025-06-18/basic/index#meta) fields if present when listing and calling tools
This commit is contained in:
Eric Horacek 2025-07-13 14:33:39 -07:00
commit 5dd661513b

View file

@ -46,6 +46,7 @@ const ToolsTab = ({
const [params, setParams] = useState<Record<string, unknown>>({});
const [isToolRunning, setIsToolRunning] = useState(false);
const [isOutputSchemaExpanded, setIsOutputSchemaExpanded] = useState(false);
const [isMetaExpanded, setIsMetaExpanded] = useState(false);
useEffect(() => {
const params = Object.entries(
@ -245,6 +246,38 @@ const ToolsTab = ({
</div>
</div>
)}
{selectedTool && (selectedTool as any)._meta && (
<div className="bg-gray-50 dark:bg-gray-900 p-3 rounded-lg">
<div className="flex items-center justify-between mb-2">
<h4 className="text-sm font-semibold">Meta:</h4>
<Button
size="sm"
variant="ghost"
onClick={() => setIsMetaExpanded(!isMetaExpanded)}
className="h-6 px-2"
>
{isMetaExpanded ? (
<>
<ChevronUp className="h-3 w-3 mr-1" />
Collapse
</>
) : (
<>
<ChevronDown className="h-3 w-3 mr-1" />
Expand
</>
)}
</Button>
</div>
<div
className={`transition-all ${
isMetaExpanded ? "" : "max-h-[8rem] overflow-y-auto"
}`}
>
<JsonView data={(selectedTool as any)._meta} />
</div>
</div>
)}
<Button
onClick={async () => {
try {