ClickUp

Interaja com a API do ClickUp para gerenciar tarefas, listas e espaços, automatizando o planejamento de projetos e fluxos de trabalho.

Documentação

clickup-mcp-server: Um servidor MCP para ClickUp

Visão Geral

Um servidor Model Context Protocol para interação e automação com a API do ClickUp. Este servidor fornece ferramentas para que sistemas de IA leiam, criem e atualizem tarefas, listas e espaços no ClickUp.

Este servidor MCP permite que ferramentas de IA como o Claude interajam com seu espaço de trabalho no ClickUp, ajudando a automatizar o gerenciamento de tarefas, o planejamento de projetos e outros fluxos de trabalho.

Recursos

Este servidor MCP fornece integração abrangente com o ClickUp, oferecendo os seguintes recursos:

Gerenciamento de Tarefas

  • Criar, atualizar e excluir tarefas
  • Mover e duplicar tarefas entre listas e quadros
  • Definir propriedades de tarefas, incluindo datas de vencimento, prioridades e tags
  • Criar, visualizar e gerenciar subtarefas
  • Adicionar comentários e anexos às tarefas
  • Suporte para operações de tarefas individuais e em lote
  • Agrupamento e filtragem de tarefas por status

Organização do Espaço de Trabalho

  • Navegar e gerenciar espaços de trabalho, espaços, pastas e listas
  • Criar, atualizar e excluir espaços e pastas
  • Organizar listas dentro de espaços e pastas
  • Visualizar a hierarquia completa do espaço de trabalho
  • Navegar com eficiência pelo espaço de trabalho usando notação de caminho
  • Criar listas em espaços ou dentro de pastas

Formatação e Exibição

  • Suporte completo a Markdown para descrições de tarefas e comentários
  • Conversão para HTML para renderização adequada no ClickUp
  • Exibição formatada de detalhes de tarefas, listas e hierarquias
  • Exibição aprimorada de estruturas de projetos complexas

Experiência do Desenvolvedor

  • Tratamento abrangente de erros e validação
  • Respostas de API claras e consistentes
  • Documentação detalhada para todas as ferramentas
  • Integração fácil com o Claude e outros sistemas de IA

Ferramentas

O servidor fornece as seguintes ferramentas para interagir com o ClickUp:

Ferramentas de Espaço de Trabalho/Equipe

  1. get_workspaces

    • Obtém todos os espaços de trabalho/equipes
    • Entrada: Nenhuma
    • Retorna: Lista de espaços de trabalho com IDs e nomes
  2. navigate_workspace

    • Navega pela hierarquia do espaço de trabalho usando notação de caminho
    • Entrada:
      • path (string): Caminho pela hierarquia do espaço de trabalho (team_id/space_name/folder_name/list_name)
    • Retorna: Detalhes da entidade alvo e seu caminho completo

Ferramentas de Espaço

  1. get_spaces

    • Obtém todos os espaços em um espaço de trabalho
    • Entrada:
      • workspace_id (string): ID do espaço de trabalho/equipe
    • Retorna: Lista de espaços com IDs e nomes
  2. create_space

    • Cria um novo espaço em um espaço de trabalho
    • Entradas:
      • workspace_id (string): ID do espaço de trabalho/equipe
      • name (string): Nome do novo espaço
    • Retorna: Detalhes do espaço criado
  3. get_space_hierarchy

    • Obtém a hierarquia completa de um espaço, incluindo pastas e listas
    • Entrada:
      • space_id (string): ID do espaço
    • Retorna: Estrutura hierárquica completa do espaço

Ferramentas de Pasta

  1. get_folders

    • Obtém todas as pastas em um espaço
    • Entrada:
      • space_id (string): ID do espaço
    • Retorna: Lista de pastas com IDs e nomes
  2. create_folder

    • Cria uma nova pasta em um espaço
    • Entradas:
      • space_id (string): ID do espaço
      • name (string): Nome da nova pasta
    • Retorna: Detalhes da pasta criada
  3. update_folder

    • Atualiza o nome de uma pasta
    • Entradas:
      • folder_id (string): ID da pasta a ser atualizada
      • name (string): Novo nome para a pasta
    • Retorna: Detalhes da pasta atualizada
  4. delete_folder

    • Exclui uma pasta
    • Entrada:
      • folder_id (string): ID da pasta a ser excluída
    • Retorna: Confirmação da exclusão

