MCP Math Server

MCP Math Server

A Mathematical Computation Protocol server providing 286 mathematical functions across multiple domains with flexible transport options (STDIO/HTTP) and streaming capabilities.

Category
Visit Server

README

🧮 Chuk MCP Math Server

Python 3.11+ Version MCP Compatible License

A highly configurable Mathematical Computation Protocol (MCP) server that provides comprehensive mathematical functions with flexible transport options and streaming capabilities.

✨ Features

🔢 Mathematical Capabilities

  • 286 Mathematical Functions across multiple domains
  • Number Theory: Prime testing, factorization, GCD, LCM, sequences
  • Arithmetic: Basic operations, advanced calculations, statistics
  • Real-time Computation: Async processing with timeout support
  • Function Filtering: Configurable whitelisting/blacklisting by domain or category

🚀 Transport & Streaming

  • Dual Transport: STDIO and HTTP support
  • HTTP Streaming: Server-Sent Events for intensive computations
  • WebSocket Ready: Extensible for real-time applications
  • CORS Support: Cross-origin requests enabled

⚙️ Configuration

  • CLI Configuration: Comprehensive command-line options
  • File Configuration: YAML and JSON config file support
  • Environment Variables: Container-friendly configuration
  • Dynamic Filtering: Runtime function filtering capabilities

🛡️ Production Ready

  • Health Monitoring: Built-in health check endpoints
  • Error Handling: Graceful failure management
  • Logging: Configurable log levels and output
  • Rate Limiting: Optional request throttling
  • Timeout Management: Configurable computation timeouts

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/chuk-mcp/chuk-mcp-math-server.git
cd chuk-mcp-math-server

# Install dependencies
uv sync
# or
pip install -e .

Basic Usage

STDIO Transport (MCP Standard)

# Start server with STDIO transport
uv run chuk-mcp-math-server

# Or with Python
python src/chuk_mcp_math_server/math_server.py

HTTP Transport

# Start HTTP server
uv run chuk-mcp-math-server --transport http --port 8000

# Server will be available at http://localhost:8000

Example Client Usage

Test with Examples

# Test STDIO client
uv run examples/stdio_client_example.py

# Test HTTP client with streaming
uv run examples/http_client_example.py

Basic HTTP API Usage

# Check server status
curl http://localhost:8000/

# Health check
curl http://localhost:8000/health

# Sample response:
# {
#   "server": "chuk-mcp-math-server",
#   "version": "0.1.0",
#   "functions_available": 286,
#   "transport": "http"
# }

📖 Documentation

Available Functions

The server provides 286 mathematical functions across these domains:

Domain Functions Examples
Arithmetic Basic operations, statistics add, multiply, mean, variance
Number Theory Primes, factorization, sequences is_prime, next_prime, fibonacci, gcd
Advanced Math Complex calculations sqrt, power, factorial, combinations

Configuration Options

Command Line

# Basic configuration
chuk-mcp-math-server --transport http --port 8080 --host 0.0.0.0

# Function filtering
chuk-mcp-math-server --domains arithmetic number_theory --functions is_prime add

# Performance tuning
chuk-mcp-math-server --cache-strategy smart --timeout 60 --max-concurrent 20

# Logging
chuk-mcp-math-server --verbose  # Debug logging
chuk-mcp-math-server --quiet    # Minimal logging

Configuration File

# config.yaml
transport: "http"
port: 8000
host: "0.0.0.0"
enable_cors: true
log_level: "INFO"

# Function filtering
domain_whitelist: ["arithmetic", "number_theory"]
function_blacklist: ["slow_function"]

# Performance
cache_strategy: "smart"
cache_size: 1000
computation_timeout: 30.0
max_concurrent_calls: 10
# Use configuration file
chuk-mcp-math-server --config config.yaml

Environment Variables

export MCP_MATH_TRANSPORT="http"
export MCP_MATH_PORT=8000
export MCP_MATH_LOG_LEVEL="DEBUG"
export MCP_MATH_DOMAIN_WHITELIST="arithmetic,number_theory"

chuk-mcp-math-server

MCP Protocol Usage

