context-pack (MCP)
Your agents spend fewer tokens on handoffs and deliver more accurate context.
EN • RU
______________________________________________________________________
EN
问题
当代理将工作交给彼此时,他们通常会在聊天中编写自由形式的摘要:“我在文件X的Y行附近发现了一个错误,看起来像Z。”这浪费了输出令牌,失去了精度,并迫使接收代理重新读取源文件以验证所说的内容。
代理人合作越多,情况就越糟。
解决方案
上下文包为代理提供了一个共享的结构化工作区。代理将锚点(文件路径+行范围)放入包中,而不是用散文描述代码。服务器将这些锚点呈现为真实的代码摘录。然后,代理只发送 pack_id + short summary 在聊天中,接收代理打开包并获得全貌:确切的代码、注释、图表、判决。
主要优势
- 更少的输出令牌:代理以结构化的包而不是散文来描述发现,从而显著减少了切换消息的大小。
- 更高的精度:上下文锚定在实际的代码行上,而不是释义——没有“相信我”的总结。
- 减少冗余工作:接收代理读取一个包,而不是重新打开多个源文件。
______________________________________________________________________
快速开始
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | bashWindows(PowerShell):
iwr https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.ps1 -UseBasicParsing | iex安装人员根据以下内容验证下载的工件 checksums.sha256 从同一个释放。然后将服务器添加到MCP配置中:
法典 config.toml:
[mcp_servers.context_pack]
command = "mcp-context-pack"
args = []
[mcp_servers.context_pack.env]
CONTEXT_PACK_ROOT = "/absolute/path/to/context-pack-data"
CONTEXT_PACK_SOURCE_ROOT = "__SESSION_CWD__"
CONTEXT_PACK_LOG = "mcp_context_pack=info"
CONTEXT_PACK_INITIALIZE_TIMEOUT_MS = "20000"
CONTEXT_PACK_MAX_PACK_BYTES = "524288"
CONTEXT_PACK_MAX_SOURCE_BYTES = "2097152"
CONTEXT_PACK_EXPIRED_GRACE_SECONDS = "900"通用的 mcp.json:
{
"mcpServers": {
"context_pack": {
"command": "mcp-context-pack",
"args": [],
"env": {
"CONTEXT_PACK_ROOT": "/absolute/path/to/context-pack-data",
"CONTEXT_PACK_SOURCE_ROOT": "__SESSION_CWD__",
"CONTEXT_PACK_LOG": "mcp_context_pack=info",
"CONTEXT_PACK_INITIALIZE_TIMEOUT_MS": "20000",
"CONTEXT_PACK_MAX_PACK_BYTES": "524288",
"CONTEXT_PACK_MAX_SOURCE_BYTES": "2097152",
"CONTEXT_PACK_EXPIRED_GRACE_SECONDS": "900"
}
}
}
}重新启动MCP客户端。烟雾检查 input { "action": "list" }.
______________________________________________________________________
运作原理
Agent context-pack server Orchestrator
| | |
|-- input write (anchors) -->| |
| { path, line range, | |
| sections, comments } | |
| |-- renders code excerpts |
|-- output read ------------>| |
| |-- returns rendered pack -->|
| | |
|-- chat: pack_id + summary ----------------------->| |
| |
reads pack, |
gets full |
context |- 代理通过以下方式编写包
input--部分、代码锚点(文件+行范围)、注释、图表。 - 代理人打电话来
output read以获取渲染的标记。 - 代理人发送
pack_id + short summary在聊天中——仅此而已。 - 编排器打开包并获得完整的事实背景。
______________________________________________________________________
配置
参数参考
| 参数 | 含义 |
|---|---|
command | 中的二进制路径或可执行文件名 PATH (建议: mcp-context-pack) |
args | 可选CLI参数(通常 []) |
CONTEXT_PACK_ROOT | 存储根({root}/packs/*.json) |
CONTEXT_PACK_SOURCE_ROOT | 用于将锚点解析为代码摘录的源代码根(__SESSION_CWD__, session_cwd, cwd, . =当前会话目录) |
CONTEXT_PACK_LOG | 日志筛选器(stderr) |
CONTEXT_PACK_INITIALIZE_TIMEOUT_MS | 等待第一个MCP超时 initialize |
CONTEXT_PACK_MAX_PACK_BYTES | 每个存储包文件的最大字节数 |
CONTEXT_PACK_MAX_SOURCE_BYTES | 渲染摘录时每个源文件的最大字节数 |
CONTEXT_PACK_EXPIRED_GRACE_SECONDS | 宽限期(秒) expired 清除/not_found之前的包(默认值 900) |
集CONTEXT_PACK_ROOT到一个 根目录,不是为了.../packs. 存储格式为JSON(packs/*.json).不支持旧版降价包。
______________________________________________________________________
阅读一个包
紧凑切换读取(默认-有界,编排器配置文件):
{
"name": "output",
"arguments": {
"action": "read",
"id": "pk_abcd2345"
}
}完整的深入阅读(完整的片段供审阅):
{
"name": "output",
"arguments": {
"action": "read",
"id": "pk_abcd2345",
"profile": "reviewer"
}
}有关完整的工具合同、分页、配置文件、错误代码和迁移说明,请参阅 技术.md.
______________________________________________________________________
故障排除
revision_conflict--重新阅读包装(input get)要获取当前版本,请使用重试expected_revision设置为重新读取的值。stale_ref--更新或删除过时的锚点。not_found--包可能已在TTL到期。tool output too large--把包分成更小的部分。ambiguous--名称匹配多个包;使用精确id从details.candidate_ids.- 在列表操作期间,损坏或过大的包文件会自动删除。要删除特定包,请执行以下操作: `input { "action": "delete", "id": "
" }`.
______________________________________________________________________
All install methods
一行安装(Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | bash固定特定版本:
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | CONTEXT_PACK_VERSION=v0.1.0 bash安装到自定义目录:
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | CONTEXT_PACK_INSTALL_DIR="$HOME/bin" bash一行安装(Windows PowerShell)
iwr https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.ps1 -UseBasicParsing | iex自制(macOS/Linux)
brew install --formula https://github.com/AmirTlinov/context_pack/releases/latest/download/mcp-context-pack.rb大铲(Windows)
scoop install https://github.com/AmirTlinov/context_pack/releases/latest/download/mcp-context-pack.json手动安装
- 打开 GitHub发布 并下载适用于您的OS/CPU的存档。
- 拆包
mcp-context-pack(.exe在Windows上)。 - 将其放入PATH中(例如
~/.local/bin在Linux/macOS上)。
从源代码构建
cargo build --release
# binary: target/release/mcp-context-pack发布工件发布在每个标签上v*通过.github/workflows/release.yml. 维护人员:发布手册已发布RELEASE.md.
______________________________________________________________________
RU
问题
当代理将工作传递给彼此时,他们通常会在聊天中重写:“我在文件x中发现了一个bug,大约在Y行上,看起来像Z。”这浪费了Output令牌,失去了准确性,并迫使接收代理重新打开源代码以验证所说的话。
链上的特工越多,损失就越大。
决定
Context Pack为代理提供了一个共享的结构化工作空间。代理没有用文字描述代码,而是将锚(文件路径+行范围)放在包中。服务器将锚转换为实际的代码剪切。代理只发送到聊天室 pack_id + короткий summary -接收代理打开包并查看完整的图像:确切的代码、注释、图表、判决。
主要优势
- 更少的输出令牌:代理将发现记录在结构化包中,而不是散文-Handoff消息的大小大大减少。
- 更高精度:上下文绑定到特定的代码行,而不是重述-没有“相信我”。
- 减少重复工作:接收代理读取一个包,而不是重新打开多个源文件。
______________________________________________________________________
快速启动
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | bashWindows(PowerShell):
iwr https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.ps1 -UseBasicParsing | iex安装程序检查下载的软件存档 checksums.sha256 来自同一个版本。然后将服务器添加到MCP配置中:
法典 config.toml:
[mcp_servers.context_pack]
command = "mcp-context-pack"
args = []
[mcp_servers.context_pack.env]
CONTEXT_PACK_ROOT = "/absolute/path/to/context-pack-data"
CONTEXT_PACK_SOURCE_ROOT = "__SESSION_CWD__"
CONTEXT_PACK_LOG = "mcp_context_pack=info"
CONTEXT_PACK_INITIALIZE_TIMEOUT_MS = "20000"
CONTEXT_PACK_MAX_PACK_BYTES = "524288"
CONTEXT_PACK_MAX_SOURCE_BYTES = "2097152"
CONTEXT_PACK_EXPIRED_GRACE_SECONDS = "900"通用的 mcp.json:
{
"mcpServers": {
"context_pack": {
"command": "mcp-context-pack",
"args": [],
"env": {
"CONTEXT_PACK_ROOT": "/absolute/path/to/context-pack-data",
"CONTEXT_PACK_SOURCE_ROOT": "__SESSION_CWD__",
"CONTEXT_PACK_LOG": "mcp_context_pack=info",
"CONTEXT_PACK_INITIALIZE_TIMEOUT_MS": "20000",
"CONTEXT_PACK_MAX_PACK_BYTES": "524288",
"CONTEXT_PACK_MAX_SOURCE_BYTES": "2097152",
"CONTEXT_PACK_EXPIRED_GRACE_SECONDS": "900"
}
}
}
}重新启动MCP客户端。烟雾检查: input { "action": "list" }.
______________________________________________________________________
这是如何运作的
Агент context-pack сервер Оркестратор
| | |
|-- input write (якоря) ---->| |
| { путь, диапазон строк, | |
| секции, комментарии } | |
| |-- рендерит вырезки кода |
|-- output read ------------>| |
| |-- отдаёт отрендеренный -->|
| | пакет |
|-- чат: pack_id + summary ----------------------->| |
| |
читает пакет, |
получает полный |
контекст |- 代理通过
input-部分、代码锚(文件+行范围)、注释、图表。 - 代理呼叫
output read然后得到一个经过修改的Markdown。 - 代理发送到聊天室
pack_id + короткий summary-就这样 - 管弦乐队打开包,获得完整的,实际的上下文。
______________________________________________________________________
设置
参数帮助
参数,目的。 |---|---| | command ≫二进制路径或命令名 PATH (建议: mcp-context-pack) | | args 可选CLI参数(通常) []) | | CONTEXT_PACK_ROOT 存储库({root}/packs/*.json) | | CONTEXT_PACK_SOURCE_ROOT ^将锚转换为剪切的源根(__SESSION_CWD__, session_cwd, cwd, . =当前会话目录。 | CONTEXT_PACK_LOG 日志过滤器(stderr) | CONTEXT_PACK_INITIALIZE_TIMEOUT_MS 等待第一个MCP initialize | | CONTEXT_PACK_MAX_PACK_BYTES –最大数据包文件大小(以字节为单位)。 | CONTEXT_PACK_MAX_SOURCE_BYTES –剪切渲染时源文件的最大大小→ | CONTEXT_PACK_EXPIRED_GRACE_SECONDS Ð已过期的包仍可用多少秒 expired 在purge/not_found(默认情况下) 900) |
请CONTEXT_PACK_ROOT怎么 根文件夹不是.../packs. 存储格式:JSON(packs/*.json).不支持旧的Markdown包。
______________________________________________________________________
读取数据包
Compact Handoff读取(默认为Bounded,Orchestrator Profile):
{
"name": "output",
"arguments": {
"action": "read",
"id": "pk_abcd2345"
}
}全面钻井(全Snippets):
{
"name": "output",
"arguments": {
"action": "read",
"id": "pk_abcd2345",
"profile": "reviewer"
}
}完整的工具合同,逐页阅读,配置文件,错误代码和迁移示例-在 技术.md.
______________________________________________________________________
诊断
revision_conflict重读包(input get),获取当前修订,重复C突变expected_revision从一个重读的包。stale_ref-更新或删除过时的锚。not_found-包裹可能已经过期了tool output too large把袋子分成更小的部分。ambiguous-名称与多个包匹配;使用精确id从details.candidate_ids.- 在列表操作中,损坏或超大的数据包文件将自动删除。对于点去除: `input { "action": "delete", "id": "
" }`.
______________________________________________________________________
Все способы установки
一个命令安装(Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | bash固定特定版本:
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | CONTEXT_PACK_VERSION=v0.1.0 bash安装在非标准目录:
curl -fsSL https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.sh | CONTEXT_PACK_INSTALL_DIR="$HOME/bin" bash一键安装(Windows PowerShell)
iwr https://raw.githubusercontent.com/AmirTlinov/context_pack/main/scripts/install.ps1 -UseBasicParsing | iex自制(macOS/Linux)
brew install --formula https://github.com/AmirTlinov/context_pack/releases/latest/download/mcp-context-pack.rb大铲(Windows)
scoop install https://github.com/AmirTlinov/context_pack/releases/latest/download/mcp-context-pack.json手动安装
- 打开 GitHub发布 然后下载操作系统/体系结构下的存档。
- 解压
mcp-context-pack(.exe在Windows)。 - 把二进制放在
PATH(例如,~/.local/binLinux/macOS)。
源代码集
cargo build --release
# бинарник: target/release/mcp-context-pack释放-工件在每个标签上发布v*通过.github/workflows/release.yml. 维护人员:发布脚本描述为RELEASE.md.
