Skip to main content
Version: Next

Development Requirements

Before you begin contributing to ClickUp MCP Server, ensure your development environment meets these requirements.

Software Prerequisites

Required Software

  • Python: Python 3.13 or higher
  • Git: Latest stable version
  • pip, poetry or uv: Latest version
  • virtualenv or pyenv: For creating isolated Python environments
  • Visual Studio Code, PyCharm, or other IDE with Python support
  • pre-commit: For running pre-commit hooks
  • Docker: For containerized testing and deployment

Python Dependencies

The project has several dependencies that will be installed automatically when you set up the development environment:

  • FastAPI: Web framework for API endpoints
  • Pydantic: Data validation and settings management
  • httpx: HTTP client for async requests
  • pytest: Testing framework
  • python-dotenv: Environment variable management
  • uvicorn: ASGI server for running the application

Development Environment Setup

  1. Clone the repository:

    git clone https://github.com/Chisanan232/clickup-mcp-server.git
    cd clickup-mcp-server
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate # On Windows: venv\Scripts\activate
  3. Install development dependencies:

    pip install -e ".[dev]"
  4. Set up pre-commit hooks:

    pre-commit install
  5. Create a .env file for local development:

    cp .env.example .env
    # Edit .env with your ClickUp API token

Environment variables for development and tests

note

The following variables are primarily intended for project maintainers and contributors. They are used in local development and automated tests and are not required for typical end-user setups.

Dev/Test-only variables

VariablePurposeExample
E2E_TEST_API_TOKENDedicated token used strictly by the E2E test suite.sk_clickup_test_xxx
CLICKUP_WEBHOOK_HANDLER_MODULESComma-separated module paths to auto-import at startup (web server and webhook consumer) for local handlers.my_app.webhooks.handlers,more.pkg.handlers
QUEUE_BACKENDMessage queue backend selection for webhook producer/consumer. Use local for development.local

Minimal dev/test .env example:

# Token for E2E tests
E2E_TEST_API_TOKEN=sk_clickup_test_XXXXXXXXXXXXXXXX

# Auto-import local webhook handlers
CLICKUP_WEBHOOK_HANDLER_MODULES=my_app.webhooks.handlers

# Use local message queue backend
QUEUE_BACKEND=local

E2E ClickUp IDs (optional)

These IDs support end-to-end tests that create/read/update resources in a real ClickUp workspace.

  • CLICKUP_TEST_TEAM_ID — Team/Workspace ID for creating resources during tests
  • CLICKUP_TEST_SPACE_ID — Space ID used by some folder/list tests
  • CLICKUP_TEST_FOLDER_ID — Folder ID when not creating dynamically
  • CLICKUP_TEST_LIST_ID — Primary list for task tests
  • CLICKUP_TEST_LIST_ID_2 — Secondary list for multi-list scenarios
  • CLICKUP_TEST_CUSTOM_FIELD_ID — Custom field ID used in custom field tests

Next Steps

Once your development environment is set up, refer to the Development Workflow documentation for the next steps.