How to integrate Harvest MCP with Hermes

Harvest logo
Hermes logo
divider

Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.

This guide explains the easiest and most robust way to connect your Harvest account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

Also integrate Harvest with

What is Composio Connect?

Composio Connect is a consumer offering that lets anyone plug 1,000+ applications directly into their agent harness — including Hermes. It can:

  • Search and load tools from relevant toolkits on-demand, reducing context usage.
  • Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
  • Manage app authentication end-to-end with zero manual overhead.

Integrating Harvest with Hermes

Using Composio Connect CLI

1. Install the Composio CLI

Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

bash
curl -fsSL https://composio.dev/install | bash
Hermes authenticating with Composio

2. Authenticate

Once the CLI is installed, ask Hermes to authenticate with Composio.

3. Connect to Harvest

Ask your agent to connect to Harvest, or simply request any Harvest-related task. Hermes will prompt you to authenticate and authorize access.

4. Done. You're all set with a new Harvest connection.


Using Composio Connect MCP

1. Get your MCP URL and API Key

Go to dashboard.composio.dev and copy your Connect MCP URL and API key.

Copy MCP URL and API key from Composio dashboard

2. Open the Hermes config file

bash
nano ~/.hermes/config.yaml

3. Add the Composio Connect MCP server

bash
mcp_servers:
  composio:
    url: "https://connect.composio.dev/mcp"
    headers:
      x-consumer-api-key: "YOUR_COMPOSIO_API_KEY"
    connect_timeout: 60
    timeout: 180

Save with Ctrl + O, Enter, then exit with Ctrl + X.

4. Restart your Hermes agent

Once restarted, ask your agent to connect to Harvest or request any Harvest-related task. It will prompt you to authenticate and authorize access.

5. Done!

What is the Harvest MCP server, and what's possible with it?

The Harvest MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Harvest account. It provides structured and secure access to your time-tracking, invoicing, and project management data, so your agent can create clients, log expenses, send invoices, record payments, and manage estimates automatically on your behalf.

  • Client and contact management: Seamlessly create new clients and add contacts to keep your client list up to date without manual entry.
  • Estimate creation and communication: Automatically generate new estimates, categorize line items, and send estimate messages or updates to clients.
  • Expense tracking automation: Log new expense entries against projects, ensuring accurate financial records and effortless cost tracking.
  • Streamlined invoicing and payments: Create professional invoices, categorize invoice items, send invoice notifications, and record payments as soon as they happen.
  • Project financial workflow optimization: Let your agent handle the full cycle—from creating clients to sending invoices and tracking payments—saving your team valuable time and reducing errors.

Supported Tools & Triggers

Tools
Create ClientTool to create a new client.
Create Client ContactTool to create a new client contact.
Create EstimateTool to create a new estimate.
Create Estimate Item CategoryTool to create a new estimate item category in harvest.
Create Estimate MessageTool to create a new message for an estimate.
Create ExpenseTool to create a new expense entry.
Create InvoiceTool to create a new invoice.
Create Invoice Item CategoryTool to create a new invoice item category.
Create Invoice MessageTool to create a new message for an invoice.
Create Invoice PaymentTool to create a new payment on an invoice.
Create ProjectTool to create a new project.
Create TaskTool to create a new task.
Create Time EntryTool to create a new time entry.
Create UserTool to create a new user.
Delete ClientTool to delete a client.
Delete Client ContactTool to delete a client contact.
Delete EstimateTool to delete an estimate.
Delete Estimate MessageTool to delete an estimate message.
Delete InvoiceTool to delete an invoice.
Delete Invoice Item CategoryTool to delete an invoice item category.
Delete Invoice MessageTool to delete a message from an invoice.
Delete Invoice PaymentTool to delete an invoice payment.
Delete ProjectTool to delete a project.
Delete TaskTool to delete a task.
Delete Time EntryTool to delete a time entry.
Delete UserTool to delete a user.
Get ClientTool to retrieve a specific client by id.
Get Client ContactTool to retrieve a specific client contact.
Get Company InfoTool to retrieve information about the authenticated user's company.
Get EstimateTool to retrieve a specific estimate by id.
Get InvoiceTool to retrieve a specific invoice by id.
Get ProjectTool to retrieve a specific harvest project by id.
Get TaskTool to retrieve a specific task by id.
Get Time EntryTool to retrieve a single time entry by id.
Get UserTool to retrieve a specific user by id.
List Client ContactsTool to list client contacts.
List ClientsTool to list clients.
List Estimate MessagesTool to list messages for an estimate.
List Expense CategoriesTool to list expense categories.
List Invoice Item CategoriesTool to retrieve invoice item categories.
List Invoice MessagesTool to list messages associated with a given invoice.
List Invoice PaymentsTool to retrieve payments for a specific invoice.
List InvoicesTool to list invoices.
List projectsTool to list projects.
List TasksTool to list tasks.
List Time EntriesTool to retrieve a list of time entries.
List UsersTool to list users.
Update ClientTool to update an existing client.
Update Client ContactTool to update a client contact.
Update Company InfoTool to update information about the company.
Update EstimateTool to update an existing estimate.
Update Estimate Item CategoryTool to update an estimate item category.
Update ExpenseTool to update an existing expense.
Update InvoiceTool to update an existing invoice.
Update ProjectTool to update an existing project.
Update TaskTool to update an existing task.
Update Time EntryTool to update an existing time entry.
Update UserTool to update an existing user.

Way Forward

With Harvest connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.

From here, you can extend Hermes further:

  • Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
  • Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
  • Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.

If you run into trouble or want to share what you've built, join the community or check out the Docs for deeper configuration options.

How to build Harvest MCP Agent with another framework

FAQ

What are the differences in Tool Router MCP and Harvest MCP?

With a standalone Harvest MCP server, the agents and LLMs can only access a fixed set of Harvest tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Harvest and many other apps based on the task at hand, all through a single MCP endpoint.

Can I use Tool Router MCP with Hermes?

Yes, you can. Hermes fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Harvest tools.

Can I manage the permissions and scopes for Harvest while using Tool Router?

Yes, absolutely. You can configure which Harvest scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Harvest data and credentials are handled as safely as possible.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.