Ferramentas de Lista/Quadro

  1. get_lists

    • Obtém todas as listas/quadros em um espaço
    • Entrada:
      • space_id (string): ID do espaço
    • Retorna: Lista de listas/quadros com IDs e nomes
  2. create_list

    • Cria uma nova lista/quadro em um espaço ou pasta
    • Entradas:
      • space_id (string): ID do espaço
      • name (string): Nome da nova lista/quadro
      • folder_id (string, opcional): ID da pasta (se a lista estiver sendo criada em uma pasta)
    • Retorna: Detalhes da lista/quadro criada
  3. organize_lists

    • Organiza listas por sua localização (no espaço ou em pastas)
    • Entradas:
      • space_id (string): ID do espaço
      • folder_id (string, opcional): ID de uma pasta específica
    • Retorna: Listas organizadas pela pasta que as contém

Ferramentas de Tarefa

  1. get_tasks
  • Obtém todas as tarefas em uma lista/quadro
  • Entrada:
    • list_id (string): ID da lista/quadro
  • Retorna: Lista de tarefas com IDs, nomes e outros detalhes
  1. get_tasks_by_status

    • Obtém tarefas com um status específico em uma lista/quadro
    • Entradas:
      • list_id (string): ID da lista/quadro
      • status (string): Status para filtrar as tarefas
    • Retorna: Lista de tarefas com o status especificado
  2. create_task

    • Cria uma nova tarefa em uma lista/quadro
    • Entradas:
      • list_id (string): ID da lista/quadro
      • name (string): Nome da tarefa
      • description (string, opcional): Descrição da tarefa
      • priority (número, opcional): Prioridade da tarefa (1-4)
      • due_date (número, opcional): Data de vencimento da tarefa em milissegundos
      • tags (string[], opcional): Lista de nomes de tags para adicionar à tarefa
    • Retorna: Detalhes da tarefa criada
  3. get_task

    • Obtém detalhes de uma tarefa específica
    • Entrada:
      • task_id (string): ID da tarefa
    • Retorna: Detalhes completos da tarefa, incluindo descrição, status, etc.
  4. update_task

    • Atualiza as propriedades de uma tarefa
    • Entradas:
      • task_id (string): ID da tarefa
      • name (string, opcional): Novo nome da tarefa
      • description (string, opcional): Nova descrição da tarefa
      • priority (número, opcional): Nova prioridade da tarefa (1-4)
      • due_date (número, opcional): Nova data de vencimento em milissegundos
      • tags (string[], opcional): Nova lista de nomes de tags
    • Retorna: Detalhes da tarefa atualizada
  5. update_task_status

    • Atualiza o status de uma tarefa
    • Entradas:
      • task_id (string): ID da tarefa
      • status (string): Novo status para a tarefa
    • Retorna: Detalhes da tarefa atualizada
  6. assign_task

    • Atribui usuários a uma tarefa
    • Entradas:
      • task_id (string): ID da tarefa
      • assignee_ids (string[]): Lista de IDs de usuários para atribuir à tarefa
    • Retorna: Confirmação da atribuição
  7. get_task_subtasks

    • Obtém subtarefas de uma tarefa
    • Entrada:
      • task_id (string): ID da tarefa
    • Retorna: Lista de subtarefas com seus detalhes
  8. delete_task

    • Exclui uma tarefa
    • Entrada:
      • task_id (string): ID da tarefa a ser excluída
    • Retorna: Confirmação da exclusão
  9. move_task

    • Move uma tarefa para uma lista/quadro diferente
    • Entradas:
      • task_id (string): ID da tarefa a ser movida
      • list_id (string): ID da lista/quadro de destino
    • Retorna: Detalhes da tarefa atualizada
  10. duplicate_task

    • Duplica uma tarefa, opcionalmente para uma lista/quadro diferente
    • Entradas:
      • task_id (string): ID da tarefa a ser duplicada
      • list_id (string, opcional): ID da lista/quadro de destino
    • Retorna: Detalhes da tarefa duplicada
  11. create_subtask

    • Cria uma subtarefa para uma tarefa pai
    • Entradas:
      • parent_task_id (string): ID da tarefa pai
      • name (string): Nome da subtarefa
      • description (string, opcional): Descrição da subtarefa
      • priority (número, opcional): Prioridade da subtarefa (1-4)
      • due_date (número, opcional): Data de vencimento da subtarefa em milissegundos
      • tags (string[], opcional): Lista de nomes de tags para a subtarefa
    • Retorna: Detalhes da subtarefa criada
  12. add_comment

    • Adiciona um comentário a uma tarefa
    • Entradas:
      • task_id (string): ID da tarefa
      • comment_text (string): Conteúdo do texto do comentário
    • Retorna: Detalhes do comentário adicionado
  13. add_attachment

    • Adiciona um anexo a uma tarefa por URL
    • Entradas:
      • task_id (string): ID da tarefa
      • attachment_url (string): URL do anexo a ser adicionado
    • Retorna: Detalhes do anexo adicionado
  14. bulk_update_tasks

    • Atualiza múltiplas tarefas em uma lista de uma só vez
    • Entradas:
      • list_id (string): ID da lista/quadro que contém as tarefas
      • task_ids (string[]): Lista de IDs de tarefas para atualizar
      • name (string, opcional): Novo nome da tarefa para todas as tarefas
      • description (string, opcional): Nova descrição da tarefa para todas as tarefas
      • status (string, opcional): Novo status para todas as tarefas
      • priority (número, opcional): Nova prioridade para todas as tarefas (1-4)
      • due_date (número, opcional): Nova data de vencimento para todas as tarefas em milissegundos
      • tags (string[], opcional): Nova lista de nomes de tags para todas as tarefas
    • Retorna: Confirmação da atualização em lote
  15. bulk_delete_tasks

    • Exclui múltiplas tarefas de uma só vez
    • Entrada:
      • task_ids (string[]): Lista de IDs de tarefas para excluir
    • Retorna: Confirmação da exclusão em lote

