Skeleton MCP Server
A template project for building Model Context Protocol (MCP) servers. This skeleton provides a solid foundation with best practices, Docker support, and example implementations.
Features
FastMCP framework for easy MCP server development
Docker and Docker Compose support for containerized deployment
VS Code Dev Container configuration for consistent development environments
Example CRUD API implementation to demonstrate patterns
Test suite with pytest
Claude Code integration with custom commands
Quick Start
Prerequisites
Python 3.10 or higher
uv package manager (recommended)
Docker (optional, for containerized deployment)
Installation
Clone this repository and rename it for your project:
Rename the package:
Rename
src/skeleton_mcptosrc/your_project_nameUpdate
pyproject.tomlwith your project name and metadataUpdate imports in all Python files
Install dependencies:
Create your environment file:
Run the server:
Project Structure
Development
Running Tests
Linting
Building
Adding Your Own Tools
Create a new module in
src/skeleton_mcp/api/:
Register the tool in
server.py:
Add types in
types.pyif needed:
Docker Deployment
Build and run with Docker Compose:
For development with VS Code Dev Containers:
Open the project in VS Code
Install the "Dev Containers" extension
Click "Reopen in Container" when prompted
Claude Desktop Integration
Add to your Claude Desktop configuration (claude_desktop_config.json):
Or for local development:
Available Tools
Tool | Description |
| Check server health and configuration status |
| List all items with filtering and pagination |
| Get a specific item by ID |
| Create a new item |
| Update an existing item |
| Delete an item |
Environment Variables
Variable | Description | Default |
| Your API key for authentication | (required) |
| Base URL for the backend API |
|
| Request timeout in seconds |
|
| Enable debug logging |
|
License
MIT License - See LICENSE file for details.
Contributing
Fork the repository
Create a feature branch
Make your changes
Run tests and linting
Submit a pull request