Labsco
QuantGeekDev logo

Calculator

โ˜… 5

from QuantGeekDev

A simple calculator server for performing basic arithmetic operations.

๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

calculator

smithery badge

A Model Context Protocol (MCP) server built with mcp-framework.

Project Structure

calculator/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ tools/        # MCP Tools
โ”‚   โ”‚   โ””โ”€โ”€ ExampleTool.ts
โ”‚   โ””โ”€โ”€ index.ts      # Server entry point
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ tsconfig.json

Adding Components

The project comes with an example tool in src/tools/ExampleTool.ts. You can add more tools using the CLI:

# Add a new tool
mcp add tool my-tool

# Example tools you might create:
mcp add tool data-processor
mcp add tool api-client
mcp add tool file-handler

Tool Development

Example tool structure:

import { MCPTool } from "mcp-framework";
import { z } from "zod";

interface MyToolInput {
  message: string;
}

class MyTool extends MCPTool<MyToolInput> {
  name = "my_tool";
  description = "Describes what your tool does";

  schema = {
    message: {
      type: z.string(),
      description: "Description of this input parameter",
    },
  };

  async execute(input: MyToolInput) {
    // Your tool logic here
    return `Processed: ${input.message}`;
  }
}

export default MyTool;

Publishing to npm

  1. Update your package.json:

    • Ensure name is unique and follows npm naming conventions
    • Set appropriate version
    • Add description, author, license, etc.
    • Check bin points to the correct entry file
  2. Build and test locally:

    npm run build
    npm link
    calculator  # Test your CLI locally
  3. Login to npm (create account if necessary):

    npm login
  4. Publish your package:

    npm publish

After publishing, users can add it to their claude desktop client (read below) or run it with npx


## Using with Claude Desktop

### Installing via Smithery

To install Calculator for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@QuantGeekDev/mcp-add-sse):

```bash
npx -y @smithery/cli install @QuantGeekDev/mcp-add-sse --client claude

Local Development

Add this configuration to your Claude Desktop config file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "calculator": {
      "command": "node",
      "args":["/absolute/path/to/calculator/dist/index.js"]
    }
  }
}

After Publishing

Add this configuration to your Claude Desktop config file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "calculator": {
      "command": "npx",
      "args": ["calculator"]
    }
  }
}

Building and Testing

  1. Make changes to your tools
  2. Run npm run build to compile
  3. The server will automatically load your tools on startup

Learn More