Goodday
Um servidor somente leitura para a plataforma de gerenciamento de projetos Goodday.
Documentação
Servidor MCP Somente Leitura Goodday
Um servidor de Model Context Protocol (MCP) somente leitura para integração com a plataforma de gerenciamento de projetos Goodday. Este servidor fornece ferramentas somente leitura para consultar projetos, tarefas e usuários por meio da API v2 do Goodday, garantindo que nenhum dado possa ser modificado.
Recursos
Gerenciamento de Projetos (Somente Leitura)
- get_projects: Recupera lista de projetos (com opções para filtragem por arquivados e somente raiz)
- get_project: Obtém informações detalhadas sobre um projeto específico
- get_project_users: Obtém usuários associados a um projeto específico
Gerenciamento de Tarefas (Somente Leitura)
- get_project_tasks: Recupera tarefas de projetos específicos (com opções para tarefas fechadas e subpastas)
- get_user_assigned_tasks: Obtém tarefas atribuídas a um usuário específico
- get_user_action_required_tasks: Obtém tarefas que exigem ação de um usuário
- get_task: Obtém informações detalhadas sobre uma tarefa específica
Gerenciamento de Usuários (Somente Leitura)
- get_users: Recupera lista de usuários da organização
- get_user: Obtém informações detalhadas sobre um usuário específico
Instalação
Via PyPI (Recomendado)
pip install goodday-ro-mcp
Via Código-Fonte
Pré-requisitos
- Python 3.10 ou superior
- Gerenciador de pacotes UV (recomendado) ou pip
- Token da API Goodday
Configuração com UV
-
Instale o UV (se ainda não estiver instalado):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Clone e configure o projeto:
git clone https://github.com/your-username/goodday-ro-mcp.git cd goodday-ro-mcp uv sync
Configuração com pip
git clone https://github.com/your-username/goodday-ro-mcp.git
cd goodday-ro-mcp
pip install -e .
Configuração
Variáveis de Ambiente
Defina seu token da API Goodday como uma variável de ambiente:
export GOODDAY_API_TOKEN="your_goodday_api_token_here"
Encontrando seu token da API:
- Faça login na sua conta Goodday
- Vá para Configurações → API e Integrações
- Gere ou copie seu token da API
Uso
Como Servidor MCP (Claude Desktop)
Adicione ao arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"goodday-ro": {
"command": "goodday-ro-mcp",
"env": {
"GOODDAY_API_TOKEN": "your_goodday_api_token_here"
}
}
}
}
Como Servidor HTTP (Docker)
Você também pode executar isso como um servidor HTTP autônomo com documentação OpenAPI e suporte a Server-Sent Events:
# Run directly
goodday-ro-mcp-server
# Or with Docker (see Docker section below)
docker run -e GOODDAY_API_TOKEN=your_token -p 8000:8000 goodday-ro-mcp:latest
O servidor estará disponível em:
- API principal: http://localhost:8000
- Documentação OpenAPI: http://localhost:8000/docs
- Verificação de saúde: http://localhost:8000/health
- Endpoint SSE: http://localhost:8000/sse
- Ferramentas disponíveis: http://localhost:8000/tools
Implantação com Docker
Construir Imagem Docker
cd goodday-ro-mcp
docker build -t goodday-ro-mcp:latest .
Executar com Docker
docker run -d \
--name goodday-ro-mcp \
-e GOODDAY_API_TOKEN=your_goodday_api_token_here \
-p 8000:8000 \
goodday-ro-mcp:latest
Executar com Docker Compose
version: '3.8'
services:
goodday-ro-mcp:
build: .
environment:
- GOODDAY_API_TOKEN=${GOODDAY_API_TOKEN}
ports:
- "8000:8000"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
Endpoints da API
Ao executar como servidor HTTP, os seguintes endpoints estão disponíveis:
Endpoints Principais
GET /- Informações do servidor e ferramentas disponíveisGET /health- Endpoint de verificação de saúdeGET /tools- Lista de ferramentas disponíveis com descriçõesPOST /tools/call- Executa uma ferramenta com argumentosGET /sse- Server-Sent Events para atualizações em tempo realGET /docs- Documentação OpenAPI (Swagger UI)
Exemplo de Uso da API
# Get all projects
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "get_projects", "arguments": {"archived": false, "root_only": true}}'
# Get specific project
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "get_project", "arguments": {"project_id": "12345"}}'
# Get project tasks
curl -X POST http://localhost:8000/tools/call \
-H "Content-Type: application/json" \
-d '{"name": "get_project_tasks", "arguments": {"project_id": "12345", "closed": false}}'
Ferramentas Disponíveis
Todas as ferramentas são somente leitura e não modificarão nenhum dado na sua conta Goodday.
Ferramentas de Projeto
get_projects(archived=False, root_only=False)- Lista projetosget_project(project_id)- Obtém detalhes do projetoget_project_users(project_id)- Obtém membros da equipe do projeto
Ferramentas de Tarefa
get_project_tasks(project_id, closed=False, subfolders=False)- Lista tarefas do projetoget_task(task_id)- Obtém detalhes da tarefaget_user_assigned_tasks(user_id, closed=False)- Obtém tarefas atribuídas ao usuárioget_user_action_required_tasks(user_id)- Obtém tarefas que exigem ação do usuário
Ferramentas de Usuário
get_users()- Lista usuários da organizaçãoget_user(user_id)- Obtém detalhes do usuário
Tratamento de Erros
O servidor inclui tratamento abrangente de erros:
- Erros de API: Erros da API Goodday são capturados e retornados com mensagens descritivas
- Erros de Rede: Timeouts de conexão e problemas de rede são tratados com elegância
- Erros de Autenticação: Tokens de API ausentes ou inválidos são relatados claramente
- Validação de Dados: Respostas inválidas da API são tratadas com segurança
Desenvolvimento
Executando Testes
uv run pytest
Formatação de Código
uv run black goodday_ro_mcp/
uv run isort goodday_ro_mcp/
Verificação de Tipos
uv run mypy goodday_ro_mcp/
Segurança
Este é um servidor somente leitura que:
- Apenas faz requisições GET à API Goodday
- Não pode criar, atualizar ou excluir nenhum dado
- Valida todas as entradas para prevenir ataques de injeção
- Usa cabeçalhos HTTP seguros e políticas de CORS
Limitações
- Somente Leitura: Não pode criar, atualizar ou excluir projetos, tarefas ou usuários
- Limite de Taxa: Sujeito aos limites de taxa da API Goodday
- Autenticação: Requer um token válido da API Goodday
- Permissões: Limitado aos dados acessíveis pelo usuário associado ao token da API
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
Contribuição
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Adicione testes se aplicável
- Envie um pull request
Suporte
Para problemas e perguntas:
- Issues no GitHub: https://github.com/your-username/goodday-ro-mcp/issues
- Documentação da API Goodday: https://developers.goodday.work