项目简介

ocsight 是一个 OpenCode 生态系统可观测平台。它能读取您的 OpenCode 开发会话和消息存储数据,提供详细的分析、统计和报告导出功能。更重要的是,它包含一个 MCP 服务器,可以通过标准化的方式向支持 MCP 协议的客户端(如大型语言模型 LLM)提供关于 OpenCode 使用情况的上下文信息和可调用工具,从而实现更智能、更集成的开发体验。

主要功能点

  • 全面的数据分析: 深入分析 OpenCode 的使用数据,包括总会话数、消息数量、工具使用频率、总成本和总 Token 消耗。
  • 实时指标提供: 通过 MCP 资源的形式,实时提供 OpenCode 的全局使用摘要、特定会话的详细信息,以及按不同提供商(如 Anthropic、OpenAI)划分的使用统计。
  • 智能分析工具: 作为 MCP 工具,提供多种分析查询能力,例如:
    • 根据天数和提供商筛选的使用摘要。
    • 按 Token 或成本排序的高使用率会话列表。
    • 强制刷新后台数据索引以获取最新统计。
    • 获取所有可用的 AI 提供商列表。
    • 查询特定工具的使用统计。
    • 获取每日使用活动的详细数据。
  • 跨平台兼容: 提供适用于 macOS、Linux 和 Windows 的 Go 语言编译二进制文件,确保在多种操作系统上都能运行。
  • 高性能与缓存: 能够高效处理大量 OpenCode 消息数据,支持文件缓存和 SHA256 验证,并采用内存高效的流式处理技术。

安装步骤

在开始使用 'ocsight' MCP 服务器之前,您需要先安装 'ocsight' 工具本身。

1. 前提条件

  • Node.js: 版本必须大于等于 18.0.0 (支持 ES 模块)。
  • OpenCode: 确保您已经安装了 OpenCode,并且其数据存储在默认路径 '~/.local/share/opencode/storage/' 中。

2. 安装 ocsight

选择以下任一方式安装 'ocsight':

  • 通过 Homebrew (推荐):
    # 添加 ocsight 的 tap
    brew tap heyhuynhgiabuu/tap
    
    # 安装 ocsight
    brew install ocsight
  • 通过 npm (Node.js 包管理器):
    # 全局安装 ocsight
    npm install -g ocsight
  • 从源代码安装 (需要 Bun 运行时):
    # 克隆 ocsight 仓库
    git clone https://github.com/heyhuynhgiabuu/ocsight.git
    cd ocsight
    
    # 安装依赖
    bun install
    
    # 构建项目
    bun run build

服务器配置(MCP 客户端使用)

MCP 服务器是设计来被 MCP 客户端调用的。为了让您的 MCP 客户端(例如,一个支持 MCP 的 LLM 应用)能够连接并使用 'ocsight' 提供的功能,您需要在客户端的配置中添加 'ocsight' MCP 服务器的启动信息。

以下是一个典型的 MCP 客户端配置示例:

{
  "mcpServers": {
    "ocsight": {
      "command": "npx",
      "args": ["ocsight", "mcp"]
    }
  }
}
  • '"ocsight"':这是您为该 MCP 服务器实例设定的名称。客户端将通过此名称来引用和连接到 'ocsight' MCP 服务器。
  • '"command"':指定用于启动 'ocsight' MCP 服务器的命令行程序。通常,如果 'ocsight' 是通过 npm 全局安装的,您可以使用 '"npx"' 来执行它。
  • '"args"':这是一个字符串数组,表示传递给 'command' 的参数。'"mcp"' 参数会指示 'ocsight' 工具以 MCP 服务器模式启动。

请注意: 您无需手动运行 'ocsight mcp' 命令。一旦 MCP 客户端配置正确,它将负责在需要时自动启动和管理 'ocsight' MCP 服务器进程。

基本使用方法(LLM 客户端视角)

一旦您的 MCP 客户端成功配置并连接到 'ocsight' MCP 服务器,客户端(或集成它的 LLM)将能够以标准化的方式与服务器交互,从而获取 OpenCode 的使用数据并调用分析功能。

1. 读取上下文信息 (Resources):

LLM 可以通过 MCP 的资源读取功能来获取 OpenCode 的各项指标:

  • 获取全局使用摘要: URI: 'ocsight://metrics/summary' LLM 可以通过此 URI 获取 OpenCode 的整体使用情况概览,包括总会话、总消息、总成本等。
  • 获取特定会话详情: URI: 'ocsight://sessions/{session_id}' LLM 可以替换 '{session_id}' 为实际的会话 ID,以获取该会话的详细信息,例如消息内容、使用的模型、Token 消耗和费用。
  • 获取提供商使用统计: URI: 'ocsight://providers' LLM 可以通过此 URI 获取所有 AI 提供商(如 Anthropic、OpenAI)的使用统计,包括每个提供商的会话数、Token 和费用。

2. 调用功能 (Tools):

LLM 可以通过 MCP 的工具调用功能来执行各种数据分析和查询:

  • 查询使用摘要: 工具:'usage_summary' 参数示例:'{"days": 7, "provider": "anthropic"}' 用途:获取过去指定天数内或特定提供商的使用摘要。
  • 获取高使用率会话: 工具:'top_sessions' 参数示例:'{"limit": 5, "sort": "cost"}' 用途:获取按 Token 或成本排序的 N 个最高使用率会话。
  • 刷新数据索引: 工具:'refresh_index' 参数示例:'{}' (无参数) 用途:强制 'ocsight' 服务器重新构建其内部数据索引,以确保数据最新。
  • 获取提供商列表: 工具:'list_providers' 参数示例:'{}' (无参数) 用途:获取数据中所有 AI 提供商的列表。
  • 获取工具使用统计: 工具:'get_tool_usage' 参数示例:'{"days": 30, "limit": 10}' 用途:获取在指定时间范围内,使用最多的工具及其统计信息。
  • 获取每日活动统计: 工具:'get_daily_stats' 参数示例:'{"days": 14}' 用途:获取过去指定天数内的每日使用统计,包括会话数、Token 和费用。

通过这些功能,'ocsight' MCP 服务器能够为 LLM 客户端提供丰富、实时的 OpenCode 使用上下文,支持 LLM 进行更深入的分析、建议和决策。

信息

分类

开发者工具