使用说明
收获时间跟踪MCP服务器
一个基于TypeScript的MCP(模型上下文协议)服务器,用于Harvest时间跟踪应用程序,使LLM客户端能够与Harvest帐户进行交互。
安装
npx -y @mayankg0324/mcp-server-harvest
先决条件
有关如何创建个人访问令牌的更多详细信息,请参阅 Harvest API文档.
可用工具
| 工具 | 描述 | 输入 | 输出 |
|---|---|---|---|
get-company |
获取公司信息 | 无 | 公司信息(名称、URL、ID和货币) |
search-clients |
搜索客户端 | •name:string(可选)-客户端名称 •isActive:boolean(可选)-活动状态 |
带有ID和详细信息的客户端列表 |
get-client |
获取客户端信息 | •clientId:string-客户端ID | 客户端详细信息 |
search-projects |
搜索项目 | •name:string(可选)-项目名称 •客户端ID: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(可选)-结束日期(YYYY-MM-DD) •userId:string(可选)-用户ID •projectId:string(可选)-项目ID •clientId:string(可选)-客户端ID |
包含详细信息的时间条目列表 |
get-time-entry |
获取时间条目详细信息 | •timeEntryId:string-时间条目ID | 详细的时间条目信息 |
create-time-entry |
创建新的时间条目 | •projectId:string-项目ID •taskId:string-任务ID •userId:string-用户ID •小时数-花费的小时数 •备注:字符串(可选)-其他备注 |
创建的时间条目详细信息 |
注: 更多工具即将推出。
用法
克劳德桌面
打开Claude桌面配置文件 claude-desktop-config.json 并在下面添加以下内容 mcpServers:
{
"mcpServers": {
"Harvest": {
"command": "npx",
"args": [
"-y",
"@mayankg0324/mcp-server-harvest"
],
"env": {
"HARVEST_ACCOUNT_ID": "<Harvest Account ID>",
"HARVEST_ACCESS_TOKEN": "<Harvest Personal Access Token>",
"HARVEST_BASE_URL": "<Harvest Base URL>"
}
}
}
}
光标IDE
打开Cursor IDE配置文件 ~/.cursor/mcp.json 或 <project-root>/.cursor/mcp.json 并在下面添加以下内容 mcpServers:
{
"mcpServers": {
"Harvest": {
"command": "npx",
"args": [
"-y",
"@mayankg0324/mcp-server-harvest"
],
"env": {
"HARVEST_ACCOUNT_ID": "<Harvest Account ID>",
"HARVEST_ACCESS_TOKEN": "<Harvest Personal Access Token>",
"HARVEST_BASE_URL": "<Harvest Base URL>"
}
}
}
}
故障排除
spawn npx ENOENT 或 env: node: No such file or directory
当您的MCP客户端(Claude Desktop、Cursor)找不到时,就会发生这种情况 npx 或 node 在其路径中。GUI应用程序通常不会继承shell的PATH,特别是如果你使用像这样的版本管理器 非挥发性物质, fnm,或 伏打.
修复: 使用完整路径 npx 并将您的Node bin目录包含在 PATH env变量:
# Find your npx and node paths
which npx
# e.g. /Users/you/.nvm/versions/node/v22.20.0/bin/npx
然后更新您的MCP配置:
{
"mcpServers": {
"Harvest": {
"command": "/Users/you/.nvm/versions/node/v22.20.0/bin/npx",
"args": [
"-y",
"@mayankg0324/mcp-server-harvest"
],
"env": {
"PATH": "/Users/you/.nvm/versions/node/v22.20.0/bin:/usr/bin:/bin",
"HARVEST_ACCOUNT_ID": "<Harvest Account ID>",
"HARVEST_ACCESS_TOKEN": "<Harvest Personal Access Token>",
"HARVEST_BASE_URL": "<Harvest Base URL>"
}
}
}
}
本地开发
-
安装依赖项:
npm install -
构建项目:
npm run build这将创建一个
dist包含编译的JavaScript文件的目录。 -
要使用本地开发版本,请修改MCP服务器配置以指向本地版本:
{ "mcpServers": { "Harvest": { "command": "node", "args": [ "path/to/local/build/dist/index.js" ], "env": { "HARVEST_ACCOUNT_ID": "<Harvest Account ID>", "HARVEST_ACCESS_TOKEN": "<Harvest Personal Access Token>", "HARVEST_BASE_URL": "<Harvest Base URL>" } } } } -
重新启动客户端应用程序(Claude、Cursor)以应用更改。
许可证
麻省理工学院
