MCP Server Cookie Cutter Template

by codingthefuturewithai

22 220 downloads Not rated yet

About

A cookiecutter template for creating MCP (Model Control Protocol) servers

Explore

- Multi-Transport Support: stdio and streamable HTTP in a single implementation
- Automatic Decorators: Exception handling, logging, type conversion, and parallelization
- Unified Logging System: SQLite-based logging with correlation IDs and extensible destinations
- Web Management UI: Streamlit-based interface for configuration, logs, and documentation
- Example Tools: Ready-to-use example tools with best practices
- Full MCP Inspector Compatibility: Easy testing and debugging
- Proper Absolute Imports: Clean package structure throughout
- DevFlow Integration: Built-in JIRA workflow commands (plan-work, implement, security-review, complete)
- Comprehensive Documentation: Templates for README, development guide, and setup prompts

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name MCP Server Cookie Cutter Template
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

1. Python 3.11 or higher

   python --version  # Should be 3.11 or higher
   

2. uv (Fast Python package installer)


curl -LsSf https://astral.sh/uv/install.sh | sh
   

3. Cookie Cutter

   uv pip install cookiecutter

You'll be asked for:

- project_name: Human-readable name (e.g., "My MCP Server")
- __project_slug: Python package name (auto-generated from project_name, e.g., "my_mcp_server")
- description: Short description of your project
- author_name: Your name
- email: Your email address
- server_port: Port for Streamable HTTP transport (default: 3001)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp server cookie cutter template": {
            "mcp-cookie-cutter": {
                "command": "python",
                "args": [
                    "--version",
                    "#",
                    "Should",
                    "be",
                    "3.11",
                    "or",
                    "higher"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-cookie-cutter": {
        "command": "python",
        "args": [
            "--version",
            "#",
            "Should",
            "be",
            "3.11",
            "or",
            "higher"
        ]
    }
}

A cookie cutter template for creating new MCP (Model Context Protocol) servers. This template generates a fully functional MCP server with multi-transport support (stdio and streamable HTTP), advanced logging, automatic decorators, and a web-based management UI.

Features

- Multi-Transport Support: stdio and streamable HTTP in a single implementation
- Automatic Decorators: Exception handling, logging, type conversion, and parallelization
- Unified Logging System: SQLite-based logging with correlation IDs and extensible destinations
- Web Management UI: Streamlit-based interface for configuration, logs, and documentation
- Example Tools: Ready-to-use example tools with best practices
- Full MCP Inspector Compatibility: Easy testing and debugging
- Proper Absolute Imports: Clean package structure throughout
- DevFlow Integration: Built-in JIRA workflow commands (plan-work, implement, security-review, complete)
- Comprehensive Documentation: Templates for README, development guide, and setup prompts

Prerequisites

1. Python 3.11 or higher

   python --version  # Should be 3.11 or higher
   

2. uv (Fast Python package installer)

   # Install uv if you don't have it
   curl -LsSf https://astral.sh/uv/install.sh | sh
   

3. Cookie Cutter

   uv pip install cookiecutter

Creating a New MCP Server

You can create a new MCP server either directly from GitHub or from a local copy of this template.

Option 1: Directly from GitHub

cookiecutter gh:codingthefuturewithai/mcp-cookie-cutter

Option 2: From Local Copy

1. Clone this template:

   git clone https://github.com/codingthefuturewithai/mcp-cookie-cutter
   

2. Create a project using the local template:

   cookiecutter path/to/mcp-cookie-cutter

Template Configuration

You'll be asked for:

- project_name: Human-readable name (e.g., "My MCP Server")
- __project_slug: Python package name (auto-generated from project_name, e.g., "my_mcp_server")
- description: Short description of your project
- author_name: Your name
- email: Your email address
- server_port: Port for Streamable HTTP transport (default: 3001)

Generated Project Structure

my_mcp_server/              # Your project directory
├── .claude/                # Claude Code integration
│   ├── agents/            # Security scanner agent
│   └── commands/          # DevFlow workflow commands
│       └── devflow/       # JIRA-integrated development workflow
├── my_mcp_server/          # Python package directory
│   ├── __init__.py
│   ├── __main__.py
│   ├── client/             # Client implementations
│   │   ├── __init__.py
│   │   └── app.py         # Test client for development
│   ├── server/            # Server implementation
│   │   ├── __init__.py
│   │   └── app.py        # Multi-transport MCP server (stdio, streamable HTTP)
│   ├── tools/             # Tool implementations
│   │   ├── __init__.py
│   │   └── example_tools.py  # Example tools with decorators
│   ├── decorators/        # Automatic tool decorators
│   │   ├── exception_handler.py
│   │   ├── tool_logger.py
│   │   ├── type_converter.py
│   │   └── parallelize.py
│   ├── log_system/        # Unified logging system
│   │   ├── correlation.py     # Correlation ID tracking
│   │   ├── unified_logger.py  # Main logging interface
│   │   └── destinations/      # Log destinations (SQLite, etc.)
│   ├── ui/                # Streamlit management UI
│   │   ├── app.py
│   │   ├── lib/          # UI components and utilities
│   │   └── pages/        # UI pages (Home, Config, Logs, Docs)
│   ├── config.py          # Server configuration
│   └── logging_config.py  # Logging setup
├── tests/                 # Test suite
│   ├── unit/             # Unit tests
│   └── integration/      # Integration tests
├── pyproject.toml         # Project configuration and dependencies
├── README.md             # Project documentation template
├── DEVELOPMENT.md        # Development guide
├── DEVELOPER_GUIDE.md    # Developer reference
└── SETUP_PROMPT.md       # AI-assisted setup guide

Next Steps

Once your project is generated:

1. Review Documentation Templates
- Customize README.md for your project
- Review DEVELOPMENT.md for development workflow
- Check DEVELOPER_GUIDE.md for architectural details
- Use SETUP_PROMPT.md for AI-assisted setup

2. Set Up Development Environment
- Install dependencies: uv pip install -e .
- Run tests: pytest
- Start the server: python -m your_project_name --transport stdio

3. Explore Transports
- STDIO: python -m your_project_name --transport stdio
- Streamable HTTP: python -m your_project_name --transport streamable-http --port 3001

4. Test with MCP Inspector
- Install: npm install -g @modelcontextprotocol/inspector
- Run: mcp dev your_project_name/server/app.py

5. Access Management UI
- Start UI: streamlit run your_project_name/ui/app.py
- View logs, configure server, browse documentation

6. Add Your Own Tools
- Add functions to tools/example_tools.py
- Decorators are applied automatically
- Register in example_tools or parallel_example_tools lists

7. Use DevFlow Workflow (Optional)
- Connect to JIRA
- Use /devflow:plan-work ISSUE-KEY to plan
- Use /devflow:implement ISSUE-KEY to implement
- Use /devflow:security-review ISSUE-KEY to scan
- Use /devflow:complete ISSUE-KEY to create PR

License

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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.