Ferramentas de Campo Personalizado

  1. get_custom_fields

    • Obtém todos os campos personalizados de uma lista/quadro
    • Entrada:
      • list_id (string): ID da lista/quadro
    • Retorna: Lista de campos personalizados com seus IDs, nomes, tipos e configuração
  2. set_custom_field_value

    • Define um valor de campo personalizado para uma tarefa usando o ID do campo
    • Entradas:
      • task_id (string): ID da tarefa
      • field_id (string): ID do campo personalizado
      • value (any): Valor a ser definido para o campo personalizado
    • Retorna: Confirmação da atualização do campo personalizado
  3. set_custom_field_value_by_name

    • Define um valor de campo personalizado para uma tarefa usando o nome do campo
    • Entradas:
      • task_id (string): ID da tarefa
      • list_id (string): ID da lista (necessário para encontrar o campo personalizado pelo nome)
      • field_name (string): Nome do campo personalizado
      • value (any): Valor a ser definido para o campo personalizado
    • Retorna: Confirmação da atualização do campo personalizado
  4. remove_custom_field_value

    • Remove um valor de campo personalizado de uma tarefa
    • Entradas:
      • task_id (string): ID da tarefa
      • field_id (string): ID do campo personalizado
    • Retorna: Confirmação da remoção do campo personalizado

Instalação

Pré-requisitos

  • Python 3.10 ou superior
  • Uma conta ClickUp com uma chave de API

Usando uv (recomendado)

Ao usar uv, nenhuma instalação específica é necessária. Usaremos uvx para executar diretamente o clickup-mcp-server.

uv --directory "/path/to/clickup-mcp-server" run clickup-mcp-server --api-key YOUR_API_KEY

Ou use um arquivo .env (veja a seção Configuração).

Usando PIP

Alternativamente, você pode instalar o clickup-mcp-server via pip:

pip install clickup-mcp-server

Após a instalação, você pode executá-lo como um script usando:

