Skip to main content
Glama
index.ts1.74 kB
#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { registerReadWebpageContentTool, registerCreateShoppingListTableTool, registerOpenShufersalTool, registerSearchShufersalTool, registerAddToShufersalCartTool } from "./tools/index.js"; import { browserState } from "./browser.js"; /** * Initialize and configure the MCP server */ const server = new McpServer( { name: "shufersal-mcp-server", version: "0.0.1", }, { capabilities: { resources: {}, tools: {}, }, }, ); // Register all tools registerReadWebpageContentTool(server); registerCreateShoppingListTableTool(server); registerOpenShufersalTool(server); registerSearchShufersalTool(server); registerAddToShufersalCartTool(server); // Let the client read the console logs server.resource( "console-logs", "console://logs", async () => ({ contents: [{ uri: "console://logs", mimeType: "text/plain", text: browserState.consoleLogs.join("\n"), }], }) ); /** * Start the MCP server */ async function runServer(): Promise<void> { const transport = new StdioServerTransport(); await server.connect(transport); } // Graceful shutdown handling process.on("SIGINT", async () => { console.log("\nShutting down gracefully..."); if (browserState.browser) { await browserState.browser.close(); } process.exit(0); }); process.on("SIGTERM", async () => { console.log("\nShutting down gracefully..."); if (browserState.browser) { await browserState.browser.close(); } process.exit(0); }); // Start the server runServer().catch((error) => { console.error("Failed to start server:", error); process.exit(1); });

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/matipojo/shufersal-mcp'

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