Harvest MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Harvest MCP ServerWhat did I work on today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Harvest MCP Server
Connect your AI assistant to Harvest time tracking. Query time entries, analyze profitability, track utilization, and manage your Harvest data through natural language.
Live Server: https://harvest-mcp.southleft.com
Quick Start
Claude Desktop (Recommended)
Open Claude Desktop → Settings → Connectors
Click Add Connector
Enter:
https://harvest-mcp.southleft.com/mcpClick Connect
On first use, you'll receive an OAuth link to connect your Harvest account.
Claude Code CLI
claude mcp add --transport http harvest https://harvest-mcp.southleft.com/mcpManual Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"harvest": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://harvest-mcp.southleft.com/mcp"]
}
}
}Related MCP server: TrackingTime MCP
Example Prompts
Time Tracking
"What did I work on today?"
"Show me all my time entries from last week"
"How many hours did I log on the Acme project this month?"
"Start a timer for the Design task on Project X"
"Stop my running timer"
Team & Client Analysis
"Who on my team logged the most hours last month?"
"Show me all time entries for client Acme Corp"
"Get the contact information for everyone at Initech"
"What projects is Sarah working on?"
"List all active clients"
Profitability & Utilization
"What's our profitability on the Acme project this quarter?"
"Compare profitability across all clients for 2024"
"What's our team utilization rate this month?"
"Show me billable vs non-billable breakdown by team member"
"Which projects are most profitable?"
Budget Performance
"Which employees went over their project budgets this quarter?"
"Show me top performers who came in under budget"
"Who are the repeat offenders going over budget on multiple projects?"
"Compare budget variance by team member for 2024"
Invoicing & Expenses
"Show me all unpaid invoices"
"What invoices are open for Acme Corp?"
"List all expenses for the Johnson project"
"What's been billed vs unbilled this quarter?"
Aggregation & Reporting
"Sum up hours by project for November"
"Break down time by client and user for Q4"
"Weekly hours summary for December"
"Show me time trends by month for 2024"
Available Tools (21)
Time Tracking
Tool | Description |
| List and filter time entries by user, client, project, date range |
| Get a specific time entry by ID |
| Create new time entries with optional timer |
| Stop a running timer |
| Delete a time entry |
Company & Team
Tool | Description |
| Get company/account information |
| Get current user info |
| List all users with filters |
Clients & Contacts
Tool | Description |
| List all clients |
| List client contacts (people associated with clients) |
Projects & Tasks
Tool | Description |
| List all projects with filters |
| List all tasks |
Invoicing & Expenses
Tool | Description |
| List invoices with state/date filters |
| List expenses with filters |
Analytics & Compute
Tool | Description |
| Calculate profitability (time-based, invoice-based, or hybrid) |
| Calculate utilization with capacity tracking |
| Aggregate time by client, project, user, date, week, or month |
| Analyze employee performance based on budget adherence per project |
Utilities
Tool | Description |
| Get cost and billable rates with fallback support |
| Fuzzy search for entities by name |
| Get schema definitions and enum values (no auth required) |
Self-Hosting
Cloudflare Workers (Recommended)
Clone and install
git clone https://github.com/southleft/harvest-mcp.git cd harvest-mcp npm installCreate Harvest OAuth App
Go to Harvest Developers
Create a new OAuth2 application
Set redirect URI to
https://your-worker.workers.dev/callbackNote your Client ID and Client Secret
Configure Cloudflare
# Update wrangler.toml with your account_id # Create KV namespaces npx wrangler kv:namespace create SESSIONS npx wrangler kv:namespace create RATES_CONFIG # Update wrangler.toml with the namespace IDs # Set secrets echo "YOUR_CLIENT_ID" | npx wrangler secret put HARVEST_CLIENT_ID echo "YOUR_CLIENT_SECRET" | npx wrangler secret put HARVEST_CLIENT_SECRET echo "YOUR_SESSION_SECRET" | npx wrangler secret put SESSION_SECRETDeploy
npm run deploy
Node.js Server
cp .env.example .env
# Edit .env with your Harvest credentials
npm run dev # Development
npm run build && npm start # ProductionEnvironment Variables
Variable | Description | Required |
| Harvest OAuth Client ID | Yes |
| Harvest OAuth Client Secret | Yes |
| Secret for session encryption | Yes |
| Session lifetime (default: 24) | No |
| CORS allowed origins | No |
| Fallback cost rate | No |
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude/MCP │────▶│ Cloudflare │────▶│ Harvest │
│ Client │◀────│ Workers │◀────│ API │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Cloudflare KV │
│ (Sessions) │
└──────────────────┘Stack:
Hono - Web framework
MCP SDK - Model Context Protocol
Cloudflare KV - Session storage
Harvest API v2 - Time tracking API
API Endpoints
Endpoint | Method | Description |
| GET | Landing page |
| GET | Health check |
| POST | MCP protocol endpoint |
| GET | OAuth callback |
Development
npm install # Install dependencies
npm run dev:workers # Run locally with wrangler
npm test # Run tests
npm run lint # Lint code
npm run format # Format codeProject Structure
src/
├── workers/ # Cloudflare Workers entry point
│ ├── index.ts # Hono app with MCP endpoint
│ ├── config.ts # Workers config loader
│ └── kv-session-store.ts
├── tools/ # MCP tool implementations
│ └── index.ts # All tool registrations
├── harvest/ # Harvest API client
│ ├── client.ts # API client with caching
│ ├── types.ts # TypeScript types
│ ├── cache.ts # LRU cache
│ └── rate-limiter.ts
├── compute/ # Analytics engines
│ ├── profitability.ts
│ ├── utilization.ts
│ └── aggregation.ts
├── auth/ # OAuth implementation
├── session/ # Session management
├── rates/ # Rate resolution service
├── entities/ # Entity resolution (fuzzy search)
└── schema/ # Schema documentationContributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE for details.
Built by Southleft
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/southleft/harvest-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server