1. Conduid
  2. Developer Tools
  3. Python MCP Server Template
MCP server · Developer Tools

Python MCP Server Template

A complete, production-ready template for creating MCP (Model Context Protocol) servers in Python with uv, Docker, and automated setup

Unclaimed last commit a year ago devtools
34Low

Scored 13 days ago · breakdown

About Python MCP Server Template

Python MCP Server Template is an MCP server published by aj-geddes in the Developer Tools category: a complete, production-ready template for creating MCP (Model Context Protocol) servers in Python with uv, Docker, and automated setup.

The repository has 2 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/aj-geddes/python-mcp-server-template

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (6)

echo(message)Echo functionality

Parameters not published.

health_check()Server health status

Parameters not published.

list_files(directory)Directory listing

Parameters not published.

read_file(file_path)File reading

Parameters not published.

run_shell_command(command)Command execution

Parameters not published.

write_file(file_path, content)File writing

Parameters not published.

Ask AI

✦

Ask AI about Python MCP Server Template

Powered by Claude · Grounded in docs

I know everything about Python MCP Server Template. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

🚀 Python MCP Server Template

Python FastMCP License Docker Tests Security Production Ready Setup Time

Create production-ready MCP servers in minutes, not hours

Transform this template into your custom MCP server with our interactive setup wizard. Everything is centralized, documented, and ready for production deployment.

A comprehensive, security-first template for building Model Context Protocol (MCP) servers with Python. Get from zero to production in minutes with built-in Docker support, automated testing, and enterprise-grade CI/CD.

⚡ 2-Minute MCP Server Setup

# 1. Clone and enter directory
git clone https://github.com/aj-geddes/python-mcp-server-template.git
cd python-mcp-server-template

# 2. Install dependencies
pip install -r requirements.txt

# 3. Run interactive setup wizard
python quick_setup.py

# 4. Start your custom MCP server!
python mcp_server.py

That's it! 🎉 Your production-ready MCP server is running with:

  • ✅ Custom tools configured
  • ✅ Security scanning enabled
  • ✅ Docker deployment ready
  • ✅ Monitoring and logging active

🎯 Perfect For Building

Use Case Example Tools Setup Time
🤖 AI Tool Servers File processors, calculators, formatters 2 minutes
🔌 API Integrations Database queries, web APIs, cloud services 3 minutes
🛠️ Custom Automation System commands, workflows, data pipelines 2 minutes
🏢 Enterprise Solutions Secure, monitored, compliant MCP servers 5 minutes

✨ Why Developers Choose This Template

  • ⚡ 2-Minute Setup - Interactive wizard configures everything
  • 🎯 Centralized Config - All settings in config.py, not scattered across files
  • 🛠️ Easy Tool Addition - Add tools in tools/custom_tools.py with examples
  • 🔒 Security Built-In - A+ grade security with automated scanning
  • 📊 Production Ready - Monitoring, logging, Docker, and health checks included

🚀 From Template to Your MCP Server

Interactive Setup

python quick_setup.py

