上下文监控工具

一款用于AI编程代理的上下文窗口使用估计工具,支持Claude Code和Codex CLI后端,可自动检测并预估上下文压缩风险,帮助代理提前保存重要状态。

  • by sophia-labs
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sophia-labs/mcp-context-monitor

使用说明

mcp上下文监视器

AI编码代理的上下文窗口使用率估计 主控程序.

解析您的会话记录,以估计您离上下文压缩有多近,这样代理就可以在重要状态丢失之前主动保存它。支持Claude Code和Codex CLI后端自动检测。

为什么

AI编码代理通过对话、工具调用和文件读取来积累上下文。当上下文窗口填满时,压缩会丢弃旧内容。知道压缩即将到来的代理可以首先将关键见解写入持久存储——内存队列、文档、知识图——而不是默默地丢失它们。

特性

  • 实时估算 --单个MCP工具返回使用百分比、压缩距离和状态级别
  • 多后端 --支持Claude Code(JSONL转录本)和Codex CLI(本地令牌计数),具有自动检测功能
  • 增量扫描 --侧车缓存轨迹扫描位置;后续调用仅处理新字节
  • 压实意识 --查找最后一个压实边界,仅测量压实后的含量
  • 可配置的 --用于阈值、令牌比率和后端特定设置的TOML配置
  • 零基础设施 --直接读取转录文件,无需守护进程或网络调用

快速开始

需要Python 3.11+和 紫外线.

git clone https://github.com/sophia-labs/mcp-context-monitor.git
cd mcp-context-monitor
uv sync

克劳德代码

增添 ~/.claude.json:

{
  "mcpServers": {
    "context-monitor": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-context-monitor", "python", "server.py"]
    }
  }
}

Codex CLI

增添 ~/.codex/config.toml:

[mcp_servers.context-monitor]
command = "uv"
args = ["run", "--directory", "/path/to/mcp-context-monitor", "python", "server.py"]

根据哪个CLI具有最新的转录,自动检测后端。

用法

呼叫 context_status() 来自您的代理人:

{
  "status": "HIGH",
  "usage_percent": 73.9,
  "compaction_percent": 88.5,
  "estimated_tokens_used": 147780,
  "estimated_tokens_remaining": 19220
}

状态级别

状态 压实度% 建议措施
正常 <50% 正常运行
中等 50-75% 请注意,无需采取任何行动
HIGH 75–90% 开始将重要状态保存到持久存储
关键 90%+ 立即保存所有内容——压缩迫在眉睫

代理商应该如何使用它

  • 呼叫 context_status() 在长时间会议期间定期
  • 在 高:将关键见解写入内存队列,在阶段转换时唱歌
  • 在 关键的:立即将所有重要内容写入持久存储
  • 这 compaction_percent 测量到压缩触发器的距离,而不是总窗口

配置

创建 ~/.config/context-monitor/config.toml:

# Backend selection: "auto", "claude-code", or "codex-cli"
[backend]
type = "auto"

# Claude Code settings
[claude-code]
context_window = 200000
autocompact_buffer = 33000
static_overhead = 43500
bytes_per_token = 3.2
# transcript_dir = "~/.claude/projects"

# Codex CLI settings
[codex-cli]
context_window = 400000
max_output_tokens = 128000
autocompact_ratio = 0.95
static_overhead = 30000
bytes_per_token = 3.2
# transcript_dir = "~/.codex/sessions"

环境变量

变量 描述
CONTEXT_MONITOR_BACKEND 强制后端: claude-code 或 codex-cli
CONTEXT_MONITOR_WINDOW 上下文窗口大小(标记)
CONTEXT_MONITOR_BUFFER 自动压缩缓冲区(令牌)
CONTEXT_MONITOR_OVERHEAD 静态开销估计(令牌)
CONTEXT_MONITOR_BPT 每个令牌的字节数比率
CONTEXT_MONITOR_TRANSCRIPT 显式转录文件路径
CONTEXT_MONITOR_PROJECT_DIR 成绩单目录

运作原理

  1. 初创公司:自动检测后端(Claude Code或Codex CLI)并查找活动会话记录
  2. 压实检测:扫描压缩标记以找到当前上下文的边界
  3. 内容估算:分析压缩后的内容,按类型分类(文本、工具调用、工具结果、思维、系统)
  4. 代币估算:
    • 克劳德代码:使用校准的字节/令牌比率从字节计数估计令牌
    • Codex CLI:使用来自的本地令牌计数 turn_complete 事件可用时
  5. 缓存:将扫描位置存储在sidecar文件中,以便后续调用只处理新字节

算什么

  • 用户消息、助手消息、系统提示
  • 工具使用(函数调用)和工具结果
  • 压实总结(来自之前的压实)

排除的内容

  • 思维/推理块(生成后不保留在上下文中)
  • JSON包装器开销(仅计算内容字节)

许可证

麻省理工学院——见 许可证.