Skip to main content
Glama
by nykznykz

MCP Server with FastMCP v2.0

A Model Control Protocol (MCP) server implementation using FastMCP v2.0, featuring Docker containerization, comprehensive testing, and CI/CD automation.

Features

  • ๐Ÿš€ Built with FastMCP v2.0

  • ๐Ÿณ Docker containerization with multi-stage builds

  • ๐Ÿ“ฆ Modern Python packaging with uv

  • ๐Ÿงช Comprehensive test suite with pytest

  • ๐Ÿ”„ GitHub Actions CI/CD pipeline

  • ๐Ÿ›ก๏ธ Security scanning and dependency management

  • ๐Ÿ“Š Code coverage reporting

  • ๐Ÿ”ง Automated code formatting and linting

Quick Start

Prerequisites

  • Python 3.10+

  • uv for dependency management

  • Docker (optional, for containerization)

Installation

  1. Clone the repository:

git clone <repository-url> cd nikolas-mcp
  1. Install dependencies using uv:

uv sync
  1. Run the server:

uv run python -m mcp_server.main

Using Docker

  1. Build the Docker image:

docker build -t mcp-server .
  1. Run the container:

docker run -p 8000:8000 mcp-server
  1. Or use docker-compose:

docker-compose up

Available Tools

The MCP server provides the following tools:

calculate

Evaluates mathematical expressions safely.

Parameters:

  • expression (string): Mathematical expression to evaluate

Example:

{ "tool": "calculate", "arguments": { "expression": "2 + 3 * 4" } }

greet

Generates friendly greeting messages.

Parameters:

  • name (string): Name of the person to greet

Example:

{ "tool": "greet", "arguments": { "name": "World" } }

Resources

  • config://settings - Server configuration settings

  • info://server - General server information

Prompts

  • help - Display help information about available capabilities

Development

Setup Development Environment

# Install development dependencies uv sync --dev # Install pre-commit hooks uv run pre-commit install

Running Tests

# Run all tests uv run pytest # Run tests with coverage uv run pytest --cov=src --cov-report=html # Run specific test file uv run pytest tests/test_main.py -v

Code Quality

# Format code uv run ruff format . # Lint code uv run ruff check . # Type checking uv run mypy src/

Project Structure

nikolas-mcp/ โ”œโ”€โ”€ src/ โ”‚ โ””โ”€โ”€ mcp_server/ โ”‚ โ”œโ”€โ”€ __init__.py โ”‚ โ”œโ”€โ”€ main.py # Main server implementation โ”‚ โ””โ”€โ”€ server.py # Server utilities and config โ”œโ”€โ”€ tests/ โ”‚ โ”œโ”€โ”€ __init__.py โ”‚ โ”œโ”€โ”€ conftest.py # Pytest configuration โ”‚ โ”œโ”€โ”€ test_main.py # Main functionality tests โ”‚ โ”œโ”€โ”€ test_server.py # Server utilities tests โ”‚ โ””โ”€โ”€ test_integration.py # Integration tests โ”œโ”€โ”€ .github/ โ”‚ โ””โ”€โ”€ workflows/ โ”‚ โ”œโ”€โ”€ ci.yml # CI/CD pipeline โ”‚ โ””โ”€โ”€ dependabot.yml # Dependabot auto-merge โ”œโ”€โ”€ Dockerfile โ”œโ”€โ”€ docker-compose.yml โ”œโ”€โ”€ pyproject.toml # Project configuration โ””โ”€โ”€ README.md

CI/CD Pipeline

The project includes a comprehensive GitHub Actions pipeline:

  • Lint and Format: Runs ruff for code formatting and linting

  • Test Suite: Runs tests across multiple Python versions and OS platforms

  • Security Scan: Performs security vulnerability scanning

  • Docker Build: Builds and tests Docker images

  • Auto-publish: Publishes to PyPI and Docker Hub on release

Required Secrets

For full CI/CD functionality, configure these GitHub secrets:

  • PYPI_API_TOKEN - PyPI authentication token

  • DOCKERHUB_USERNAME - Docker Hub username

  • DOCKERHUB_TOKEN - Docker Hub access token

Configuration

Environment Variables

  • LOG_LEVEL - Logging level (default: INFO)

  • PYTHONPATH - Python path for module resolution

Server Configuration

The server can be configured via the ServerConfig class in src/mcp_server/server.py:

config = ServerConfig() config.max_connections = 200 config.timeout = 60

Docker Configuration

Multi-stage Build

The Dockerfile uses multi-stage builds for optimized image size:

  1. Base stage: Sets up Python and system dependencies

  2. Dependencies stage: Installs Python packages with uv

  3. Runtime stage: Copies application code and runs the server

Health Checks

The container includes health checks to ensure the server is running correctly.

Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Make your changes

  4. Run tests and ensure they pass

  5. Commit your changes (git commit -m 'Add amazing feature')

  6. Push to the branch (git push origin feature/amazing-feature)

  7. Open a Pull Request

License

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

Support

If you encounter any issues or have questions:

  1. Check the Issues page for existing problems

  2. Create a new issue with detailed information

  3. Refer to the FastMCP documentation for FastMCP-specific questions

Deploy Server
A
security โ€“ no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    A minimal fastmcp demonstration server that provides a simple addition tool through the MCP protocol, supporting deployment via Docker with multiple transport modes.
    Last updated -
    3
    • Apple
  • A
    security
    A
    license
    A
    quality
    A starter template for building MCP servers with FastMCP, providing testing, linting, formatting, and NPM publishing setup.
    Last updated -
    1
    2
    MIT License
  • A
    security
    A
    license
    A
    quality
    A FastMCP server for mathematical computations, including numerical and symbolic calculations with NumPy and SymPy integration, as well as data visualization through Matplotlib.
    Last updated -
    12
    7
    MIT License
  • A
    security
    F
    license
    A
    quality
    A basic MCP server template built with FastMCP that provides simple tools for greeting users, performing math operations, and managing user information. Serves as a starting point for building custom MCP servers with essential functionality examples.
    Last updated -
    4
    • Apple

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nykznykz/mcp_example'

If you have feedback or need assistance with the MCP directory API, please join our Discord server