使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,它将 Harvest API 包装成 MCP 格式,使得支持 MCP 协议的 LLM 客户端能够方便地与 Harvest 进行交互。通过此服务器,LLM 可以安全、可扩展地访问 Harvest 的时间跟踪、客户管理、项目管理和报告功能。
主要功能点
- 时间条目管理: 支持列出、获取、创建、更新、删除、重启和停止时间条目。
- 客户管理: 支持列出、获取、创建、更新和删除客户信息。
- 项目管理: 支持列出、获取、创建、更新和删除项目信息。
- 报告生成: 支持获取客户、项目、任务和团队的时间报告。
- 标准化接口: 所有功能均通过 MCP 协议以标准化的方式提供给 LLM 客户端。
安装步骤
-
克隆仓库:
git clone https://github.com/CodifyAG/mcp-servers.git cd mcp-servers/mcp-server-harvest-time-tracking -
配置环境变量: 创建 '.env' 文件或在您的环境中设置以下环境变量,替换为您的 Harvest 账户 ID 和访问令牌。
HARVEST_ACCOUNT_ID=<your-harvest-account-id> HARVEST_ACCESS_TOKEN=<your-harvest-access-token>您需要从您的 Harvest 账户设置中获取这些凭据。
-
设置虚拟环境并安装依赖:
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"' 字段中直接配置环境变量,如果需要的话。
基本使用方法
-
启动服务器: 在仓库根目录下运行以下命令启动 MCP 服务器:
make run服务器将在 stdio 模式下运行,等待 MCP 客户端的请求。
-
在 MCP 客户端中使用: 配置好客户端后,您可以使用自然语言指令或客户端提供的界面,通过 MCP 协议调用服务器提供的工具,例如:
- "列出我今天的时间记录" (客户端将调用 'list_time_entries' 工具,并根据上下文设置 'from_date' 和 'to_date' 参数)
- "为项目 '新网站开发' 创建一个时间记录,时长 2 小时,备注 '编写文档'" (客户端将调用 'create_time_entry_duration' 工具,并传递项目 ID、任务 ID、日期、时长和备注等参数)
- "获取客户 'ABC 公司' 的信息" (客户端将调用 'get_client' 工具,并传递客户 ID 或名称等信息)
具体的调用方式取决于您使用的 MCP 客户端的功能和界面。请参考您使用的 MCP 客户端的文档来了解如何与 MCP 服务器进行交互。
信息
分类
商业系统