Skip to main content
Glama

mcp-minecraft

tool-factory.ts1.45 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { BotConnection } from './bot-connection.js'; type McpResponse = { content: { type: "text"; text: string }[]; isError?: boolean; [key: string]: unknown; }; export class ToolFactory { constructor( private server: McpServer, private connection: BotConnection ) {} registerTool( name: string, description: string, schema: Record<string, unknown>, // eslint-disable-next-line @typescript-eslint/no-explicit-any executor: (args: any) => Promise<McpResponse> ): void { this.server.tool(name, description, schema, async (args: unknown): Promise<McpResponse> => { const connectionCheck = await this.connection.checkConnectionAndReconnect(); if (!connectionCheck.connected) { return { content: [{ type: "text", text: connectionCheck.message! }], isError: true }; } try { return await executor(args); } catch (error) { return this.createErrorResponse(error as Error); } }); } createResponse(text: string): McpResponse { return { content: [{ type: "text", text }] }; } createErrorResponse(error: Error | string): McpResponse { const errorMessage = error instanceof Error ? error.message : error; return { content: [{ type: "text", text: `Failed: ${errorMessage}` }], isError: true }; } }

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/yuniko-software/minecraft-mcp-server'

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