使用说明

项目简介

mcp-nokotime 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在桥接 Noko 时间跟踪服务与支持 MCP 协议的客户端,如 Claude Desktop。通过此服务器,用户可以使用 Claude Desktop 等工具,以自然语言指令调用 Noko 的功能,例如查询时间记录、创建新的时间条目、列出项目和用户等,从而提升工作效率。

主要功能点

  • Noko API v2 全面集成: 完整支持 Noko API v2 版本的所有功能。
  • 安全认证处理: 安全地处理 Noko API 的身份验证。
  • 时间条目管理: 支持创建、查询和管理 Noko 中的时间记录。
  • 项目和用户列表: 可以获取 Noko 中项目和用户的列表信息。
  • 错误处理和验证: 提供完善的错误处理和输入验证机制。
  • 异步支持: 使用 async/await 技术,提供高效的异步操作支持。

安装步骤

  1. 安装 Python 3.9+: 确保您的系统已安装 Python 3.9 或更高版本。
  2. 克隆仓库: 使用 git 命令克隆 mcp-nokotime 仓库到本地:
    git clone https://github.com/Lullabot/mcp-nokotime.git
    cd mcp-nokotime
  3. 安装 uv (可选): uv 是一个快速的 Python 包安装和虚拟环境管理工具,如果尚未安装,请运行以下命令安装:
    curl -LsSf https://astral.sh/uv/install.sh | sh
  4. 创建并激活虚拟环境: 创建并激活 Python 虚拟环境,以隔离项目依赖:
    uv venv
    source .venv/bin/activate  # 在 Unix/macOS 系统上
    # 或
    .venv\Scripts\activate  # 在 Windows 系统上
  5. 安装项目依赖: 使用 uv 或 pip 安装项目依赖(开发模式):
    uv pip install -e .
    # 或
    pip install -e .
  6. 测试服务器: 运行以下命令测试服务器是否正常启动:
    python -m nokotime.server

服务器配置

要将 mcp-nokotime 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是 Claude Desktop 客户端的配置示例,您需要根据您的实际环境进行调整。

Claude Desktop 配置 (claude_desktop_config.json):

{
  "mcpServers": {
    "noko": {  // 服务器名称,客户端用此名称引用
      "command": "/path/to/your/mcp-nokotime/.venv/bin/python3",  // Python 解释器路径,请替换为您的虚拟环境中的 Python 路径
      "args": [
        "-m",
        "nokotime.server"  // 启动服务器的模块和脚本
      ],
      "env": {
        "NOKO_API_TOKEN": "YOUR_NOKO_API_TOKEN",  // 您的 Noko API 令牌,请替换为您的实际令牌
        "PYTHONPATH": "/path/to/your/mcp-nokotime"  // mcp-nokotime 项目根目录路径,请替换为您的实际路径
      }
    }
  }
}

配置说明:

  • '"noko"': MCP 服务器的名称,您可以在 Claude Desktop 中使用这个名称来引用该服务器。
  • '"command"': 启动 MCP 服务器的命令。这里指向您在虚拟环境中安装的 Python 解释器。请务必替换为您的实际 Python 路径。
  • '"args"': 启动命令的参数。'"-m nokotime.server"' 表示运行 'nokotime' 包中的 'server.py' 模块。
  • '"env"': 环境变量配置。
    • '"NOKO_API_TOKEN"': 必须配置您的 Noko API 令牌,用于服务器访问 Noko API。请从 Noko 服务获取您的 API 令牌并替换 '"YOUR_NOKO_API_TOKEN"'。请勿使用示例值,务必使用您自己的令牌。
    • '"PYTHONPATH"': 指定 Python 模块搜索路径,确保 Python 可以找到 'nokotime' 包。请务必替换为您的 mcp-nokotime 项目的实际根目录路径。

重要提示:

  • 路径替换: 请根据您的实际安装路径,准确替换 'command' 和 'env.PYTHONPATH' 中的路径。
  • API 令牌: 请务必配置正确的 'NOKO_API_TOKEN' 环境变量,否则服务器将无法连接到 Noko API。
  • 重启客户端: 修改 'claude_desktop_config.json' 后,需要重启 Claude Desktop 客户端 才能使配置生效。
  • 检查日志: 如果遇到连接问题,请检查 Claude Desktop 的 MCP 日志文件 ('~/Library/Logs/Claude/mcp*.log' 或 '%APPDATA%\Claude\mcp*.log') 以获取详细错误信息。

基本使用方法

配置完成后,在 Claude Desktop 或其他支持 MCP 协议的客户端中,您可以使用自然语言指令来调用 mcp-nokotime 服务器提供的工具。

可用工具:

  1. List Time Entries (列出时间条目): 查询时间记录。

    • 示例参数: '{"from": "2023-12-01", "to": "2023-12-31", "user_ids": [123], "project_ids": [456]}'
    • 描述: 列出指定日期范围内,特定用户和项目的时间条目。
  2. Create Time Entry (创建时间条目): 创建新的时间记录。

    • 示例参数: '{"date": "2023-12-14", "minutes": 60, "description": "Working on project documentation", "project_id": 123}'
    • 描述: 创建一个新的时间条目,包括日期、时长、描述和项目 ID。
  3. List Projects (列出项目): 查询项目列表。

    • 示例参数: '{"state": "active"}'
    • 描述: 列出所有项目,可以根据状态 (active, archived, all) 进行过滤。
  4. List Users (列出用户): 查询用户列表。

    • 示例参数: '{"state": "active"}'
    • 描述: 列出所有用户,可以根据状态 (active, suspended, all) 进行过滤。

您可以在 Claude Desktop 中使用自然语言指令,结合上述工具和参数,与 Noko 时间跟踪服务进行交互。例如,您可以询问 "列出我今天在项目 XYZ 上的时间记录" 或 "为项目 ABC 创建一个 30 分钟的时间记录,描述为 '会议讨论'"。客户端会将您的指令转换为对 mcp-nokotime 服务器的工具调用,并返回 Noko 的数据或执行相应的操作。

信息

分类

生产力应用