Back to MCP directory
publicPublicdnsLocal runtime

mcp-server-harvest

一个基于TypeScript的Harvest时间追踪MCP服务器,允许LLM客户端与Harvest账户交互。

article

README

🚀 丰收时间追踪 MCP 服务器

这是一个基于 TypeScript 的 MCP(模型上下文协议)服务器,专为丰收时间追踪应用程序打造,可让 LLM 客户端与丰收账户进行交互。

🚀 快速开始

先决条件

  • Bun 运行时
  • 带有 API 访问权限的丰收账户
  • 从丰收获取的个人访问令牌
  • 账户 ID(来自丰收)

更多细节请参考丰收 API 文档中的个人访问令牌创建说明

✨ 主要特性

此服务器提供了一系列工具,可用于获取公司、客户、项目、用户等信息,还能进行时间记录的搜索、创建等操作。

📦 安装指南

在 Claude Desktop 中配置

settings.json 文件中添加以下内容:

{
  "mcpServers": {
    "Harvest": {
      "command": "npx",
      "args": [
        "@harvesttime/tracing-mcp-server",
        "--accountId",
        "<丰收账户 ID>",
        "--token",
        "<丰收个人访问令牌>"
      ],
      "env": {}
    }
  }
}

在 Visual Studio Code 中配置

launch.json 文件中添加以下内容:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "启动丰收时间追踪 MCP 服务器",
      "type": "node",
      "request": "launch",
      "program": "$npmBin/file:@harvesttime/tracing-mcp-server",
      "args": [
        "--accountId",
        "<丰收账户 ID>",
        "--token",
        "<丰收个人访问令牌>"
      ]
    }
  ]
}

在 VS Code 中启动

  1. 打开终端。
  2. 运行以下命令:
    npm install --global @harvesttime/tracing-mcp-server
    
  3. 启动配置文件中的 "启动丰收时间追踪 MCP 服务器" 配置。

在命令行中使用

直接运行以下命令:

@harvesttime/tracing-mcp-server --accountId <丰收账户 ID> --token <丰收个人访问令牌>

💻 使用示例

可用工具

| 工具 | 描述 | 输入 | 输出 | |--------------|------|--------------------------|------------------------------| | get-company | 获取公司信息 | 无 | 公司信息(名称、URL、ID 和货币) | | search-clients | 搜索客户 | • name: string (可选) - 客户名称
• isActive: boolean (可选) - 激活状态 | 客户列表,包括 ID 和详细信息 | | get-client | 获取客户信息 | • clientId: string - 客户 ID | 详细的客户信息 | | search-projects | 搜索项目 | • name: string (可选) - 项目名称
• clientId: string (可选) - 客户 ID
• isActive: boolean (可选) - 激活状态 | 项目列表,包括 ID 和详细信息 | | get-project | 获取项目信息 | • projectId: string - 项目 ID | 详细的项目信息 | | list-users | 列出所有用户 | 无 | 用户列表,包括 ID 和详细信息 | | get-user | 获取用户信息 | • userId: string - 用户 ID | 详细的用户信息 | | list-project-users | 列出项目用户分配 | • projectId: string - 项目 ID | 分配给项目的用户列表 | | list-project-tasks | 列出项目任务分配 | • projectId: string - 项目 ID | 分配给项目的任务列表 | | search-time-entries | 搜索时间记录 | • from: string (可选) - 起始日期(YYYY-MM-DD)
• to: string (可选) - 结束日期
• userId: string (可选) - 用户 ID | 时间记录列表,包括 ID 和详细信息 | | get-time-entry | 获取单个时间记录 | • timeEntryId: string - 时间记录 ID | 详细的单个时间记录 | | create-time-entry | 创建时间记录 | • projectId: string 必须
• userId: string 必须
• hours: number 必须
• notes: string 可选 | 新的时间记录 |

📚 详细文档

开发

  1. 克隆仓库。
  2. 安装依赖:
    npm install
    
  3. 启动开发服务器:
    npm run dev
    
  4. 测试:
    npm test
    

提交代码

  1. 创建功能分支:
    git checkout -b feature/<功能名称>
    
  2. 提交更改:
    git add .
    git commit -m "提交信息"
    
  3. 推送到远程仓库并创建拉取请求:
    git push origin feature/<功能名称>
    

维护

更新依赖

  1. 更新 package.json 中的依赖版本。
  2. 保存更改。
  3. 安装更新的依赖:
    npm install
    

打包

  1. 运行打包命令:
    npm run build
    

贡献指南

欢迎贡献!请遵循以下步骤:

  1. 分叉仓库。
  2. 提交您的更改。
  3. 创建拉取请求。

确保代码符合 代码规范 并通过所有测试。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client