python -m clickup_mcp_server --api-key YOUR_API_KEY

Configuração

Chave de API

Você precisa de uma chave de API do ClickUp para usar este servidor. Você pode obter uma em Configurações da API do ClickUp.

A chave de API pode ser fornecida de duas maneiras:

  1. Argumento de linha de comando: --api-key YOUR_API_KEY
  2. Variável de ambiente em um arquivo .env:
    CLICKUP_API_KEY=your_api_key_here
    

Uso com o Claude Desktop

Adicione isto ao seu claude_desktop_config.json:

Usando uvx
"mcpServers": {
  "clickup": {
    "command": "uvx",
    "args": ["clickup-mcp-server", "--api-key", "YOUR_API_KEY"]
  }
}
Usando docker
"mcpServers": {
  "clickup": {
    "command": "docker",
    "args": ["run", "--rm", "-i", "-e", "CLICKUP_API_KEY=YOUR_API_KEY", "mcp/clickup"]
  }
}
Usando instalação via pip
"mcpServers": {
  "clickup": {
    "command": "python",
    "args": ["-m", "clickup_mcp_server", "--api-key", "YOUR_API_KEY"]
  }
}

Uso com o VS Code

Para instalação manual, adicione o seguinte bloco JSON ao seu arquivo de Configurações do Usuário (JSON) no VS Code. Você pode fazer isso pressionando Ctrl + Shift + P e digitando Preferences: Open Settings (JSON). Opcionalmente, você pode adicioná-lo a um arquivo chamado .vscode/mcp.json no seu espaço de trabalho. Isso permitirá que você compartilhe a configuração com outras pessoas.

Observe que a chave mcp não é necessária no arquivo .vscode/mcp.json.

{
  "mcp": {
    "servers": {
      "clickup": {
        "command": "uvx",
        "args": ["clickup-mcp-server"],
        "env": {
          "CLICKUP_API_KEY": "YOUR_API_KEY"
        }
      }
    }
  }
}

Para instalação via Docker:

{
  "mcp": {
    "servers": {
      "clickup": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "-e", "CLICKUP_API_KEY=YOUR_API_KEY",
          "mcp/clickup"
        ]
      }
    }
  }
}

Uso com Zed

Adicione ao seu settings.json do Zed:

Usando uvx
"context_servers": [
  "mcp-server-clickup": {
    "command": {
      "path": "uvx",
      "args": ["clickup-mcp-server"]
    },
    "env": {
      "CLICKUP_API_KEY": "YOUR_API_KEY"
    }
  }
],
Usando instalação via pip
"context_servers": {
  "mcp-server-clickup": {
    "command": {
      "path": "python",
      "args": ["-m", "clickup_mcp_server"]
    },
    "env": {
      "CLICKUP_API_KEY": "YOUR_API_KEY"
    }
  }
},

Exemplos de Cenários de Uso

Gerenciamento de Tarefas com Claude

Claude pode ajudar você a gerenciar suas tarefas do ClickUp:

  1. Criando um Plano de Tarefa: Peça ao Claude para criar um plano com base em uma tarefa específica no ClickUp. O Claude irá:

    • Encontrar a tarefa por nome ou ID
    • Analisar sua descrição e subtarefas
    • Gerar um plano estruturado para concluir a tarefa
  2. Automação de Tarefas: Para uma tarefa contendo instruções relacionadas a código, o Claude pode:

    • Obter os detalhes da tarefa do ClickUp
    • Atualizar o status da tarefa para "Em andamento"
    • Implementar o código de acordo com os requisitos da tarefa
    • Marcar as subtarefas como concluídas à medida que são finalizadas
    • Atualizar o status para "Pronto para revisão" quando terminar
  3. Relatórios de Tarefas: Peça ao Claude para gerar resumos de tarefas com status específicos:

    • Obter todas as tarefas marcadas como "Em andamento"
    • Compilar um relatório de status com estimativas de conclusão
    • Criar novas tarefas para bloqueios ou dependências
  4. Gerenciamento de Campos Personalizados: Claude pode trabalhar com campos personalizados para melhorar seu fluxo de trabalho:

    • Listar todos os campos personalizados em um projeto para ver os metadados disponíveis
    • Definir valores de campos personalizados como "GitHub Pull Request URL" ao criar PRs
    • Atualizar campos de acompanhamento do projeto como "Sprint", "Story Points" ou "Prioridade"
    • Exemplo: "Crie um PR para este branch e adicione a URL do GitHub ao campo personalizado 'GitHub Pull Request URL' na tarefa relacionada do ClickUp"

