Skip to main content
Glama
index.ts1.57 kB
import type { ToolContext, ToolCapabilityDescriptor } from "./base.js"; import { ApiKeyStatusTool } from "./api-key-status.js"; import { EntrezQueryTool } from "./consolidated-entrez.js"; import { DataManagerTool } from "./consolidated-data.js"; import { ExternalAPIsTool } from "./consolidated-external.js"; import { CapabilitiesTool } from "./capabilities.js"; import { ToolInfoTool } from "./tool-info.js"; type ToolInstance = { instance: { register: () => void; getCapabilities: () => ToolCapabilityDescriptor; }; }; export class ToolRegistry { private tools: ToolInstance[] = []; constructor(context: ToolContext) { const coreTools = [ new ApiKeyStatusTool(context), new EntrezQueryTool(context), new DataManagerTool(context), new ExternalAPIsTool(context), ]; this.tools = coreTools.map((instance) => ({ instance })); // Introspection tools need access to registry view, so inject callback const describe = () => this.getCapabilities(); const capabilityTools = [ new ToolInfoTool(context, describe), new CapabilitiesTool(context, describe), ]; this.tools.push(...capabilityTools.map((instance) => ({ instance }))); } registerAll(): void { this.tools.forEach(({ instance }) => instance.register()); } getCapabilities(): ToolCapabilityDescriptor[] { return this.tools.map(({ instance }) => instance.getCapabilities()); } } // Export types and consolidated tool classes export type { ToolContext }; export { ApiKeyStatusTool, EntrezQueryTool, DataManagerTool, ExternalAPIsTool, CapabilitiesTool, };

Latest Blog Posts

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/QuentinCody/entrez-mcp-server'

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