时间追踪连接器

Harvest MCP Server 是一个将AI助手与Harvest时间追踪服务连接的工具,支持通过自然语言查询时间条目、分析盈利能力、跟踪利用率和管理Harvest数据。

  • by southleft
  • TypeScript
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 southleft/harvest-mcp

使用说明

收获MCP服务器

将您的AI助手连接到 收获 时间追踪。查询时间条目,分析盈利能力,跟踪利用率,并通过自然语言管理Harvest数据。

实时服务器: https://harvest-mcp.southleft.com


快速开始

克劳德桌面(推荐)

  1. 打开克劳德桌面→ 设置 → 连接器
  2. 点击 添加连接器
  3. 输入: https://harvest-mcp.southleft.com/mcp
  4. 点击 连接

首次使用时,您将收到一个OAuth链接,用于连接您的Harvest帐户。

克劳德代码CLI

claude mcp add --transport http harvest https://harvest-mcp.southleft.com/mcp

手动配置

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "harvest": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://harvest-mcp.southleft.com/mcp"]
    }
  }
}

示例提示

时间跟踪

“我今天做了什么?”

“显示我上周的所有时间条目”

“这个月我登录Acme项目多少小时了?”

“为Project X上的设计任务启动计时器”

“停止我的跑步计时器”

团队与客户分析

“上个月我的团队中谁记录的时间最多?”

“显示客户Acme Corp的所有时间条目”

“获取Initech每个人的联系信息”

“莎拉在做什么项目?”

“列出所有活动客户端”

盈利能力和利用率

“本季度Acme项目的盈利能力如何?”

“比较2024年所有客户的盈利能力”

“我们这个月的团队利用率是多少?”

“按团队成员显示计费与非计费明细”

“哪些项目最赚钱?”

预算执行情况

“本季度哪些员工超过了项目预算?”

“向我展示在预算范围内表现最佳的员工”

“谁是在多个项目上超支的惯犯?”

“比较2024年团队成员的预算差异”

发票和费用

“显示所有未付发票”

“Acme公司有哪些发票?”

“列出约翰逊项目的所有费用”

“本季度已开票和未开票的情况如何?”

聚合和报告

“11月按项目总结小时数”

“第四季度按客户和用户划分的时间”

“12月每周工作时间摘要”

“按月份显示2024年的时间趋势”


可用工具(21)

时间跟踪

工具 说明
harvest_list_time_entries 按用户、客户、项目、日期范围列出和过滤时间条目
harvest_get_time_entry 按ID获取特定时间条目
harvest_create_time_entry 使用可选计时器创建新的时间条目
harvest_stop_timer 停止正在运行的计时器
harvest_delete_time_entry 删除时间条目

公司与团队

工具 说明
harvest_get_company 获取公司/账户信息
harvest_get_current_user 获取当前用户信息
harvest_list_users 列出所有具有筛选器的用户

客户和联系人

工具 说明
harvest_list_clients 列出所有客户
harvest_list_contacts 列出客户联系人(与客户关联的人员)

项目和任务

工具 说明
harvest_list_projects 列出所有带有筛选器的项目
harvest_list_tasks 列出所有任务

发票和费用

工具 说明
harvest_list_invoices 列出带有状态/日期过滤器的发票
harvest_list_expenses 用过滤器列出费用

分析和计算

工具 说明
harvest_compute_profitability 计算盈利能力(基于时间、基于发票或混合)
harvest_compute_utilization 通过容量跟踪计算利用率
harvest_aggregate_time 按客户、项目、用户、日期、周或月汇总时间
harvest_compute_budget_performance 根据每个项目的预算遵守情况分析员工绩效

公用事业

工具 说明
harvest_get_rates 通过回退支持获得成本和计费费率
harvest_resolve_entities 按名称模糊搜索实体
harvest_get_schema 获取架构定义和枚举值(无需身份验证)

自我寄宿

Cloudflare Workers(推荐)

  1. 克隆并安装

    git clone https://github.com/southleft/harvest-mcp.git
    cd harvest-mcp
    npm install
    
  2. 创建Harvest OAuth应用程序

    • 首选 Harvest开发者
    • 创建新的OAuth2应用程序
    • 将重定向URI设置为 https://your-worker.workers.dev/callback
    • 记下您的客户端ID和客户端密码
  3. 配置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_SECRET
    
  4. 部署

    npm run deploy
    

Node.js服务器

cp .env.example .env
# Edit .env with your Harvest credentials

npm run dev      # Development
npm run build && npm start  # Production

环境变量

变量 描述 必填
HARVEST_CLIENT_ID 获取OAuth客户端ID 是
HARVEST_CLIENT_SECRET 获取OAuth客户端密码 是
SESSION_SECRET 会话加密密钥 是
SESSION_TTL_HOURS 会话生存期(默认值:24) 否
ALLOWED_ORIGINS CORS允许来源 否
DEFAULT_COST_RATE 回退成本率 否

建筑

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Claude/MCP     │────▶│  Cloudflare      │────▶│  Harvest        │
│  Client         │◀────│  Workers         │◀────│  API            │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                               │
                               ▼
                        ┌──────────────────┐
                        │  Cloudflare KV   │
                        │  (Sessions)      │
                        └──────────────────┘

堆栈:


API终点

端点 方法 描述
/ GET 登录页面
/health GET 健康检查
/mcp POST MCP协议端点
/callback GET OAuth回调

发展

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 code

项目结构

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 documentation

贡献

欢迎投稿!请随时提交拉取请求。


许可证

MIT许可证-请参阅 许可证 了解详情。


建造于 南左