An open API service indexing awesome lists of open source software.

https://github.com/avisangle/calculator-server

A comprehensive Go-based MCP server for mathematical computations with 13+ tools
https://github.com/avisangle/calculator-server

Last synced: about 1 month ago
JSON representation

A comprehensive Go-based MCP server for mathematical computations with 13+ tools

Awesome Lists containing this project

README

          

# Calculator Server - Go MCP Server

A comprehensive **Go-based MCP (Model Context Protocol) server** for mathematical computations, implementing **13 mathematical tools** with advanced features and high precision calculations.

**Owner & Maintainer:** Avinash Sangle (avinash.sangle123@gmail.com)

[![Go Version](https://img.shields.io/badge/go-%3E%3D1.21-blue)](https://golang.org/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
[![Build Status](https://img.shields.io/badge/build-passing-brightgreen)]()
[![Coverage](https://img.shields.io/badge/coverage-%3E95%25-brightgreen)]()

## ๐Ÿงฎ Features

### Core Mathematical Tools (13 Tools)

#### Basic Mathematical Tools (6 Tools)

1. **Basic Math Operations** - Precision arithmetic with configurable decimal places
- Addition, subtraction, multiplication, division
- Multiple operand support
- Decimal precision control (0-15 places)

2. **Advanced Mathematical Functions** - Scientific calculations
- Trigonometric: `sin`, `cos`, `tan`, `asin`, `acos`, `atan`
- Logarithmic: `log`, `log10`, `ln`
- Other: `sqrt`, `abs`, `factorial`, `exp`, `pow`
- Unit support: degrees/radians for trig functions
- Power function with base and exponent parameters

3. **Expression Evaluation** - Complex mathematical expressions
- Variable substitution support
- Mathematical constants (`ฯ€`, `e`)
- Nested expressions with parentheses
- Function calls within expressions

4. **Statistical Analysis** - Comprehensive data analysis
- Descriptive statistics: mean, median, mode
- Variability: standard deviation, variance
- Percentile calculations
- Data validation and error handling

5. **Unit Conversion** - Multi-category unit conversion
- **Length**: mm, cm, m, km, in, ft, yd, mi, mil, ฮผm, nm
- **Weight**: mg, g, kg, t, oz, lb, st (stone), ton (US ton)
- **Temperature**: ยฐC, ยฐF, K, R (Rankine)
- **Volume**: ml, cl, dl, l, kl, fl_oz, cup, pt, qt, gal, tsp, tbsp, bbl
- **Area**: mmยฒ, cmยฒ, mยฒ, kmยฒ, inยฒ, ftยฒ, ydยฒ, miยฒ, acre, ha

6. **Financial Calculations** - Comprehensive financial modeling
- Interest calculations: simple & compound
- Loan payment calculations
- Return on Investment (ROI)
- Present/Future value calculations
- Net Present Value (NPV) & Internal Rate of Return (IRR)

#### Advanced Specialized Tools (7 Tools)

7. **Statistics Summary** - Comprehensive statistical summary of datasets
- Complete statistical overview including all measures
- Data preview with first/last elements
- Common percentiles (25th, 50th, 75th)

8. **Percentile Calculation** - Calculate specific percentiles (0-100)
- Any percentile value between 0 and 100
- Data count and preview information
- Accurate percentile calculations using empirical method

9. **Batch Unit Conversion** - Convert multiple values between units at once
- Bulk conversion operations
- Same unit categories as single conversion
- Efficient batch processing

10. **Net Present Value (NPV)** - Advanced NPV calculations with cash flows
- Multiple cash flow periods
- Discount rate calculations
- Investment decision support

11. **Internal Rate of Return (IRR)** - IRR calculations for investment analysis
- Cash flow analysis
- Newton-Raphson method for accurate IRR calculation
- Investment performance evaluation

12. **Loan Comparison** - Compare multiple loan scenarios
- Multiple loan option analysis
- Payment calculations for each scenario
- Comparison metrics and recommendations

13. **Investment Scenarios** - Compare multiple investment scenarios
- Multiple investment option analysis
- Future value calculations for each scenario
- Investment comparison and recommendations

### Technical Features

- **High Precision**: Uses `shopspring/decimal` for financial calculations
- **Scientific Computing**: Powered by `gonum.org/v1/gonum`
- **Expression Engine**: Advanced parsing with `govaluate`
- **Comprehensive Testing**: >95% test coverage
- **Error Handling**: Detailed error messages and validation
- **MCP Protocol**: Full compliance with MCP specification
- **Build Automation**: Complete Makefile with CI/CD support
- **Streamable HTTP Transport**: MCP-compliant HTTP transport with SSE support

## ๐Ÿš€ Quick Start

### Prerequisites

- **Go 1.21+** (required)
- **Git** (for version control)

### Installation

```bash
# Clone the repository
git clone
cd calculator-server

# Install dependencies
make deps

# Build the server
make build

# Run the server
make run
```

### Alternative Setup

```bash
# Initialize Go module
go mod init calculator-server
go mod tidy

# Build and run
go build -o calculator-server ./cmd/server
./calculator-server -transport=stdio
```

## ๐Ÿ“Š Usage Examples

### Basic Mathematics

```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "basic_math",
"arguments": {
"operation": "add",
"operands": [15.5, 20.3, 10.2],
"precision": 2
}
}
}
```

**Response:**
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"result\": 46.0}"
}
]
}
}
```

### Advanced Mathematical Functions

```json
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "advanced_math",
"arguments": {
"function": "pow",
"value": 2,
"exponent": 8
}
}
}
```

### Statistics Summary

```json
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "stats_summary",
"arguments": {
"data": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}
}
}
```

### Percentile Calculation

```json
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "percentile",
"arguments": {
"data": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"percentile": 90
}
}
}
```

### Net Present Value

```json
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "npv",
"arguments": {
"cashFlows": [-50000, 15000, 20000, 25000, 30000],
"discountRate": 8
}
}
}
```

### Batch Unit Conversion

```json
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "batch_conversion",
"arguments": {
"values": [100, 200, 300],
"fromUnit": "cm",
"toUnit": "m",
"category": "length"
}
}
}
```

## ๐ŸŒ MCP Streamable HTTP Transport

The server implements **MCP-compliant streamable HTTP transport** according to the official MCP specification, providing real-time communication with Server-Sent Events (SSE) streaming support.

### MCP Protocol Compliance

โœ… **Single Endpoint**: `/mcp` only (per MCP specification)
โœ… **Required Headers**: `MCP-Protocol-Version`, `Accept`
โœ… **Session Management**: Cryptographically secure session IDs
โœ… **SSE Streaming**: Server-Sent Events for real-time responses
โœ… **CORS Support**: Origin validation and security headers

### HTTP Endpoints

#### Single MCP Endpoint (Specification Compliant)
- **POST /mcp** - MCP JSON-RPC with optional SSE streaming
- **GET /mcp** - SSE stream establishment
- **OPTIONS /mcp** - CORS preflight handling

### Example Usage

```bash
# Start MCP-compliant HTTP server
./calculator-server -transport=http -port=8080

