harvest-mcp-server
Integração de rastreamento de tempo do Harvest com mais de 40 ferramentas para gerenciar entradas de tempo, projetos, clientes, tarefas e gerar relatórios de tempo via API v2 do Harvest
Documentação
🌾 Harvest MCP Server
Não oficial Servidor Model Context Protocol (MCP) para integração perfeita com a API de controle de tempo Harvest
⚠️ Aviso: Esta é uma integração não oficial, de terceiros, com a API Harvest. Este projeto não é afiliado, endossado ou patrocinado pela Harvest ou Forecast (a empresa por trás da Harvest).
✨ Recursos
- 🔗 Cobertura Completa da Harvest API v2 - Mais de 40 ferramentas cobrindo todos os endpoints principais
- 🛡️ Type-Safe - Suporte completo a TypeScript com validação Zod
- ⚡ Alto Desempenho - Construído com async/await e limitação de taxa adequada
- 🧪 Totalmente Testado - Testes abrangentes de unidade, integração e contrato
- 📊 Logging Rico - Logging estruturado para depuração e monitoramento
- 🔄 Repetição Automática - Lógica de repetição inteligente com backoff exponencial
- 📖 Compatível com MCP - Funciona com Claude Desktop e outros clientes MCP
🚀 Início Rápido
Pré-requisitos
- Node.js 18+
- Conta Harvest com acesso à API
- Cliente compatível com MCP (como Claude Desktop)
Instalação
# Install globally
npm install -g @ianaleck/harvest-mcp-server
# Or install locally
npm install @ianaleck/harvest-mcp-server
Configuração
-
Obtenha suas credenciais da API Harvest:
- Vá para Harvest → Configurações → Desenvolvedores → Tokens de Acesso Pessoal
- Crie um novo token
- Anote seu ID de Conta (visível na URL ou nas configurações)
-
Configure seu cliente MCP (ex.: Claude Desktop):
{
"mcpServers": {
"harvest": {
"command": "npx",
"args": ["-y", "@ianaleck/harvest-mcp-server"],
"env": {
"HARVEST_ACCESS_TOKEN": "your_harvest_personal_access_token",
"HARVEST_ACCOUNT_ID": "your_harvest_account_id"
}
}
}
}
- Comece a usar com o Claude!
🎯 O Que Você Pode Fazer
Uma vez conectado, você pode pedir ao Claude para ajudar com:
⏱️ Controle de Tempo
- "Mostre-me todos os meus registros de tempo desta semana"
- "Inicie um cronômetro para a tarefa 'Desenvolvimento' no 'Projeto Website'"
- "Quantas horas trabalhei no Projeto X no mês passado?"
📋 Gerenciamento de Projetos
- "Liste todos os projetos ativos para o cliente Acme Corp"
- "Crie um novo projeto chamado 'Aplicativo Mobile' para o cliente TechStart"
- "Mostre-me o orçamento do projeto versus o tempo real gasto"
👥 Gerenciamento de Equipe
- "Quem são todos os usuários na nossa conta Harvest?"
- "Mostre-me os registros de tempo do João da semana passada"
💰 Acompanhamento Financeiro
- "Gere um relatório de despesas para o Q4"
- "Mostre-me todas as faturas não pagas"
- "Qual é o total de horas faturáveis deste mês?"
🛠️ Ferramentas Disponíveis
📊 Empresa & Conta (1 ferramenta)
get_company- Obter informações e configurações da empresa
⏰ Registros de Tempo (8 ferramentas)
list_time_entries- Listar registros de tempo com filtrosget_time_entry- Obter detalhes de um registro de tempo específicocreate_time_entry- Criar novo registro de tempoupdate_time_entry- Atualizar registro de tempo existentedelete_time_entry- Excluir registro de tempostart_timer- Iniciar um cronômetro para uma tarefastop_timer- Parar cronômetro em execuçãorestart_timer- Reiniciar um registro de tempo anterior
🏗️ Projetos (7 ferramentas)
list_projects- Listar todos os projetos com filtrosget_project- Obter detalhes de um projeto específicocreate_project- Criar novo projetoupdate_project- Atualizar detalhes do projetodelete_project- Excluir projetolist_project_task_assignments- Listar atribuições de tarefas para o projetocreate_project_task_assignment- Atribuir tarefa ao projetoupdate_project_task_assignment- Atualizar atribuição de tarefadelete_project_task_assignment- Remover atribuição de tarefa
📝 Tarefas (5 ferramentas)
list_tasks- Listar todas as tarefasget_task- Obter detalhes de uma tarefa específicacreate_task- Criar nova tarefaupdate_task- Atualizar detalhes da tarefadelete_task- Excluir tarefa
🏢 Clientes (5 ferramentas)
list_clients- Listar todos os clientesget_client- Obter detalhes de um cliente específicocreate_client- Criar novo clienteupdate_client- Atualizar detalhes do clientedelete_client- Excluir cliente
👤 Usuários (6 ferramentas)
list_users- Listar todos os usuários na contaget_user- Obter detalhes de um usuário específicoget_current_user- Obter usuário autenticado atualcreate_user- Criar novo usuárioupdate_user- Atualizar detalhes do usuáriodelete_user- Excluir usuário
💸 Despesas (6 ferramentas)
list_expenses- Listar despesas com filtrosget_expense- Obter detalhes de uma despesa específicacreate_expense- Criar nova despesaupdate_expense- Atualizar detalhes da despesadelete_expense- Excluir despesalist_expense_categories- Listar todas as categorias de despesas
🧾 Faturas (5 ferramentas)
list_invoices- Listar faturas com filtrosget_invoice- Obter detalhes de uma fatura específicacreate_invoice- Criar nova faturaupdate_invoice- Atualizar detalhes da faturadelete_invoice- Excluir fatura
📋 Orçamentos (5 ferramentas)
list_estimates- Listar orçamentos com filtrosget_estimate- Obter detalhes de um orçamento específicocreate_estimate- Criar novo orçamentoupdate_estimate- Atualizar detalhes do orçamentodelete_estimate- Excluir orçamento
📈 Relatórios (4 ferramentas)
get_time_report- Gerar relatórios de tempo com filtrosget_expense_report- Gerar relatórios de despesasget_project_budget_report- Obter análise de orçamento do projetoget_uninvoiced_report- Obter tempo e despesas não faturados
🧪 Desenvolvimento
Configuração
git clone https://github.com/ianaleck/harvest-mcp-server.git
cd harvest-mcp-server
npm install
Configuração de Ambiente
cp .env.example .env
# Edit .env with your Harvest API credentials
Testes
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run specific test suites
npm run test:unit
npm run test:integration
npm run test:contract
Build
# Build for production
npm run build
# Start development server
npm run dev
📋 Requisitos da API
Este servidor requer uma conta Harvest com acesso à API. Os usuários devem cumprir:
- Termos de Serviço da API Harvest
- Limites de Taxa da API Harvest (100 solicitações por 15 segundos)
🤝 Contribuindo
Aceitamos contribuições! Consulte nossas Diretrizes de Contribuição para detalhes.
- Faça um fork do repositório
- Crie um branch de funcionalidade (
git checkout -b feature/amazing-feature) - Faça suas alterações com testes
- Garanta que todos os testes passem (
npm test) - Faça commit das suas alterações (
git commit -m 'Add amazing feature') - Envie para o branch (
git push origin feature/amazing-feature) - Abra um Pull Request
📄 Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- Harvest por fornecer uma excelente API de controle de tempo
- Equipe do Model Context Protocol pela especificação MCP
- Anthropic pelo Claude e o SDK MCP
📞 Suporte
- 🐛 Relatórios de Bugs: GitHub Issues
- 💡 Solicitações de Recursos: GitHub Discussions
- 📖 Documentação: Documentação MCP
Feito com ❤️ para a comunidade MCP
⭐ Marque este projeto com estrela se você o achar útil!