jairosoft-com/mcp-server-template-python
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
oversrc/
andtests/
- mypy: Run
mypy
oversrc/
andtests/
- black: Format code with
black
- format: Alias for
black
(formats all Python files) - lint: Run both
flake8
andmypy
- 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
, andtest
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