项目简介
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 进行更深入的分析、建议和决策。
信息
分类
开发者工具