# Basic JSON-RPC request
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "MCP-Protocol-Version: 2024-11-05" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "basic_math",
"arguments": {
"operation": "add",
"operands": [15, 25],
"precision": 2
}
}
}'

# SSE streaming request (for real-time responses)
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-H "MCP-Protocol-Version: 2024-11-05" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "stats_summary",
"arguments": {"data": [1,2,3,4,5]}
}
}'
```

## ๐Ÿ—๏ธ Project Structure

```
calculator-server/
โ”œโ”€โ”€ cmd/
โ”‚ โ””โ”€โ”€ server/
โ”‚ โ””โ”€โ”€ main.go # Main server entry point
โ”œโ”€โ”€ internal/
โ”‚ โ”œโ”€โ”€ calculator/
โ”‚ โ”‚ โ”œโ”€โ”€ basic.go # Basic math operations
โ”‚ โ”‚ โ”œโ”€โ”€ advanced.go # Advanced mathematical functions
โ”‚ โ”‚ โ”œโ”€โ”€ expression.go # Expression evaluation
โ”‚ โ”‚ โ”œโ”€โ”€ statistics.go # Statistical analysis
โ”‚ โ”‚ โ”œโ”€โ”€ units.go # Unit conversion
โ”‚ โ”‚ โ””โ”€โ”€ financial.go # Financial calculations
โ”‚ โ”œโ”€โ”€ handlers/
โ”‚ โ”‚ โ”œโ”€โ”€ math_handler.go # Math operation handlers
โ”‚ โ”‚ โ”œโ”€โ”€ stats_handler.go # Statistics & specialized handlers
โ”‚ โ”‚ โ””โ”€โ”€ finance_handler.go # Financial handlers
โ”‚ โ”œโ”€โ”€ config/
โ”‚ โ”‚ โ”œโ”€โ”€ config.go # Configuration structures
โ”‚ โ”‚ โ”œโ”€โ”€ loader.go # Configuration loader
โ”‚ โ”‚ โ””โ”€โ”€ errors.go # Configuration errors
โ”‚ โ””โ”€โ”€ types/
โ”‚ โ””โ”€โ”€ requests.go # Request/response types
โ”œโ”€โ”€ pkg/
โ”‚ โ””โ”€โ”€ mcp/
โ”‚ โ”œโ”€โ”€ protocol.go # MCP protocol handling
โ”‚ โ””โ”€โ”€ streamable_http_transport.go # HTTP transport
โ”œโ”€โ”€ tests/
โ”‚ โ”œโ”€โ”€ basic_test.go # Basic math tests
โ”‚ โ”œโ”€โ”€ advanced_test.go # Advanced math tests
โ”‚ โ”œโ”€โ”€ expression_test.go # Expression evaluation tests
โ”‚ โ”œโ”€โ”€ integration_test.go # Integration tests
โ”‚ โ”œโ”€โ”€ config_test.go # Configuration tests
โ”‚ โ””โ”€โ”€ streamable_http_transport_test.go # HTTP transport tests
โ”œโ”€โ”€ config.sample.yaml # Sample YAML configuration
โ”œโ”€โ”€ config.sample.json # Sample JSON configuration
โ”œโ”€โ”€ go.mod # Go module definition
โ”œโ”€โ”€ go.sum # Go module checksums
โ”œโ”€โ”€ Makefile # Build automation
โ””โ”€โ”€ README.md # Project documentation
```

## ๐Ÿ› ๏ธ Development

### Building

```bash
# Build for current platform
make build

