Skip to main content
Glama

MCP Math Server

README.md4.43 kB
# MCP Math Server A Model Context Protocol (MCP) server built with TypeScript and Node.js, designed to provide basic math operations and a greeting resource for AI assistants and tool integrations. ## Features - Addition, Subtraction, Multiplication, Division (with division-by-zero error handling) - Square and Square Root (with error handling for negative input, and results rounded to two decimals) - Greatest Common Measure (GCM) and Least Common Multiple (LCM) - Number Comparison tools (less than, greater than, less than or equal, greater than or equal, general comparison) - Greeting resource (returns a personalized greeting) - Fully type-safe using Zod schemas - Easily extensible for more tools/resources ## Installation 1. Clone the repository or copy the project files. 2. Install dependencies: ```sh npm install ``` 3. Compile the TypeScript code: ```sh npx tsc ``` ## Running the Server This project is designed to run as an MCP server using VS Code's MCP integration. 1. Ensure your `.vscode/mcp.json` is configured as follows: ```jsonc { "servers": { "my-mcp-server-d95b22f0": { "type": "stdio", "command": "node", "args": ["d:/Proj/3/mcp-demo/dist/index.js"] } }, "inputs": [] } ``` 2. Start VS Code and ensure the MCP extension is enabled. The server will start automatically. ## Available Tools - **add**: Add two numbers - Input: `{ a: number, b: number }` - Output: `The sum of a and b is result` - **subtract**: Subtract b from a - Input: `{ a: number, b: number }` - Output: `The difference of a and b is result` - **multiply**: Multiply two numbers - Input: `{ a: number, b: number }` - Output: `The product of a and b is result` - **divide**: Divide a by b - Input: `{ a: number, b: number }` - Output: `The quotient of a divided by b is result` (error if b = 0) - **square**: Square a number - Input: `{ a: number }` - Output: `The square of a is result` - **sqrt**: Square root of a number - Input: `{ x: number }` - Output: `The square root of x is result` (rounded to two decimals, error if x < 0) - **gcm**: Greatest Common Measure of two numbers - Input: `{ a: number, b: number }` - Output: `The greatest common measure of a and b is result` - **lcm**: Least Common Multiple of two numbers - Input: `{ a: number, b: number }` - Output: `The LCM of a and b is result` - **lessThan**: Compare if a is less than b - Input: `{ a: number, b: number }` - Output: `a is less than b` or `a is not less than b` - **greaterThan**: Compare if a is greater than b - Input: `{ a: number, b: number }` - Output: `a is greater than b` or `a is not greater than b` - **lessThanOrEqual**: Compare if a is less than or equal to b - Input: `{ a: number, b: number }` - Output: `a is less than or equal to b` or `a is not less than or equal to b` - **greaterThanOrEqual**: Compare if a is greater than or equal to b - Input: `{ a: number, b: number }` - Output: `a is greater than or equal to b` or `a is not greater than or equal to b` - **compare**: General comparison tool - Input: `{ a: number, b: number }` - Output: `Comparison result: -1, 0, or 1` with description ## Greeting Resource - **greet**: Returns a greeting for a given name - Resource URI: `greet://{name}` - Output: `Hello, {name}!` ## Example Usage - Add: `{ a: 2, b: 3 }` → `The sum of 2 and 3 is 5` - Subtract: `{ a: 10, b: 5 }` → `The difference of 10 and 5 is 5` - Multiply: `{ a: 4, b: 6 }` → `The product of 4 and 6 is 24` - Divide: `{ a: 8, b: 2 }` → `The quotient of 8 divided by 2 is 4` - Square: `{ a: 7 }` → `The square of 7 is 49` - Square Root: `{ x: 5 }` → `The square root of 5 is 2.24` - GCM: `{ a: 12, b: 18 }` → `The greatest common measure of 12 and 18 is 6` - LCM: `{ a: 2, b: 5 }` → `The LCM of 2 and 5 is 10` - Less Than: `{ a: 3, b: 5 }` → `3 is less than 5` - Greater Than: `{ a: 7, b: 4 }` → `7 is greater than 4` - Less Than or Equal: `{ a: 5, b: 5 }` → `5 is less than or equal to 5` - Greater Than or Equal: `{ a: 8, b: 3 }` → `8 is greater than or equal to 3` - Compare: `{ a: 2.5, b: 3.7 }` → `Comparison result: -1 (2.5 is less than 3.7)` - Greeting: `greet://Alice` → `Hello, Alice!` ## Extending the Project You can easily add more tools or resources by registering them in `src/index.ts` using the MCP SDK and Zod schemas. ## License MIT

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/codewithmsunke/MCPMathTools'

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