Skip to main content

Harvest MCP Server for managing Harvest via the Model Context Protocol

Project description

Harvest MCP Server

A Model Context Protocol (MCP) server for interacting with Harvest time tracking and project management APIs.

The PyPI package and the command you run are the same name: harvest-mcp.

Install

pip install harvest-mcp

Run (PyPI — no --from)

uvx harvest-mcp --help

uvx harvest-mcp \
  --account-id "<harvest_account_id>" \
  --api-key "<harvest_api_key>" \
  --read-only "false"

uvx downloads the package if needed, installs it in an isolated environment, and runs the harvest-mcp CLI.

Run (editable / local checkout)

pip install -e .
harvest-mcp --help

Run with python -m (package already in that interpreter)

python -m harvest_mcp_server \
  --account-id "<harvest_account_id>" \
  --api-key "<harvest_api_key>" \
  --read-only "false"

The import path uses underscores (harvest_mcp_server); the user-facing CLI is harvest-mcp.

Required arguments

  • --account-id: Harvest account ID
  • --api-key: Harvest API key

Optional arguments

  • --read-only: Enable read-only mode (true/false), default false

Features

  • Users (list, detail)
  • Time entries (list, create, start/stop timers, details, unsubmitted)
  • Projects, clients, and tasks lookup
  • Estimates lifecycle (list/detail/lookup/create/update/state-change/send/delete)
  • Optional read-only mode for safe operation

MCP configuration (recommended)

Use uvx and a single tool name — no --from** when pulling from PyPI:

{
  "mcpServers": {
    "harvest-mcp": {
      "command": "uvx",
      "args": [
        "harvest-mcp",
        "--account-id",
        "YOUR_HARVEST_ACCOUNT_ID",
        "--api-key",
        "YOUR_HARVEST_API_KEY",
        "--read-only",
        "true"
      ]
    }
  }
}

If uvx is not on PATH, set "command" to the full path of the uvx binary (for example ~/.local/bin/uvx on Linux).

Local wheel (offline / pre-release)

Only when you are not using PyPI, point uvx at a wheel file. The tool name at the end must still be harvest-mcp (the console script):

"args": [
  "--from",
  "/absolute/path/to/harvest_mcp-0.1.1-py3-none-any.whl",
  "harvest-mcp",
  "--account-id",
  "YOUR_HARVEST_ACCOUNT_ID",
  "--api-key",
  "YOUR_HARVEST_API_KEY"
]

python -m (package installed in the same environment as the MCP host)

{
  "mcpServers": {
    "harvest-mcp": {
      "command": "python",
      "args": [
        "-m",
        "harvest_mcp_server",
        "--account-id",
        "YOUR_HARVEST_ACCOUNT_ID",
        "--api-key",
        "YOUR_HARVEST_API_KEY",
        "--read-only",
        "true"
      ]
    }
  }
}

Development

From the harvest-mcp-server directory:

pip install -e .
harvest-mcp --help

Build a wheel:

python -m build

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

harvest_mcp-0.1.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

harvest_mcp-0.1.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file harvest_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: harvest_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for harvest_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7197183d61c8d03935f53a373522e1337f4e757a98c84fc032a97141add53a0a
MD5 9b3efec530957f4c11f892cc2cc5cc4e
BLAKE2b-256 a786e8093c1f8a97259ab647f8db0911eb3d7301be2a61340e682762d8950569

See more details on using hashes here.

File details

Details for the file harvest_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: harvest_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for harvest_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c02bc28e08ed108e8fd3410c6044e466c41b72bda15f9ca4183f415ba8af51f9
MD5 8a097720c15e761fb3af840430839d50
BLAKE2b-256 af5876542c65f694220441d5e9f235868a243ce578359e36714cd2433f495a77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page