// mcp_calculator_server.js - Sample MCP Calculator Server implementation in JavaScript import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; // Create an MCP server const server = new McpServer({ name: "Calculator MCP Server", version: "1.0.0" }); // Define calculator tools for each operation server.tool( "add", { a: z.number(), b: z.number() }, async ({ a, b }) => ({ content: [{ type: "text", text: String(a + b) }] }) ); server.tool( "subtract", { a: z.number(), b: z.number() }, async ({ a, b }) => ({ content: [{ type: "text", text: String(a - b) }] }) ); server.tool( "multiply", { a: z.number(), b: z.number() }, async ({ a, b }) => ({ content: [{ type: "text", text: String(a * b) }] }) ); server.tool( "divide", { a: z.number(), b: z.number() }, async ({ a, b }) => { if (b === 0) { return { content: [{ type: "text", text: "Error: Cannot divide by zero" }], isError: true }; } return { content: [{ type: "text", text: String(a / b) }] }; } ); // Connect the server using stdio transport const transport = new StdioServerTransport(); server.connect(transport).catch(console.error); console.log("Calculator MCP Server started");