Skip to main content
Glama

mcp-minecraft

main.ts2.27 kB
#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { setupStdioFiltering } from './stdio-filter.js'; import { log } from './logger.js'; import { parseConfig } from './config.js'; import { BotConnection } from './bot-connection.js'; import { ToolFactory } from './tool-factory.js'; import { MessageStore } from './message-store.js'; import { registerPositionTools } from './tools/position-tools.js'; import { registerInventoryTools } from './tools/inventory-tools.js'; import { registerBlockTools } from './tools/block-tools.js'; import { registerEntityTools } from './tools/entity-tools.js'; import { registerChatTools } from './tools/chat-tools.js'; import { registerFlightTools } from './tools/flight-tools.js'; import { registerGameStateTools } from './tools/gamestate-tools.js'; setupStdioFiltering(); process.on('unhandledRejection', (reason) => { log('error', `Unhandled rejection: ${reason}`); }); process.on('uncaughtException', (error) => { log('error', `Uncaught exception: ${error}`); }); async function main() { const config = parseConfig(); const messageStore = new MessageStore(); const connection = new BotConnection( config, { onLog: log, onChatMessage: (username, message) => messageStore.addMessage(username, message) } ); connection.connect(); const server = new McpServer({ name: "minecraft-mcp-server", version: "2.0.0" }); const factory = new ToolFactory(server, connection); const getBot = () => connection.getBot()!; registerPositionTools(factory, getBot); registerInventoryTools(factory, getBot); registerBlockTools(factory, getBot); registerEntityTools(factory, getBot); registerChatTools(factory, getBot, messageStore); registerFlightTools(factory, getBot); registerGameStateTools(factory, getBot); process.stdin.on('end', () => { connection.cleanup(); log('info', 'MCP Client has disconnected. Shutting down...'); process.exit(0); }); const transport = new StdioServerTransport(); await server.connect(transport); } main().catch((error) => { log('error', `Fatal error in main(): ${error}`); process.exit(1); });

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