# Build for all platforms
make build-all

# Install to $GOPATH/bin
make install
```

### Testing

```bash
# Run all tests
make test

# Run tests with coverage
make coverage

# Run tests with race detection
make test-race

# Run benchmarks
make benchmark
```

### Quality Assurance

```bash
# Format code
make fmt

# Run linter
make lint

# Run vet
make vet

# Run all quality checks
make quality

# Pre-commit checks
make pre-commit

# CI pipeline
make ci
```

### Development Mode

```bash
# Run without building (development)
make run-dev

# Run with rebuild
make run
```

## ๐Ÿ“‹ Available Tools

### Core Tools (6)

#### 1. `basic_math`
**Purpose:** Basic arithmetic operations with precision control

**Parameters:**
- `operation` (string): "add", "subtract", "multiply", "divide"
- `operands` (array of numbers): Numbers to operate on (minimum 2)
- `precision` (integer, optional): Decimal places (0-15, default: 2)

#### 2. `advanced_math`
**Purpose:** Advanced mathematical functions

**Parameters:**
- `function` (string): Function name (sin, cos, tan, asin, acos, atan, log, log10, ln, sqrt, abs, factorial, pow, exp)
- `value` (number): Input value (base for pow function)
- `exponent` (number, optional): Exponent for pow function (required for pow)
- `unit` (string, optional): "radians" or "degrees" for trig functions

#### 3. `expression_eval`
**Purpose:** Evaluate mathematical expressions with variables

**Parameters:**
- `expression` (string): Mathematical expression to evaluate
- `variables` (object, optional): Variable name-value pairs

#### 4. `statistics`
**Purpose:** Statistical analysis of datasets

**Parameters:**
- `data` (array of numbers): Dataset to analyze
- `operation` (string): Statistical operation (mean, median, mode, std_dev, variance, percentile)

#### 5. `unit_conversion`
**Purpose:** Convert between measurement units

**Parameters:**
- `value` (number): Value to convert
- `fromUnit` (string): Source unit
- `toUnit` (string): Target unit
- `category` (string): Unit category (length, weight, temperature, volume, area)

#### 6. `financial`
**Purpose:** Financial calculations and modeling

**Parameters:**
- `operation` (string): Financial operation type (compound_interest, simple_interest, loan_payment, roi, present_value, future_value)
- `principal` (number): Principal amount
- `rate` (number): Interest rate (percentage)
- `time` (number): Time period in years
- `periods` (integer, optional): Compounding periods per year
- `futureValue` (number, optional): Future value for some calculations

### Specialized Tools (7)

#### 7. `stats_summary`
**Purpose:** Comprehensive statistical summary of datasets

**Parameters:**
- `data` (array of numbers): Dataset for summary statistics

#### 8. `percentile`
**Purpose:** Calculate specific percentiles

**Parameters:**
- `data` (array of numbers): Dataset to analyze
- `percentile` (number): Percentile to calculate (0-100)

#### 9. `batch_conversion`
**Purpose:** Convert multiple values between units

**Parameters:**
- `values` (array of numbers): Values to convert
- `fromUnit` (string): Source unit
- `toUnit` (string): Target unit
- `category` (string): Unit category

#### 10. `npv`
**Purpose:** Calculate Net Present Value

**Parameters:**
- `cashFlows` (array of numbers): Cash flows (negative for outflows, positive for inflows)
- `discountRate` (number): Discount rate as percentage

#### 11. `irr`
**Purpose:** Calculate Internal Rate of Return

**Parameters:**
- `cashFlows` (array of numbers): Cash flows (minimum 2 values)

#### 12. `loan_comparison`
**Purpose:** Compare multiple loan scenarios

**Parameters:**
- `loans` (array of objects): Loan scenarios with principal, rate, and time

#### 13. `investment_scenarios`
**Purpose:** Compare multiple investment scenarios

**Parameters:**
- `scenarios` (array of objects): Investment scenarios with principal, rate, and time

## ๐Ÿ”ง Configuration

### Command Line Options

```bash
./calculator-server [OPTIONS]

Options:
-transport string
Transport method (stdio, http) (default "stdio")
-port int
Port for HTTP transport (default 8080)
-host string
Host for HTTP transport (default "127.0.0.1")
-config string
Path to configuration file (YAML or JSON)

Examples:
./calculator-server # Run with stdio transport (default)
./calculator-server -transport=http # Run with HTTP transport on port 8080
./calculator-server -transport=http -port=9000 -host=localhost # Custom host/port
./calculator-server -config=config.yaml # Load configuration from file
```

### Configuration Files

The server supports configuration files in YAML and JSON formats. Configuration files are searched in the following locations:

1. Current directory (`./config.yaml`, `./config.json`)
2. `./config/` directory
3. `/etc/calculator-server/`
4. `$HOME/.calculator-server/`

#### Sample YAML Configuration

```yaml
server:
transport: "http"
http:
host: "127.0.0.1" # Localhost for security
port: 8080
session_timeout: "5m"
max_connections: 100
cors:
enabled: true
origins: ["http://localhost:3000", "http://127.0.0.1:3000"] # Never use "*" in production

logging:
level: "info"
format: "json"
output: "stdout"

tools:
precision:
max_decimal_places: 15
default_decimal_places: 2
expression_eval:
timeout: "10s"
max_variables: 100
statistics:
max_data_points: 10000
financial:
currency_default: "USD"

security:
rate_limiting:
enabled: true
requests_per_minute: 100
request_size_limit: "1MB"
```

### Environment Variables

Environment variables override configuration file settings:

- `CALCULATOR_TRANSPORT`: Transport method (stdio, http)
- `CALCULATOR_HTTP_HOST`: HTTP server host
- `CALCULATOR_HTTP_PORT`: HTTP server port
- `CALCULATOR_LOG_LEVEL`: Set logging level (debug, info, warn, error)
- `CALCULATOR_LOG_FORMAT`: Log format (json, text)
- `CALCULATOR_LOG_OUTPUT`: Log output (stdout, stderr)

## ๐Ÿ“ˆ Performance

### Benchmarks

- **Basic Operations**: ~1-5 ฮผs per operation
- **Advanced Functions**: ~10-50 ฮผs per operation
- **Expression Evaluation**: ~100-500 ฮผs per expression
- **Statistical Operations**: ~10-100 ฮผs per dataset (depends on size)
- **Unit Conversions**: ~1-10 ฮผs per conversion
- **Financial Calculations**: ~50-200 ฮผs per calculation

### Memory Usage

- **Base Memory**: ~10-20 MB
- **Per Operation**: ~1-10 KB additional
- **Large Datasets**: Linear scaling with data size

## ๐Ÿงช Testing

The project includes comprehensive tests with >95% coverage:

- **Unit Tests**: Test individual calculators and functions
- **Integration Tests**: Test MCP protocol integration
- **Error Handling Tests**: Validate error conditions
- **Performance Tests**: Benchmark critical operations

```bash
# Run specific test suites
go test ./tests/basic_test.go -v
go test ./tests/advanced_test.go -v
go test ./tests/integration_test.go -v

# Generate coverage report
make coverage
```

## ๐Ÿšข Deployment

### Docker Deployment

```bash
# Build Docker image
make docker-build

# Run in Docker
make docker-run

# Push to registry
make docker-push
```

### Binary Distribution

```bash
# Create release build
make release

# Binaries will be in ./dist/release/
ls -la ./dist/release/
```

## ๐Ÿ“ API Reference

### MCP Protocol Support

The server implements the full MCP (Model Context Protocol) specification:

- **Initialize**: Server initialization and capability negotiation
- **Tools List**: Dynamic tool discovery
- **Tools Call**: Tool execution with parameter validation
- **Error Handling**: Comprehensive error responses

### Tool Schemas

All tools include comprehensive JSON Schema definitions for parameter validation and documentation. Schemas are automatically generated and include:

- Parameter types and validation rules
- Required vs optional parameters
- Default values and constraints
- Documentation strings

## ๐Ÿ“ Unit Conversion Reference

### Length Units
| Unit | Abbreviation | Conversion to Meters |
|------|--------------|---------------------|
| Millimeter | `mm` | 0.001 |
| Centimeter | `cm` | 0.01 |
| Meter | `m` | 1.0 |
| Kilometer | `km` | 1000.0 |
| Inch | `in` | 0.0254 |
| Foot | `ft` | 0.3048 |
| Yard | `yd` | 0.9144 |
| Mile | `mi` | 1609.344 |
| Mil | `mil` | 0.0000254 |
| Micrometer | `ฮผm` | 0.000001 |
| Nanometer | `nm` | 0.000000001 |

### Weight/Mass Units
| Unit | Abbreviation | Conversion to Grams |
|------|--------------|-------------------|
| Milligram | `mg` | 0.001 |
| Gram | `g` | 1.0 |
| Kilogram | `kg` | 1000.0 |
| Metric Ton | `t` | 1000000.0 |
| Ounce | `oz` | 28.3495 |
| Pound | `lb` | 453.592 |
| Stone | `st` | 6350.29 |
| US Ton | `ton` | 907185 |

### Temperature Units
| Unit | Abbreviation | Description |
|------|--------------|-------------|
| Celsius | `C` | Degrees Celsius |
| Fahrenheit | `F` | Degrees Fahrenheit |
| Kelvin | `K` | Kelvin (absolute) |
| Rankine | `R` | Degrees Rankine |

### Volume Units
| Unit | Abbreviation | Conversion to Liters |
|------|--------------|---------------------|
| Milliliter | `ml` | 0.001 |
| Centiliter | `cl` | 0.01 |
| Deciliter | `dl` | 0.1 |
| Liter | `l` | 1.0 |
| Kiloliter | `kl` | 1000.0 |
| US Fluid Ounce | `fl_oz` | 0.0295735 |
| US Cup | `cup` | 0.236588 |
| US Pint | `pt` | 0.473176 |
| US Quart | `qt` | 0.946353 |
| US Gallon | `gal` | 3.78541 |
| Teaspoon | `tsp` | 0.00492892 |
| Tablespoon | `tbsp` | 0.0147868 |
| Barrel | `bbl` | 158.987 |

### Area Units
| Unit | Abbreviation | Conversion to mยฒ |
|------|--------------|------------------|
| Square Millimeter | `mm2` | 0.000001 |
| Square Centimeter | `cm2` | 0.0001 |
| Square Meter | `m2` | 1.0 |
| Square Kilometer | `km2` | 1000000.0 |
| Square Inch | `in2` | 0.00064516 |
| Square Foot | `ft2` | 0.092903 |
| Square Yard | `yd2` | 0.836127 |
| Square Mile | `mi2` | 2589988.11 |
| Acre | `acre` | 4046.86 |
| Hectare | `ha` | 10000.0 |

## ๐Ÿ”ข Mathematical Functions Reference

### Trigonometric Functions
| Function | Syntax | Description | Example |
|----------|--------|-------------|---------|
| Sine | `sin(x)` | Sine of x (radians) | `sin(pi/2)` โ†’ 1.0 |
| Cosine | `cos(x)` | Cosine of x (radians) | `cos(0)` โ†’ 1.0 |
| Tangent | `tan(x)` | Tangent of x (radians) | `tan(pi/4)` โ†’ 1.0 |
| Arcsine | `asin(x)` | Inverse sine | `asin(1)` โ†’ 1.5708 |
| Arccosine | `acos(x)` | Inverse cosine | `acos(1)` โ†’ 0.0 |
| Arctangent | `atan(x)` | Inverse tangent | `atan(1)` โ†’ 0.7854 |

### Logarithmic Functions
| Function | Syntax | Description | Example |
|----------|--------|-------------|---------|
| Common Log | `log(x)` | Base-10 logarithm | `log(100)` โ†’ 2.0 |
| Natural Log | `ln(x)` | Natural logarithm (base e) | `ln(e)` โ†’ 1.0 |

### Power & Root Functions
| Function | Syntax | Description | Example |
|----------|--------|-------------|---------|
| Square Root | `sqrt(x)` | Square root of x | `sqrt(16)` โ†’ 4.0 |
| Power | `pow(x, y)` | x raised to power y | `pow(2, 3)` โ†’ 8.0 |
| Exponential | `exp(x)` | e raised to power x | `exp(1)` โ†’ 2.7183 |

### Other Functions
| Function | Syntax | Description | Example |
|----------|--------|-------------|---------|
| Absolute Value | `abs(x)` | Absolute value of x | `abs(-5)` โ†’ 5.0 |
| Factorial | `factorial(x)` | Factorial of x | `factorial(5)` โ†’ 120.0 |

### Mathematical Constants
| Constant | Value | Description |
|----------|-------|-------------|
| `pi` | 3.14159... | Pi (ฯ€) |
| `e` | 2.71828... | Euler's number |

## ๐Ÿค Contributing

1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **Commit** changes (`git commit -m 'Add amazing feature'`)
4. **Push** to branch (`git push origin feature/amazing-feature`)
5. **Create** a Pull Request

### Development Guidelines

- Follow Go best practices and conventions
- Maintain >95% test coverage
- Add comprehensive documentation
- Use meaningful commit messages
- Run `make quality` before submitting

## ๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- **Go Team**: For the excellent programming language
- **MCP Protocol**: Model Context Protocol specification
- **External Libraries**:
- [`shopspring/decimal`](https://github.com/shopspring/decimal): Precise decimal arithmetic
- [`Knetic/govaluate`](https://github.com/Knetic/govaluate): Expression evaluation
- [`gonum`](https://gonum.org/): Scientific computing
- [`gopkg.in/yaml.v3`](https://gopkg.in/yaml.v3): YAML configuration support

## ๐Ÿ“ž Support & Contact

**Primary Contact:**
- **Maintainer**: Avinash Sangle
- **Email**: avinash.sangle123@gmail.com
- **GitHub**: [https://github.com/avisangle](https://github.com/avisangle)
- **Website**: [https://avisangle.github.io/](https://avisangle.github.io/)

**Project Resources:**
- **Issues**: [GitHub Issues](https://github.com/IBM/mcp-context-forge/issues)
- **Documentation**: This README and inline code documentation
- **Examples**: See `make example-*` commands

**Getting Help:**
1. Check this README for comprehensive documentation
2. Review the test files for usage examples
3. Submit issues with detailed error information
4. Contact the maintainer for direct support

---

**Built with โค๏ธ by Avinash Sangle for the IBM MCP Context Forge project**

**Connect with the Author:**
- ๐ŸŒ Website: [https://avisangle.github.io/](https://avisangle.github.io/)
- ๐Ÿ’ป GitHub: [https://github.com/avisangle](https://github.com/avisangle)
- ๐Ÿ“ง Email: avinash.sangle123@gmail.com

For more information about MCP servers and the Context Forge project, visit the [IBM MCP Context Forge repository](https://github.com/IBM/mcp-context-forge).