MCP Server Cookie Cutter Template

by codingthefuturewithai

22 stars
220 downloads
Not rated
GitHub

About

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

Details

Author
codingthefuturewithai
GitHub stars
22
Downloads
220
Categories
Developer Tools

- Multi-transport support (stdio and streamable HTTP)
- Automatic decorators for exception handling, logging, type conversion, and parallelization
- SQLite-based unified logging system with correlation IDs
- Streamlit-based web management UI for configuration, logs, and documentation
- Ready-to-use example tools and full MCP Inspector compatibility
- Built-in DevFlow JIRA workflow commands (plan, implement, security review, complete)

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

You use the template by running cookiecutter gh:codingthefuturewithai/mcp-cookie-cutter (or from a local clone) and answering prompts for project name, description, author details, and server port. After generation, you install dependencies with uv pip install -e ., run tests with pytest, and start the server with python -m your_project_name --transport stdio or --transport streamable-http. A Streamlit management UI is launched via streamlit run your_project_name/ui/app.py.

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"
        ]
    }
}

MCP Server Cookie Cutter Template

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.