Skip to main content
Glama

GenAIScript

Official
by microsoft
MIT License
43
2,820
  • Linux
  • Apple
RunClientContext.tsx1.51 kB
import React, { createContext, useMemo, useEffect, use, startTransition, useState, } from "react" import { base, apiKey } from "./configuration" import { RunClient } from "./RunClient" import { CHANGE } from "../../core/src/constants" export const RunClientContext = createContext<{ client: RunClient } | null>(null) export function RunClientProvider({ children }: { children: React.ReactNode }) { const client = useMemo(() => { const client = new RunClient( `${base}/${apiKey ? `?api-key=${apiKey}` : ""}` ) client.addEventListener("error", (err) => console.error(err), false) return client }, []) useEffect(() => { client.init() }, [client]) return ( <RunClientContext.Provider value={{ client, }} > {children} </RunClientContext.Provider> ) } export function useRunClient() { const ctx = use(RunClientContext) if (!ctx) throw new Error("missing run client context") return ctx } export function useClientReadyState() { const { client } = useRunClient() const [state, setState] = useState(client?.readyState) useEffect(() => { if (!client) return undefined const update = () => startTransition(() => setState(client.readyState)) client.addEventListener(CHANGE, update, false) return () => client.removeEventListener(CHANGE, update) }, [client]) return state }

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/microsoft/genaiscript'

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