使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它将 Harvest API 包装成 MCP 格式,使得支持 MCP 协议的 LLM 客户端能够方便地与 Harvest 进行交互。通过此服务器,LLM 可以安全、可扩展地访问 Harvest 的时间跟踪、客户管理、项目管理和报告功能。

主要功能点

  • 时间条目管理: 支持列出、获取、创建、更新、删除、重启和停止时间条目。
  • 客户管理: 支持列出、获取、创建、更新和删除客户信息。
  • 项目管理: 支持列出、获取、创建、更新和删除项目信息。
  • 报告生成: 支持获取客户、项目、任务和团队的时间报告。
  • 标准化接口: 所有功能均通过 MCP 协议以标准化的方式提供给 LLM 客户端。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/CodifyAG/mcp-servers.git
    cd mcp-servers/mcp-server-harvest-time-tracking
  2. 配置环境变量: 创建 '.env' 文件或在您的环境中设置以下环境变量,替换为您的 Harvest 账户 ID 和访问令牌。

    HARVEST_ACCOUNT_ID=<your-harvest-account-id>
    HARVEST_ACCESS_TOKEN=<your-harvest-access-token>

    您需要从您的 Harvest 账户设置中获取这些凭据。

  3. 设置虚拟环境并安装依赖:

    make setup

    这个命令会创建 Python 虚拟环境并安装项目所需的依赖包。

服务器配置

要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)连接,您需要在客户端的配置文件中添加服务器信息。以下是 'claude_desktop_config.json' 的配置示例,您需要根据实际情况修改路径:

{
  "mcpServers": {
    "mcp-server-harvest-time-tracking": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/mcp-server-harvest-time-tracking"
      // 请将 "/path/to/mcp-server-harvest-time-tracking" 替换为克隆仓库的实际本地路径
    }
  }
}

配置参数说明:

  • '"mcp-server-harvest-time-tracking"': 服务器名称,客户端用此名称来标识和调用该服务器。
  • '"command": "python"': 启动服务器的命令,这里使用 Python 解释器。
  • '"args": ["-m", "src.server"]': 传递给 'python' 命令的参数,'-m src.server' 表示运行 'src/server.py' 文件作为模块。
  • '"cwd": "/path/to/mcp-server-harvest-time-tracking"': 服务器的工作目录,应设置为您克隆的仓库根目录的绝对路径。

注意: 此配置假设您的 Harvest 账户 ID 和访问令牌已通过环境变量 'HARVEST_ACCOUNT_ID' 和 'HARVEST_ACCESS_TOKEN' 配置。Claude Desktop 等 MCP 客户端通常会继承系统环境变量。您也可以在 '"env"' 字段中直接配置环境变量,如果需要的话。

基本使用方法

  1. 启动服务器: 在仓库根目录下运行以下命令启动 MCP 服务器:

    make run

    服务器将在 stdio 模式下运行,等待 MCP 客户端的请求。

  2. 在 MCP 客户端中使用: 配置好客户端后,您可以使用自然语言指令或客户端提供的界面,通过 MCP 协议调用服务器提供的工具,例如:

    • "列出我今天的时间记录" (客户端将调用 'list_time_entries' 工具,并根据上下文设置 'from_date' 和 'to_date' 参数)
    • "为项目 '新网站开发' 创建一个时间记录,时长 2 小时,备注 '编写文档'" (客户端将调用 'create_time_entry_duration' 工具,并传递项目 ID、任务 ID、日期、时长和备注等参数)
    • "获取客户 'ABC 公司' 的信息" (客户端将调用 'get_client' 工具,并传递客户 ID 或名称等信息)

    具体的调用方式取决于您使用的 MCP 客户端的功能和界面。请参考您使用的 MCP 客户端的文档来了解如何与 MCP 服务器进行交互。

信息

分类

商业系统