Skip to main content
Glama
dh1789

My First MCP

by dh1789

calculate

Perform basic arithmetic operations (addition, subtraction, multiplication, division) on two numbers to get calculation results.

Instructions

두 숫자의 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행합니다.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
aYes첫 번째 숫자
bYes두 번째 숫자
operationYes연산 종류: add(덧셈), subtract(뺄셈), multiply(곱셈), divide(나눗셈)

Implementation Reference

  • Core pure function implementing the arithmetic calculation logic with operation handling and division-by-zero error check.
    export function calculate( a: number, b: number, operation: Operation ): CalculateResult { const symbols: Record<Operation, string> = { add: "+", subtract: "-", multiply: "×", divide: "÷", }; if (operation === "divide" && b === 0) { return { result: NaN, expression: `${a} ${symbols[operation]} ${b}`, isError: true, errorMessage: "오류: 0으로 나눌 수 없습니다.", }; } let result: number; switch (operation) { case "add": result = a + b; break; case "subtract": result = a - b; break; case "multiply": result = a * b; break; case "divide": result = a / b; break; } return { result, expression: `${a} ${symbols[operation]} ${b} = ${result}`, isError: false, }; }
  • TypeScript type definitions for the operation enum and result interface used by the calculate tool.
    export type Operation = "add" | "subtract" | "multiply" | "divide"; export interface CalculateResult { result: number; expression: string; isError: boolean; errorMessage?: string; }
  • src/index.ts:121-155 (registration)
    MCP server.tool registration for the 'calculate' tool, defining description, Zod input schema, and async handler that wraps the core calculate function and formats MCP response.
    server.tool( "calculate", "두 숫자의 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행합니다.", { a: z.number().describe("첫 번째 숫자"), b: z.number().describe("두 번째 숫자"), operation: z .enum(["add", "subtract", "multiply", "divide"]) .describe("연산 종류: add(덧셈), subtract(뺄셈), multiply(곱셈), divide(나눗셈)"), }, async ({ a, b, operation }) => { const result = calculate(a, b, operation as Operation); if (result.isError) { return { content: [ { type: "text", text: result.errorMessage!, }, ], isError: true, }; } return { content: [ { type: "text", text: result.expression, }, ], }; } );
  • Zod schema for input parameters (a, b, operation) used in the tool registration.
    { a: z.number().describe("첫 번째 숫자"), b: z.number().describe("두 번째 숫자"), operation: z .enum(["add", "subtract", "multiply", "divide"]) .describe("연산 종류: add(덧셈), subtract(뺄셈), multiply(곱셈), divide(나눗셈)"), },

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/dh1789/my-first-mcp'

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