We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/justinpreston/mcp-router'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
import { useCallback } from 'react';
import { useElectron } from './useElectron';
import type { CatalogToolInfo } from '@preload/api';
/**
* Hook for tool catalog operations.
*/
export function useCatalog() {
const api = useElectron();
const listTools = useCallback(async (): Promise<CatalogToolInfo[]> => {
return api.catalog.listTools();
}, [api]);
const getToolsByServer = useCallback(
async (serverId: string): Promise<CatalogToolInfo[]> => {
return api.catalog.getToolsByServer(serverId);
},
[api]
);
const searchTools = useCallback(
async (query: string): Promise<CatalogToolInfo[]> => {
return api.catalog.searchTools(query);
},
[api]
);
const enableTool = useCallback(
async (serverId: string, toolName: string): Promise<void> => {
return api.catalog.enableTool(serverId, toolName);
},
[api]
);
const disableTool = useCallback(
async (serverId: string, toolName: string): Promise<void> => {
return api.catalog.disableTool(serverId, toolName);
},
[api]
);
const isToolEnabled = useCallback(
async (serverId: string, toolName: string): Promise<boolean> => {
return api.catalog.isToolEnabled(serverId, toolName);
},
[api]
);
const refreshCatalog = useCallback(async (): Promise<void> => {
return api.catalog.refresh();
}, [api]);
return {
listTools,
getToolsByServer,
searchTools,
enableTool,
disableTool,
isToolEnabled,
refreshCatalog,
};
}