# 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
```bash
# 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)
```bash
# 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)
```bash
# 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)
```bash
# 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`:
```json
{
"mcpServers": {
"calculator": {
"command": "uvx",
"args": ["mcp-calculator-demo"]
}
}
}
```
### VS Code MCP Extension Configuration
Add to your VS Code settings or `.vscode/mcp.json`:
```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)
```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
```bash
# Test the client
python client-stdio.py
# Test with MCP Inspector
mcp dev src/mcp_calculator_demo/server.py
```
### TypeScript Version
```bash
# Build and test
npm run build
npm run test
# Test with MCP Inspector
mcp dev dist/cli.js
```
## ๐๏ธ Development
### Python Development
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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.
Raw data
{
"_id": null,
"home_page": null,
"name": "mcp-calculator-demo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "auto-config, calculator, mcp, model-context-protocol",
"author": null,
"author_email": "Your Name <your.email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/32/87/fe884f98313348e9ca061b28fdeb8ee3ee98ed98043957ed79d6b74727d4/mcp_calculator_demo-0.1.2.tar.gz",
"platform": null,
"description": "# MCP Calculator Demo\n\nA Model Context Protocol (MCP) server providing calculator functionality. Available in both Python and TypeScript implementations.\n\n## \ud83d\ude80 Quick Start\n\n### Using uvx (Python) - Recommended\n```bash\n# Install and run directly from PyPI\nuvx mcp-calculator-demo\n\n# Or use with MCP clients\nuvx mcp-calculator-demo --transport stdio\n```\n\n### Using npx (Node.js)\n```bash\n# Install and run directly from npm\nnpx -y @your-org/mcp-calculator\n\n# Or use with MCP clients \nnpx -y @your-org/mcp-calculator\n```\n\n## \ud83d\udce6 Package Installation\n\n### Python Package (uvx/pip)\n```bash\n# Install via pip\npip install mcp-calculator-demo\n\n# Install globally with uvx (recommended)\nuvx install mcp-calculator-demo\n\n# Run the server\nmcp-calculator --transport stdio\n```\n\n### Node.js Package (npx/npm)\n```bash\n# Install via npm\nnpm install -g @your-org/mcp-calculator\n\n# Install and run with npx (recommended)\nnpx -y @your-org/mcp-calculator\n\n# Run the server locally\nmcp-calculator-js\n```\n\n## \ud83d\udd27 Configuration for MCP Clients\n\n### Claude Desktop Configuration\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n \"mcpServers\": {\n \"calculator\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-calculator-demo\"]\n }\n }\n}\n```\n\n### VS Code MCP Extension Configuration\nAdd to your VS Code settings or `.vscode/mcp.json`:\n\n```json\n{\n \"mcp\": {\n \"servers\": {\n \"calculator-python\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-calculator-demo\"]\n },\n \"calculator-typescript\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@your-org/mcp-calculator\"]\n }\n }\n }\n}\n```\n\n### General MCP Configuration (mcp.json)\n```json\n{\n \"mcpServers\": {\n \"calculator-python-uvx\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-calculator-demo\"],\n \"env\": {\n \"DEBUG\": \"false\"\n }\n },\n \"calculator-python-local\": {\n \"command\": \"mcp-calculator\",\n \"args\": [\"--transport\", \"stdio\"],\n \"env\": {\n \"DEBUG\": \"true\"\n }\n },\n \"calculator-typescript-npx\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@your-org/mcp-calculator\"],\n \"env\": {\n \"NODE_ENV\": \"production\"\n }\n },\n \"calculator-typescript-local\": {\n \"command\": \"mcp-calculator-js\",\n \"args\": [],\n \"env\": {\n \"NODE_ENV\": \"development\"\n }\n }\n }\n}\n```\n\n## \ud83d\udee0\ufe0f Available Tools\n\n- **add**: Add two numbers together\n- **subtract**: Subtract two numbers \n- **multiply**: Multiply two numbers\n- **divide**: Divide two numbers (with zero-division protection)\n\n## \ud83e\uddea Testing\n\n### Python Version\n```bash\n# Test the client\npython client-stdio.py\n\n# Test with MCP Inspector\nmcp dev src/mcp_calculator_demo/server.py\n```\n\n### TypeScript Version \n```bash\n# Build and test\nnpm run build\nnpm run test\n\n# Test with MCP Inspector\nmcp dev dist/cli.js\n```\n\n## \ud83c\udfd7\ufe0f Development\n\n### Python Development\n```bash\n# Install in development mode\npip install -e .\n\n# Run directly\npython -m mcp_calculator_demo.server\n\n# Build for distribution\npip install build\npython -m build\n```\n\n### TypeScript Development\n```bash\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Watch mode\nnpm run dev\n\n# Publish to npm\nnpm publish\n```\n\n## \ud83d\udccb Transport Options\n\nBoth implementations support multiple transport methods:\n\n- **stdio**: For use with MCP clients (default)\n- **sse**: For HTTP Server-Sent Events (Python only)\n\n### Usage Examples\n```bash\n# Python\nmcp-calculator --transport stdio\nmcp-calculator --transport sse\n\n# TypeScript (stdio only)\nmcp-calculator-js\n```\n\n## \ud83c\udf1f Key Benefits of uvx/npx Packaging\n\n### uvx (Python)\n- \u2705 **Isolated environments**: Each tool runs in its own virtual environment\n- \u2705 **No global installs**: Avoid dependency conflicts\n- \u2705 **Automatic updates**: Always runs the latest version\n- \u2705 **Easy distribution**: Users don't need to manage Python environments\n\n### npx (Node.js) \n- \u2705 **No installation required**: Run packages without installing\n- \u2705 **Version flexibility**: Specify exact versions with `@version`\n- \u2705 **Global availability**: Access tools from anywhere\n- \u2705 **Easy distribution**: Users don't need to manage Node.js packages\n\n## \ud83d\udcd6 Usage in MCP Clients\n\n### With Claude Desktop\n1. Add server configuration to `claude_desktop_config.json`\n2. Restart Claude Desktop\n3. Calculator tools will be available in conversations\n\n### With MCP Inspector\n```bash\n# Test Python version\nmcp dev server.py\n\n# Test TypeScript version \nmcp dev dist/cli.js\n\n# Test published packages\nuvx mcp-calculator-demo # Python\nnpx -y @your-org/mcp-calculator # TypeScript\n```\n\n### With VS Code MCP Extension\n1. Configure in VS Code settings or `.vscode/mcp.json`\n2. Reload VS Code\n3. Calculator tools will be available in the MCP panel\n\n## \ud83d\udd17 Related Examples\n\n- **Everything Server**: `npx -y @modelcontextprotocol/server-everything`\n- **Python Interpreter**: `uvx python-interpreter-mcp`\n- **MCP CLI Tool**: `uvx mcp2cli`\n\n## \ud83d\udcc4 License\n\nMIT License - see LICENSE file for details.",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Model Context Protocol server providing calculator functionality with auto-configuration",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/yourusername/mcp-calculator-demo",
"Issues": "https://github.com/yourusername/mcp-calculator-demo/issues",
"Repository": "https://github.com/yourusername/mcp-calculator-demo"
},
"split_keywords": [
"auto-config",
" calculator",
" mcp",
" model-context-protocol"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7cbb5a27241f68500c1777a0917c64db5a2f5b1312910bbd9c99d78aa2ae4b50",
"md5": "5a289d19ebe84d0ea47221a65b730a19",
"sha256": "8199f98e2a5d7aa801e6b71574bc433d50490793e431e4a770a00897c7467737"
},
"downloads": -1,
"filename": "mcp_calculator_demo-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a289d19ebe84d0ea47221a65b730a19",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 5708,
"upload_time": "2025-07-12T07:17:12",
"upload_time_iso_8601": "2025-07-12T07:17:12.364562Z",
"url": "https://files.pythonhosted.org/packages/7c/bb/5a27241f68500c1777a0917c64db5a2f5b1312910bbd9c99d78aa2ae4b50/mcp_calculator_demo-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3287fe884f98313348e9ca061b28fdeb8ee3ee98ed98043957ed79d6b74727d4",
"md5": "1b63715ae0c300593750fa26bec7a113",
"sha256": "13533a6e72a14f63defd4ad3dd640660969358307b6972fb0f064f4c5625e440"
},
"downloads": -1,
"filename": "mcp_calculator_demo-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "1b63715ae0c300593750fa26bec7a113",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 9627,
"upload_time": "2025-07-12T07:17:13",
"upload_time_iso_8601": "2025-07-12T07:17:13.888293Z",
"url": "https://files.pythonhosted.org/packages/32/87/fe884f98313348e9ca061b28fdeb8ee3ee98ed98043957ed79d6b74727d4/mcp_calculator_demo-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 07:17:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "mcp-calculator-demo",
"github_not_found": true,
"lcname": "mcp-calculator-demo"
}