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.