内容
# ARIVE MCP 服务器
[](https://bun.sh/)
[](https://www.typescriptlang.org/)
[](https://modelcontextprotocol.io/)
[](LICENSE)
一个完整、可投入生产的TypeScript Model Context Protocol(MCP)服务器,实现了 **ARIVE** 框架:**分析**、**推理**、**集成**、**验证**、**解释**。
ARIVE 将本地上下文压缩、逐步回溯推理图、隔离目录任务运行器、测试验证循环和电报式语言输出合并为一个单一的、连贯的开发者助理引擎。
## 架构与阶段
```mermaid
graph TD
A[分析:路由器和压缩器] --> R[推理:反射引擎]
R --> I[集成:任务目录]
I --> V[验证:TDD循环]
V -- 失败反向传播 --> R
V --> E[解释:Lithic格式化器]
subgraph 分析阶段
内容路由器 --> 智能粉碎机
内容路由器 --> AST压缩器
内容路由器 --> 代码映射扫描器
AST压缩器 --> CCR注册表
end
```
### A - 分析(上下文压缩)
- **内容路由器**:自动将输入的文本块分类为 `json`、`code`、`logs` 或 `prose`,以确定最优的压缩策略。
- **智能JSON粉碎机**:递归遍历JSON数据,折叠具有两个以上元素的数组,并用摘要描述替换它们,同时保留SRE/错误字段。
- **AST代码压缩器**:使用TypeScript编译器API丢弃注释、JSDocs、空白符和格式化细节。
- **缓存对齐器**:规范化间距和回车符,以确保在Anthropic或Gemini等提供商上最大化KV缓存命中率。
- **CCR注册表**:基于哈希的内容压缩检索存储(`ccr:sha256_hash`)。允许使用68个字符的哈希引用大型有效载荷。
- **代码映射扫描器**:递归扫描文件夹以生成目录树,映射TypeScript导出/导入依赖流,并查询Git分支统计信息。
### R - 推理(逐步逻辑序列)
- **反射引擎**:在图中跟踪思维序列。支持分支和回溯:如果请求回溯修订,修订目标之后的思维将被标记为 `"backtracked"`(保留在日志中但被停用),并且新的活动序列分支出来。状态被原子化保存到 `.arive/thinking_state.json`。
### I - 集成(隔离工作空间)
- **目录隔离**:在 `.arive-tasks/<taskId>` 下生成隔离的并发任务目录。在自动重构/突变运行期间,防止修改用户的活动文件。
- **子代理运行器**:在隔离目录内生成CLI命令,保护免受沙盒目录逃逸和命令注入,并捕获子进程运行时错误。
### V - 验证(TDD和验证循环)
- **TDD编排器**:在隔离的工作目录中执行验证测试(例如 `bun test`、`pytest`)。
- **反向传播反射**:将断言失败集成回推理历史,提示引擎在后续迭代中修订其假设。
- **CCR验证**:在使用之前验证检索的原始内容是否与其原始哈希键匹配。
### E - 解释(Lithic令牌压缩)
- **Lithic格式化器**:将对话文本压缩为节省令牌的电报式样式:
- `lite`:剥去填充词(“just”、“actually”、“basically”)。
- `full`:剥去冠词(“the”、“a”)和助动词(“is”、“are”)。
- `ultra`:电报式关键词映射(例如 `tests/verify.test.ts:24 fail`)。
- `normal`:返回原始文本,不进行修改。
## 暴露的MCP工具
### `arive_compress`
根据代码、JSON、日志或散文优化压缩字符串,为大尺寸返回哈希引用。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `content` | 字符串 | 是 | | 要压缩的原始文本块。 |
| `contentType` | 枚举 | 否 | `auto` | 内容类别:`json`、`code`、`logs`、`prose` 或 `auto`。 |
| `forceCcr` | 布尔值 | 否 | `false` | 强制将结果存储在CCR注册表中。 |
### `arive_decompress`
将CCR引用哈希解析回其原始未压缩表示。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `hash` | 字符串 | 是 | | CCR哈希(例如 `ccr:sha256_hash`)。 |
### `arive_think`
在推理序列中记录单个思维块,管理回溯。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `thought` | 字符串 | 是 | | 推理思维文本。 |
| `thoughtNumber` | 整数 | 是 | | 当前思维索引。 |
| `totalThoughts` | 整数 | 是 | | 估计的总思维数。 |
| `nextThoughtNeeded` | 布尔值 | 是 | | 是否需要在本次思维之后继续下一个思维。 |
| `isRevision` | 布尔值 | 否 | | 标志指示此思维是否修订了之前的思维。 |
| `revisesThoughtNum` | 整数 | 否 | | 被修订的思维编号。 |
| `branchToThoughtNum` | 整数 | 否 | | 要分支的思维编号(如果回溯)。 |
### `arive_integrate`
控制工作空间生命周期(本地目录任务)并生成子进程。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `taskId` | 字符串 | 是 | | 任务工作空间的唯一标识符。 |
| `action` | 枚举 | 是 | | 要执行的操作:`create`、`execute` 或 `cleanup`。 |
| `command` | 字符串 | 否 | | 当操作为 `execute` 时执行的CLI命令。 |
### `arive_verify`
在任务目录工作空间路径中运行测试套件,并反向传播失败。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `taskId` | 字符串 | 是 | | 任务工作空间的唯一标识符。 |
| `testCommand` | 字符串 | 是 | | 要运行的测试命令(例如 `bun test`)。 |
### `arive_explain`
将对话消息转换为节省令牌的电报式样式,或返回电报指令规则。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `message` | 字符串 | 是 | | 要压缩的自然语言文本,或获取指令。 |
| `brevity` | 枚举 | 否 | `full` | 简洁程度/懒惰程度:`lite`、`full`、`ultra` 或 `normal`。 |
### `arive_codemap`
扫描文件夹结构树,映射导入/导出,或运行git差异检查。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `action` | 枚举 | 是 | | 代码映射操作:`tree`、`dependencies` 或 `diff`。 |
| `dir` | 字符串 | 否 | `.` | 要扫描的目录以获取树或依赖项。 |
| `excludes` | 数组 | 否 | `[]` | 要排除的目录或文件列表。 |
| `maxDepth` | 整数 | 否 | `10` | 目录树扫描的最大深度。 |
| `targetBranch` | 字符串 | 否 | `master` | Git差异比较的目标分支。 |
### `arive_install`
自动在所有检测到的AI客户端中注册ARIVE MCP服务器,并安装Git预提交钩子、ARIVE协议生命周期钩子、电报规则/技能和插件。
| 参数 | 类型 | 必需 | 默认值 | 描述 |
| --- | --- | --- | --- | --- |
| `workspacePath` | 字符串 | 否 | | 项目/工作空间根目录的路径,以安装规则、技能、插件和钩子。 |
| `editor` | 字符串 | 否 | | 要针对的特定AI编辑器的名称(例如 `cursor`、`cline`、`roo`、`windsurf`)。 |
## ARIVE协议生命周期钩子
ARIVE框架支持在工具执行的各个阶段执行自定义预和后钩子脚本。如果存在`.arive/hooks`目录,服务器将检查特定钩子名称的文件:
- `pre-analyze` / `post-analyze`(由 `arive_compress` 和 `arive_codemap` 运行)
- `pre-reason` / `post-reason`(由 `arive_think` 运行)
- `pre-integrate` / `post-integrate`(由 `arive_integrate` 运行)
- `pre-verify` / `post-verify`(由 `arive_verify` 运行)
- `pre-explain` / `post-explain`(由 `arive_explain` 运行)
### 环境变量
当执行钩子时,它会接收以下环境变量:
- `ARIVE_HOOK_NAME`:钩子的名称(例如 `pre-integrate`)。
- `ARIVE_HOOK_PHASE`:ARIVE协议的阶段(例如 `integrate`)。
- `ARIVE_HOOK_CONTEXT`:传递给工具的JSON字符串化参数上下文。
- `ARIVE_HOOK_RESULT`:(仅适用于 `post-` 钩子)工具执行的JSON字符串化结果/响应有效载荷。
如果 `pre-` 钩子以非零状态代码退出,则操作将被阻止,工具将返回失败错误。
## 安装和设置
### 要求
- [Bun](https://bun.sh/)(运行时和包管理器)
- [Git](https://git-scm.com/)
### 克隆和安装
```bash
# 克隆仓库
git clone https://github.com/sixtysixx/ARIVE.git
cd ARIVE
# 安装依赖
bun install
```
### 自动安装
您可以自动在所有检测到的AI客户端中注册ARIVE MCP服务器,并安装Git预提交钩子、ARIVE协议生命周期钩子、电报规则/技能和插件。
使用Bun运行安装程序CLI:
```bash
# 为所有检测到的编辑器安装
bun run install
# 为首选的AI编辑器安装
arive install --editor cursor
arive install -e opencode
```
支持的编辑器:`cursor`、`cline`、`roo`(或 `roocode`)、`windsurf`、`opencode`、`kilocode`、`claude`(Claude Desktop)、`claudecode`(Claude Code)、`antigravity`(Google Antigravity)、`omp`(oh-my-pi)。
或在任何活动客户端中使用 `arive_install` MCP工具(传递可选的 `editor` 或 `workspacePath`)。
### 运行测试
```bash
bun test
```
### 类型检查
```bash
bun x tsc --noEmit
```
## 客户端配置
要在本地AI编辑客户端中注册ARIVE MCP服务器:
### Gemini CLI(`antigravity-cli`)
ARIVE提供了一个根级 `plugin.json`、`mcp_config.json`、`rules/` 和 `skills/`,因此整个仓库都是一个有效的Antigravity插件。只需一行命令即可安装:
```bash
agy plugin install https://github.com/sixtysixx/ARIVE
```
CLI将插件阶段化到 `~/.gemini/antigravity-cli/plugins/arive/`,并在下一次启动时自动加载MCP服务器、电报规则和技能。
或者,在 `%USERPROFILE%\.gemini\antigravity-cli\mcp_config.json` 中手动注册MCP服务器:
```json
{
"mcpServers": {
"arive": {
"command": "bunx",
"args": ["--silent", "github:sixtysixx/ARIVE"]
}
}
}
```
### omp(oh-my-pi)
将此配置添加到用户级配置文件 `~/.omp/agent/mcp.json` 或项目级配置文件 `.omp/mcp.json`:
```json
{
"mcpServers": {
"arive": {
"command": "bunx",
"args": ["--silent", "github:sixtysixx/ARIVE"]
}
}
}
```
### Claude Desktop
将此添加到您的配置中(例如,`%APPDATA%\EasyCode\claude_desktop_config.json` 或标准 `claude_desktop_config.json` 配置路径):
```json
{
"mcpServers": {
"arive": {
"command": "bunx",
"args": ["--silent", "github:sixtysixx/ARIVE"]
}
}
}
```
### OpenCode
ARIVE提供了一个根级 `opencode.mjs` 插件模块。将仓库作为插件添加到您的全局配置(`~/.config/opencode/opencode.json`)或项目配置(`.opencode/opencode.json`),MCP服务器将自动注册:
```json
{
"plugin": ["github:sixtysixx/ARIVE"]
}
```
或者,手动注册MCP服务器:
```json
{
"mcp": {
"arive": {
"type": "local",
"command": ["bunx", "--silent", "github:sixtysixx/ARIVE"],
"enabled": true
}
}
}
```
### KiloCode
KiloCode共享与OpenCode相同的插件架构。将仓库作为插件添加到您的KiloCode配置中,MCP服务器将自动注册:
```json
{
"plugin": ["github:sixtysixx/ARIVE"]
}
```
或者,使用 **MCP Servers** 面板(齿轮图标 → **Edit Global MCP**),或在 `.kilocode/mcp.json` 下本地定义:
```json
{
"mcpServers": {
"arive": {
"command": "bunx",
"args": ["--silent", "github:sixtysixx/ARIVE"]
}
}
}
```
### VS Code(Cline & Roo Code)
您可以全局配置(通过 **MCP Servers** 选项卡在Cline/Roo Code面板中,单击 **Edit Global MCP**)或为特定工作空间本地配置:
- **Cline项目级配置:** `.cline/mcp.json`
- **Roo Code项目级配置:** `.roo/mcp.json`
```json
{
"mcpServers": {
"arive": {
"command": "bunx",
"args": ["--silent", "github:sixtysixx/ARIVE"]
}
}
}
```
### Cursor
通过Cursor设置UI下的 **Settings > Features > MCP** 添加此内容,单击 **Add new MCP server** (类型为 `stdio`,命令为 `bunx --silent github:sixtysixx/ARIVE`),或手动添加到项目 `.cursor/mcp.json`:
```json
{
"mcpServers": {
"arive": {
"command": "bunx",
"args": ["--silent", "github:sixtysixx/ARIVE"]
}
}
}
```
---
## 许可证
该项目根据MIT许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 致谢
ARIVE整合了以下核心开发范式的想法和流程 - 感谢您的启发:
- **headroom** (`chopratejas/headroom`): 本地,可逆的上下文压缩。
- **sequentialthinking** (`modelcontextprotocol/servers/sequentialthinking`): 逐步推理,具有反射回溯。
- **ponytail** (`DietrichGebert/ponytail`): 懒惰的高级开发人员模式规则集,技能和插件。
- **codemap** (`JordanCoin/codemap`): 紧凑的结构化文件树和依赖关系映射。