The wizard will ask you:

  • Server name (e.g., "weather-tools-server")
  • Description (what your server does)
  • Your branding (name, email, repository)
  • Tool purpose (what kinds of tools you're building)

Your Files Are Updated

  • config.py - All your settings in one place
  • tools/custom_tools.py - Template for your tool implementations
  • README.md - Updated with your project info

Add Your Tools

# In tools/custom_tools.py
async def my_awesome_tool_impl(param1: str, param2: int) -> Dict[str, Any]:
    # Your tool logic here
    return {"result": f"Processed {param1} with value {param2}"}

Deploy Anywhere

# Local development
python mcp_server.py

# Production with Docker
docker build -t my-mcp-server .
docker run -p 8080:8080 my-mcp-server

🛠️ Development

Code Quality Tools

# Format code
black .
isort .

# Check types
mypy mcp_server/

# Lint code
flake8 mcp_server/

# Security scan
bandit -r mcp_server/

# Run tests
pytest

# Run tests with coverage
pytest --cov=mcp_server --cov-report=html

Available Commands

Command Description
pytest Run all tests
pytest -m unit Run unit tests only
pytest -m integration Run integration tests only
black . Format all Python files
isort . Sort imports
mypy mcp_server/ Type checking
flake8 mcp_server/ Code linting
bandit -r mcp_server/ Security analysis
./build.sh Build and test Docker image

🔧 Configuration

Environment Variables

Variable Default Description
MCP_SERVER_NAME "template-server" Server name identifier
MCP_TRANSPORT "stdio" Transport type (stdio, http, sse)
MCP_HOST "0.0.0.0" Host for HTTP transport
MCP_PORT "8080" Port for HTTP transport
WORKSPACE_PATH "/workspace" Base path for file operations

Security Configuration

⚠️ Important Security Notes:

  • The default host 0.0.0.0 binds to all interfaces. For production, use 127.0.0.1 or a specific IP
  • File operations are restricted to the WORKSPACE_PATH directory
  • Command execution has timeout limits and input validation
  • All file paths are validated to prevent directory traversal attacks

🏗️ Architecture

Core Components

mcp_server/
├── __init__.py          # Main server implementation
├── __main__.py          # Module entry point
└── tools/               # Tool implementations (future)

mcp_server.py            # Application entry point
tests/                   # Comprehensive test suite
docker/                  # Docker configurations
scripts/                 # Build and utility scripts

Available Tools

Tool Description Security Features
health_check() Server health status Read-only operation
echo(message) Echo functionality Input validation
list_files(directory) Directory listing Path validation
read_file(file_path) File reading Size limits, path validation
write_file(file_path, content) File writing Path validation, encoding checks
run_shell_command(command) Command execution Timeout limits, sandboxing

Available Resources

  • file://{path} - Secure file resource access with path validation

Available Prompts

  • code_review_prompt(code, language, focus) - Structured code review prompting

🐳 Docker Deployment

Build Options

# Standard build
./build.sh

# Build with version tag
./build.sh v1.0.0

# Alternative builds
docker build -f Dockerfile.alternative -t mcp-server-alt .
docker build -f Dockerfile.fixed -t mcp-server-fixed .

Production Deployment

# Run with volume mount
docker run -v /host/workspace:/workspace \
  -e MCP_TRANSPORT=http \
  -e MCP_PORT=8080 \
  -p 8080:8080 \
  python-mcp-server-template:latest

# Run with docker-compose
docker-compose up -d

🧪 Testing

Test Structure

tests/
├── test_mcp_server.py   # Comprehensive server tests
├── test_server.py       # Additional server tests
└── conftest.py          # Test configuration

Test Categories

  • Unit Tests: Individual function testing
  • Integration Tests: End-to-end workflows
  • Security Tests: Path validation and command injection
  • Performance Tests: Timeout and resource limits

Running Tests

# All tests
pytest

# With coverage
pytest --cov=mcp_server --cov-report=html

# Specific test types
pytest -m unit
pytest -m integration
pytest -m "not slow"

# Verbose output
pytest -v

# Stop on first failure
pytest -x

🔒 Security

Security Features

  • Path Validation: Prevents directory traversal attacks
  • Command Sandboxing: Restricted command execution with timeouts
  • File Size Limits: Prevents resource exhaustion
  • Input Validation: Comprehensive input sanitization
  • Environment Configuration: No hardcoded secrets

Security Scanning

# Run security analysis
bandit -r mcp_server/

# Check for known vulnerabilities
safety check

# Generate security report
bandit -r mcp_server/ -f json -o security-report.json

📊 Monitoring & Observability

Health Checks

# Check server health
curl http://localhost:8080/health

# Get server status
python -c "from mcp_server import health_check; import asyncio; print(asyncio.run(health_check()))"

Logging

  • Structured logging with Rich console output
  • Configurable log levels
  • Request/response tracking
  • Error reporting with stack traces

🤝 Contributing

Development Setup

# Install pre-commit hooks
pre-commit install

# Run full quality check
./scripts/quality-check.sh

# Create feature branch
git checkout -b feature/new-tool

Contribution Guidelines

  1. Security First: All code must pass security scans
  2. Test Coverage: Maintain 80%+ test coverage
  3. Code Quality: Pass all linting and type checks
  4. Documentation: Update docs for new features
  5. Backwards Compatibility: Don't break existing APIs

📝 License

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

📚 Documentation

🌐 Complete Documentation

Guide Description
🚀 Quick Start Get running in 5 minutes
🔒 Security Guide A+ security features and best practices
🏗️ API Reference Complete API documentation
👨‍💻 Development Setup Contributing and extending
🐳 Docker Guide Production Docker deployment

🎓 Quality Assurance

This template has achieved Dr. Alexandra Chen's production standards:

  • 🟢 Final Grade: GOOD (B+) - 78/100
  • 💎 Security Grade: EXCEPTIONAL (A+)
  • ✅ Production Status: APPROVED FOR DEPLOYMENT
  • 🧪 Test Results: 99 passing tests
  • 🔒 Security Scan: SECURE (0 vulnerabilities)

🔗 Links

🆘 Support


⭐ Star this repository if it helps you build amazing MCP servers!

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Python MCP Server Template

How do I install Python MCP Server Template?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Python MCP Server Template safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Python MCP Server Template still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.