mcp-server-template-python

jairosoft-com/mcp-server-template-python

3.2

If you are the rightful owner of mcp-server-template-python and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

My MCP Server is a Python template designed for building Model Context Protocol (MCP) servers, facilitating secure and scalable context and tool invocation for language models.

My MCP Server

My MCP Server is a Python template for building a Model Context Protocol (MCP) server. It uses FastMCP to expose tools via JSON-RPC over stdio (and can be extended to HTTP), enabling secure and scalable context and tool invocation for language models.

Project Structure

ā”œā”€ā”€ src/ Source code (package: my_mcp_server) │ ā”œā”€ā”€ server.py Entry point and tool registrations │ ā”œā”€ā”€ main.py Console script entry │ ā”œā”€ā”€ config/ Configuration modules │ ā”œā”€ā”€ context/ Context providers for MCP │ ā”œā”€ā”€ models/ Pydantic models and schemas │ ā”œā”€ā”€ tools/ Custom tool implementations │ └── utils/ Helper utilities ā”œā”€ā”€ tests/ Unit, integration, and performance tests ā”œā”€ā”€ Taskfile.yaml Common development and CI tasks ā”œā”€ā”€ pyproject.toml Project metadata and build configuration ā”œā”€ā”€ requirements.txt Runtime dependencies └── docs/ Contribution & architecture guides

Prerequisites

  • Python >=3.13
  • Git
  • (Optional) Taskfile task runner

Setup

Create and activate virtual environment

task create-venv source .venv/bin/activate

Install runtime dependencies

task install-requirements

(Optional) Install development dependencies

task install-dev

Taskfile Tasks

Run task --list to see all available tasks. Common tasks include:

  • default: List available tasks
  • create-venv: Create a Python virtual environment in .venv
  • activate-venv: Show activation commands for the venv
  • clean-venv: Remove the .venv directory
  • install-requirements: Install runtime dependencies (pip install -r requirements.txt)
  • install-dev: Install the project in editable mode with dev dependencies (pip install -e ".[dev]")
  • flake8: Run flake8 over src/ and tests/
  • mypy: Run mypy over src/ and tests/
  • black: Format code with black
  • format: Alias for black (formats all Python files)
  • lint: Run both flake8 and mypy
  • test: Run all tests (unit, integration, performance) with pytest
  • test-unit: Run unit tests only
  • test-integration: Run integration tests only
  • test-performance: Run performance tests only
  • coverage: Generate coverage report (HTML + terminal) with pytest-cov
  • check: Run format, lint, and test sequentially
  • run: Start the console-based MCP server (python -m my_mcp_server)
  • dev: Alias for run (start server in development mode)
  • clean: Clean Python build artifacts and caches
  • build: Build distribution packages (sdist & wheel) using Hatchling

Development & Usage

After setup, you can start the server in stdio mode:

task run

Or directly:

python -m my_mcp_server

Testing & Linting

  • Run all tests: task test
  • Run linters: task lint
  • Format code: task format

Build & Release

  • Build distributions: task build
  • Upload to PyPI: twine upload dist/*

Configuration

Environment variables can be managed via a .env file (loaded by python-dotenv/pydantic-settings).

Contributing

See docs/CONTRIBUTING.md for guidelines on contributing and architecture details.

License

MIT License