Depuração

Execute seu servidor com a flag -v ou -vv para maior verbosidade:

uvx clickup-mcp-server -vv

Você pode usar o inspetor MCP para depurar o servidor:

npx @modelcontextprotocol/inspector uvx clickup-mcp-server

Desenvolvimento

Configurando o Ambiente de Desenvolvimento

  1. Clone o repositório:

    git clone https://github.com/yourusername/clickup-mcp-server.git
    cd clickup-mcp-server
    
  2. Instale as dependências de desenvolvimento:

    uv pip install -e ".[dev]"
    
  3. Execute os testes:

    pytest
    

Build Docker

Construa a imagem Docker:

docker build -t mcp/clickup .

Status de Implementação

Este servidor MCP implementa a maioria dos recursos essenciais do ClickUp. Abaixo está um detalhamento dos recursos implementados e daqueles planejados para implementação futura.

Gerenciamento de Tarefas ✅

Todos os recursos principais de gerenciamento de tarefas foram implementados:

RecursoStatusDescrição
Criar tarefasCriar novas tarefas em qualquer lista ou quadro
Atualizar tarefasModificar propriedades da tarefa, incluindo nome, descrição e mais
Excluir tarefasRemover tarefas do ClickUp
Mover tarefasRealocar tarefas entre diferentes listas e quadros
Duplicar tarefasCriar cópias de tarefas, opcionalmente em locais diferentes
Definir datasDefinir datas de início e vencimento para tarefas
Visualizar subtarefasRecuperar subtarefas para qualquer tarefa pai
Criar subtarefasAdicionar subtarefas a tarefas existentes
Gerenciar subtarefasAtualizar e excluir subtarefas
Adicionar comentáriosAdicionar comentários a tarefas com suporte a markdown
Adicionar anexosAnexar arquivos via URL às tarefas
Operações individuaisExecutar ações em tarefas individuais
Operações em loteExecutar ações em várias tarefas simultaneamente

Organização do Espaço de Trabalho ✅

Todos os recursos de organização do espaço de trabalho foram implementados:

RecursoStatusDescrição
Navegar por espaçosNavegar e selecionar espaços nos espaços de trabalho
Navegar por pastasNavegar e selecionar pastas dentro dos espaços
Navegar por listasNavegar e selecionar listas em espaços ou pastas
Criar espaçosCriar novos espaços nos espaços de trabalho
Criar listasCriar novas listas em espaços ou pastas
Criar pastasCriar novas pastas dentro dos espaços
Organizar listasAgrupar e organizar listas por localização
Listas em pastasCriar e gerenciar listas dentro de pastas
Visualizar hierarquiaVer a estrutura completa do espaço de trabalho
Navegação por caminhoNavegar eficientemente usando notação de caminho

Recursos Diversos 🔧

Alguns recursos avançados são implementados, com outros planejados para lançamentos futuros:

RecursoStatusDescrição
Pesquisas globais🔄Encontrar itens por nome ou ID em todos os espaços de trabalho (planejado)
Insensível a maiúsculas🔄Corresponder nomes independentemente de capitalização (planejado)
Markdown básicoSuporte a markdown básico em descrições
Markdown aprimoradoMarkdown avançado com renderização adequada no ClickUp
Limitação de taxa🔄Tratamento integrado de limites de taxa da API (planejado)
Tratamento de errosDetecção e relatório abrangentes de erros
Validação de entradaValidação de todas as entradas antes do envio à API
Cobertura da API🔄Suporte a recursos adicionais da API do ClickUp (em andamento)

Legenda:

  • ✅ Implementado
  • 🔄 Planejado ou em andamento

Licença

Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.