LLM代理上下文控制系统

一个为LLM代理提供类似Git风格上下文控制的工具,支持分支管理、提交历史和上下文导出共享功能。

  • by yuanboP
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 PangYuanbo/onecontext-mcp

使用说明

OneContext MCP

LLM代理的Git风格上下文控制(GCC)。转发是通过将有界的提交范围导出到段中并共享段id来完成的。

本项目MCP从以下方面提出了想法:

  • Git上下文控制器(GCC):COMMIT/BRANCH/MERGE/Context
  • (可选)导入一段代理历史(例如,Codex sessions/*.jsonl)成为可共享的细分市场

它的作用

  • 创建并维护 .GCC/ 当前工作目录中的目录。
  • 提供MCP工具以:
    • 初始化上下文存储
    • 创建/签出分支
    • 提交里程碑
    • 合并分支
    • 列表/搜索提交(选择一个范围)
    • 将有界提交范围导出到段中(事件+转录)
    • 在多个粒度上检索上下文
    • (可选)导入一片Codex *.jsonl 将会话文件转换为片段(事件+文字记录)
  • 公开MCP资源,以便另一个代理可以通过id读取提交(onecontext://gcc/commit/{id})或导出段(onecontext://segment/{id}/...).

文件布局

.GCC/
  main.md
  state.json
  branches/
    main/
      commit.md
      commits.jsonl
      log.jsonl
      metadata.yaml
    <branch>/
      ...
  segments/
    <segmentId>/
      meta.json
      transcript.md
      events.jsonl
      blobs/
        <sha256>.txt

安装

npm i
npm run build

作为包安装(私有、GitHub包)

此仓库配置为以以下方式发布到GitHub包 @pangyuanbo/onecontext-mcp.

  1. 配置npm auth(示例):
npm config set @pangyuanbo:registry https://npm.pkg.github.com

你的 ~/.npmrc 还必须包含一个身份验证令牌,例如:

//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}

令牌必须具有 read:packages 许可。

  1. 安装(全局)或通过npx运行:
npm i -g @pangyuanbo/onecontext-mcp
# or:
npx @pangyuanbo/onecontext-mcp

运行(MCP stdio)

node dist/index.js

MCP工具

  • gcc-init
  • gcc-branch
  • gcc-checkout
  • gcc-commit
  • gcc-merge
  • gcc-context
  • gcc-list-commits
  • gcc-search-commits
  • gcc-export
  • forward-codex-session-segment (可选助手)

MCP资源

  • onecontext://about
  • onecontext://instructions
  • onecontext://gcc/main
  • onecontext://gcc/state
  • onecontext://gcc/branches
  • onecontext://gcc/commit/{id}
  • onecontext://gcc/branch/{branch}/commit
  • onecontext://gcc/branch/{branch}/commits
  • onecontext://gcc/branch/{branch}/log/{tail}
  • onecontext://gcc/branch/{branch}/metadata
  • onecontext://segment/{id}/meta
  • onecontext://segment/{id}/transcript
  • onecontext://segment/{id}/events
  • onecontext://segment/{id}/blob/{sha256}

备注

  • 此服务器在磁盘上存储纯文本/JSON工件。它故意这样做 不 连锁店思维。
  • 大型工具输入/输出被截断;在使用时 forward-codex-session-segment,原始的大型有效载荷也可以保存为blobs .GCC/segments/<id>/blobs/.