Initialize Connection

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-03-26",
    "clientInfo": {
      "name": "my-math-client",
      "version": "1.0.0"
    }
  }
}

List Available Tools

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list"
}

Call Mathematical Function

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "is_prime",
    "arguments": {
      "n": 97
    }
  }
}

🛠️ Development

Project Structure

chuk-mcp-math-server/
├── src/chuk_mcp_math_server/
│   ├── __init__.py              # Package initialization
│   ├── _version.py              # Dynamic version management
│   ├── _cli.py                  # CLI utilities
│   └── math_server.py           # Main server implementation
├── examples/
│   ├── stdio_client_example.py  # STDIO client demo
│   └── http_client_example.py   # HTTP client demo
├── tests/                       # Test suite
├── pyproject.toml              # Project configuration
└── README.md                   # This file

Development Setup

# Install development dependencies
uv sync --group dev

# Install with all optional features
pip install -e .[full]

# Run formatting
black src/ examples/
isort src/ examples/

# Run tests
pytest

# Version information
chuk-mcp-math-server-info

Adding New Functions

  1. Add mathematical functions to the chuk-mcp-math library
  2. Functions are automatically discovered and registered
  3. Use function filtering to control exposure

Custom Configuration

from chuk_mcp_math_server import ServerConfig, ConfigurableMCPMathServer

# Create custom configuration
config = ServerConfig(
    transport="http",
    port=9000,
    domain_whitelist=["arithmetic"],
    enable_cors=True,
    log_level="DEBUG"
)

# Start server
server = ConfigurableMCPMathServer(config)
await server.run()

🌐 HTTP API Reference

Endpoints

Endpoint Method Description
/ GET Server status and information
/health GET Health check and function count
/mcp POST MCP protocol messages

HTTP Streaming

The server supports Server-Sent Events (SSE) for computationally intensive operations:

// Request with streaming
fetch('/mcp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'text/event-stream'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'tools/call',
    params: {
      name: 'fibonacci',
      arguments: { n: 1000 }
    }
  })
})

📊 Performance

Benchmarks

  • Function Calls: ~1000 ops/sec (simple arithmetic)
  • Prime Testing: ~100 ops/sec (medium-sized numbers)
  • Memory Usage: ~50MB baseline + computation overhead
  • Startup Time: ~2 seconds (286 functions loaded)

Optimization Tips

  • Use cache_strategy: "smart" for repeated calculations
  • Increase max_concurrent_calls for high-throughput scenarios
  • Use function filtering to reduce memory footprint
  • Enable HTTP streaming for long-running computations

🔧 Troubleshooting

Common Issues

Server Won't Start

# Check dependencies
chuk-mcp-math-server-info

# Verify configuration
chuk-mcp-math-server --show-config

# Debug mode
chuk-mcp-math-server --verbose

Function Not Available

# List all functions
chuk-mcp-math-server --domains arithmetic --show-config

# Check filtering
chuk-mcp-math-server --functions is_prime add --show-config

HTTP Connection Issues

# Test server health
curl http://localhost:8000/health

# Check CORS settings
chuk-mcp-math-server --transport http --enable-cors

Debug Information

# Get detailed system info
chuk-mcp-math-server-info --info

# Check version detection
python -c "import chuk_mcp_math_server; chuk_mcp_math_server.print_version_info()"

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Run the test suite
  6. Submit a pull request

Code Style

  • Use black for code formatting
  • Use isort for import sorting
  • Follow PEP 8 guidelines
  • Add type hints where appropriate

📋 Requirements

Core Dependencies

  • Python 3.11+
  • chuk-mcp >= 0.5
  • chuk-mcp-math >= 0.1.0
  • fastapi >= 0.116.1
  • uvicorn >= 0.35.0
  • httpx >= 0.28.1
  • pyyaml >= 6.0.2

Optional Dependencies

  • Development tools: pytest, black, isort, mypy
  • All optional: pip install chuk-mcp-math-server[full]

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

🔗 Links


Made with ❤️ by the Chuk MCP Team

Bringing mathematical computation to the Model Context Protocol ecosystem

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured