mcpField
S
SimpleCalculator using Model Context Protocol (MCP) Server & Docker

SimpleCalculator using Model Context Protocol (MCP) Server & Docker

Local
github.com/DionBenFernandes-DevCloud & Infra0Updated 79w ago

About SimpleCalculator using Model Context Protocol (MCP) Server & Docker

A Docker-based example MCP server for arithmetic, aimed at developers exploring custom MCP implementations. It exposes addition, subtraction, multiplication, and division tools.

Key features

  1. 01Addition, subtraction, multiplication, division
  2. 02Custom MCP protocol handling
  3. 03Docker-based deployment
  4. 04Configuration through compose.yaml

Use cases

  1. 01Provide basic calculations to MCP clients
  2. 02Launch a calculator with Docker Compose
  3. 03Explore or test a custom MCP implementation

MCP support

The server exposes addition, subtraction, multiplication, and division tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"SimpleCalculator-using-MCP-Server---Docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
Run commanddocker run -i --rm compose

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocicompose

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

SimpleCalculator using Model Context Protocol (MCP) Server & Docker

A demonstration of custom Model Context Protocol (MCP) implementation for arithmetic operations, containerized with Docker for seamless deployment.


Features

  • MCP Implementation: Custom protocol handling for mathematical operations
  • Core Operations: Addition, Subtraction, Multiplication, Division
  • Containerized Architecture: Docker-based deployment
  • Dependency Management: Modern Python packaging with pyproject.toml and uv.lock
  • Protocol Security: Basic communication security through container isolation

Project Structure

.
├── src/                # MCP server implementation
├── Dockerfile          # Container build instructions
├── compose.yaml        # Orchestration configuration
├── requirements.txt    # Python dependencies
├── pyproject.toml      # Project metadata
├── uv.lock             # Dependency lock file
├── .gitignore
├── LICENSE.md
└── README.md

Getting Started

Prerequisites
  • Docker
Installation
git clone https://github.com/DionBenFernandes-Dev/SimpleCalculator-using-MCP-Server---Docker.git
cd SimpleCalculator-using-MCP-Server---Docker
Deployment
docker compose up --build

Protocol Implementation

The MCP server handles calculations through a custom protocol implementation. Operations are processed using the following pattern:

  1. Connection: Client establishes connection to MCP server
  2. Request Format:
Available tools:
  - add: Add 2 numbers
  - sub: Subtract 2 numbers
  - mul: Multiply 2 numbers
  - div: Divide 2 numbers

Enter the tool you want to use: add

Enter 1st Number: 3
Enter 2nd Number: 4
  1. Response Format:
Result:: 3 + 4 = 7

Configuration

Modify environment variables in compose.yaml to adjust:

  • Server port binding
  • Logging verbosity
  • Protocol timeouts

Development

  1. Local Setup:
pip install uv # recommended

uv venv

uv add -r requirements.txt

uv run ./src/server.py
  1. Testing:
uv run .\src\client.py
  1. Output:
Available tools:
  - add: Add 2 numbers
  - sub: Subtract 2 numbers
  - mul: Multiply 2 numbers
  - div: Divide 2 numbers

Enter the tool you want to use: add

Enter 1st Number: 3
Enter 2nd Number: 4

Result:: 3 + 4 = 7

License

MIT License - See LICENSE.md


Contribution

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/NewOperation)
  3. Commit changes (git commit -m 'Add modulo operation')
  4. Push to branch (git push origin feature/NewOperation)
  5. Open Pull Request

Maintainer

Dion Ben Fernandes - GitHub Profile


Note: This implementation demonstrates a custom MCP architecture pattern. For production use, consider implementing proper protocol security measures and validation layers.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.