Skip to main content
Glama

Ultimate MCP Coding Platform

useMCPClient.ts1.38 kB
import { useCallback, useEffect, useMemo, useState } from "react"; import { getHealth, getMetrics, GraphMetricsResponse } from "../services/api"; type HealthState = { service: string; neo4j: boolean; timestamp: string; }; export function useMCPClient(pollIntervalMs = 10000) { const [metrics, setMetrics] = useState<GraphMetricsResponse | null>(null); const [health, setHealth] = useState<HealthState | null>(null); const [loading, setLoading] = useState(false); const [error, setError] = useState<string | null>(null); const refresh = useCallback(async () => { try { setLoading(true); const [metricsPayload, healthPayload] = await Promise.all([ getMetrics(), getHealth(), ]); setMetrics(metricsPayload); setHealth(healthPayload); setError(null); } catch (err) { setError(err instanceof Error ? err.message : String(err)); } finally { setLoading(false); } }, []); useEffect(() => { void refresh(); const interval = window.setInterval(() => { void refresh(); }, pollIntervalMs); return () => window.clearInterval(interval); }, [pollIntervalMs, refresh]); return useMemo( () => ({ metrics, health, refresh, loading, error }), [metrics, health, refresh, loading, error] ); } export type UseMCPClientReturn = ReturnType<typeof useMCPClient>;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Senpai-Sama7/Ultimate_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server