Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
ToolRegistry.tsโ€ข1.24 kB
/** * Tool Registry for managing MCP tool definitions and handlers */ import { Tool } from "@modelcontextprotocol/sdk/types.js"; export interface ToolHandler { (args: any): Promise<any>; } export interface ToolDefinition extends Tool { handler?: ToolHandler; } export class ToolRegistry { private tools: Map<string, ToolDefinition> = new Map(); /** * Register a tool with its definition and handler */ register(tool: ToolDefinition, handler?: ToolHandler): void { if (handler) { tool.handler = handler; } this.tools.set(tool.name, tool); } /** * Register multiple tools at once */ registerMany(tools: Array<{ tool: ToolDefinition; handler?: ToolHandler }>): void { tools.forEach(({ tool, handler }) => this.register(tool, handler)); } /** * Get all registered tools (for ListToolsRequest) */ getAllTools(): Tool[] { return Array.from(this.tools.values()).map(({ handler, ...tool }) => tool); } /** * Get a specific tool handler */ getHandler(name: string): ToolHandler | undefined { return this.tools.get(name)?.handler; } /** * Check if a tool exists */ has(name: string): boolean { return this.tools.has(name); } }

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/DollhouseMCP/DollhouseMCP'

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