Skip to main content

A Model Context Protocol server providing calculator functionality with auto-configuration

Project description

MCP Calculator Demo

A Model Context Protocol (MCP) server providing calculator functionality. Available in both Python and TypeScript implementations.

🚀 Quick Start

Using uvx (Python) - Recommended

# Install and run directly from PyPI
uvx mcp-calculator-demo

# Or use with MCP clients
uvx mcp-calculator-demo --transport stdio

Using npx (Node.js)

# Install and run directly from npm
npx -y @your-org/mcp-calculator

# Or use with MCP clients  
npx -y @your-org/mcp-calculator

📦 Package Installation

Python Package (uvx/pip)

# Install via pip
pip install mcp-calculator-demo

# Install globally with uvx (recommended)
uvx install mcp-calculator-demo

# Run the server
mcp-calculator --transport stdio

Node.js Package (npx/npm)

# Install via npm
npm install -g @your-org/mcp-calculator

# Install and run with npx (recommended)
npx -y @your-org/mcp-calculator

# Run the server locally
mcp-calculator-js

🔧 Configuration for MCP Clients

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "calculator": {
      "command": "uvx",
      "args": ["mcp-calculator-demo"]
    }
  }
}

VS Code MCP Extension Configuration

Add to your VS Code settings or .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "calculator-python": {
        "command": "uvx",
        "args": ["mcp-calculator-demo"]
      },
      "calculator-typescript": {
        "command": "npx",
        "args": ["-y", "@your-org/mcp-calculator"]
      }
    }
  }
}

General MCP Configuration (mcp.json)

{
  "mcpServers": {
    "calculator-python-uvx": {
      "command": "uvx",
      "args": ["mcp-calculator-demo"],
      "env": {
        "DEBUG": "false"
      }
    },
    "calculator-python-local": {
      "command": "mcp-calculator",
      "args": ["--transport", "stdio"],
      "env": {
        "DEBUG": "true"
      }
    },
    "calculator-typescript-npx": {
      "command": "npx",
      "args": ["-y", "@your-org/mcp-calculator"],
      "env": {
        "NODE_ENV": "production"
      }
    },
    "calculator-typescript-local": {
      "command": "mcp-calculator-js",
      "args": [],
      "env": {
        "NODE_ENV": "development"
      }
    }
  }
}

🛠️ Available Tools

  • add: Add two numbers together
  • subtract: Subtract two numbers
  • multiply: Multiply two numbers
  • divide: Divide two numbers (with zero-division protection)

🧪 Testing

Python Version

# Test the client
python client-stdio.py

# Test with MCP Inspector
mcp dev src/mcp_calculator_demo/server.py

TypeScript Version

# Build and test
npm run build
npm run test

# Test with MCP Inspector
mcp dev dist/cli.js

🏗️ Development

Python Development

# Install in development mode
pip install -e .

# Run directly
python -m mcp_calculator_demo.server

# Build for distribution
pip install build
python -m build

TypeScript Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Publish to npm
npm publish

📋 Transport Options

Both implementations support multiple transport methods:

  • stdio: For use with MCP clients (default)
  • sse: For HTTP Server-Sent Events (Python only)

Usage Examples

# Python
mcp-calculator --transport stdio
mcp-calculator --transport sse

# TypeScript (stdio only)
mcp-calculator-js

🌟 Key Benefits of uvx/npx Packaging

uvx (Python)

  • Isolated environments: Each tool runs in its own virtual environment
  • No global installs: Avoid dependency conflicts
  • Automatic updates: Always runs the latest version
  • Easy distribution: Users don't need to manage Python environments

npx (Node.js)

  • No installation required: Run packages without installing
  • Version flexibility: Specify exact versions with @version
  • Global availability: Access tools from anywhere
  • Easy distribution: Users don't need to manage Node.js packages

📖 Usage in MCP Clients

With Claude Desktop

  1. Add server configuration to claude_desktop_config.json
  2. Restart Claude Desktop
  3. Calculator tools will be available in conversations

With MCP Inspector

# Test Python version
mcp dev server.py

# Test TypeScript version  
mcp dev dist/cli.js

# Test published packages
uvx mcp-calculator-demo  # Python
npx -y @your-org/mcp-calculator  # TypeScript

With VS Code MCP Extension

  1. Configure in VS Code settings or .vscode/mcp.json
  2. Reload VS Code
  3. Calculator tools will be available in the MCP panel

🔗 Related Examples

  • Everything Server: npx -y @modelcontextprotocol/server-everything
  • Python Interpreter: uvx python-interpreter-mcp
  • MCP CLI Tool: uvx mcp2cli

📄 License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_calculator_demo-0.4.0.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_calculator_demo-0.4.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file mcp_calculator_demo-0.4.0.tar.gz.

File metadata

  • Download URL: mcp_calculator_demo-0.4.0.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for mcp_calculator_demo-0.4.0.tar.gz
Algorithm Hash digest
SHA256 cfaf021ee650754dfba49b7174311d2e5945e7cc3d274a1968c1b7ae5613ff3f
MD5 8a18bc3135108104991435975c1dd045
BLAKE2b-256 f10707268d42b43b2f9fab551474b789edd31283b3c28fe1b1ee5626273595e6

See more details on using hashes here.

File details

Details for the file mcp_calculator_demo-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_calculator_demo-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 569e42051578275942ac95e4c8e81ed32850d7734a94a448ab7df5cb16cb477a
MD5 70593b00c3102ea7530759014040e0f2
BLAKE2b-256 1e663167ca323a276d2d5c3d10fadf1264f2ad7dbd112bfc680c0ef187ea0dcf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page