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.2.0.tar.gz (9.6 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.2.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_calculator_demo-0.2.0.tar.gz
  • Upload date:
  • Size: 9.6 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.2.0.tar.gz
Algorithm Hash digest
SHA256 0e1dec626ff6c617bdd0c4d60e2cfcad43d0f2623a6213bcf567855291f99fff
MD5 8fee32be7179376808d068a368b00577
BLAKE2b-256 c6a4f0df37ba3f52b184668adca32fe64abc0673a68e4906eef4f97cdfd3abbe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mcp_calculator_demo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 289ecd890d66a8df1fbfc2199d2a82b26002181e47f0e85d0a0dad540cd089ec
MD5 db2f73a2bbcb5ce09d2bd876a3db5c13
BLAKE2b-256 c1e58e0c8817c52af1f2de9ba62e235da7f8cb9565a2ccba6ec8de8fe90bcf0f

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