mcpField
A
argon

argon

本地服务
github.com/argon-lab数据库1761 周前更新

关于 argon

argon 为 AI Agent 和开发者提供带版本管理的 MongoDB 沙盒,可通过任意驱动连接真实 MongoDB 数据库。分支、文档历史,以及可审查的合并和撤销操作支持实验与恢复,但受保留期限和捕获能力限制。

主要功能

  1. 01仅写入元数据即可创建分支
  2. 02通过任意驱动访问真实 MongoDB 数据库
  3. 03捕获文档历史并查询历史状态
  4. 04可审查的三方合并与冲突感知撤销
  5. 05一次性沙盒与受保护的数据集固定点
  6. 06带 REST API 的本地 Web 控制台

适用场景

  1. 01隔离 AI Agent 的数据库实验
  2. 02审查并合并拟议的数据更改
  3. 03恢复或撤销已捕获的文档更改
  4. 04保护命名的数据集状态免遭清理

MCP 相关

argon 通过 `argon mcp` 提供 MCP 接口,包含用于沙盒、差异、合并、撤销和固定点的 13 个工具。MCP 客户端可用这些工具管理 MongoDB 沙盒并审查更改。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"argon-lab-argon": {
"command": "npx",
"args": [
"-y",
"argonctl"
]
}
}
}
启动命令npx -y argonctl

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmargonctl2.1.3

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Argon — MongoDB 的 Git

Argon — MongoDB 的 Git,专为 AI Agent 打造:从生产环境创建分支,运行 Agent,还原会话

Build Status Go Report License: MIT Homebrew npm PyPI

为 MongoDB 创建分支、穿越时光、合并和撤销操作。支持任何驱动,底层使用真实的 mongod,并保留版本历史。专为 AI Agent 打造。

三个要点,三十秒了解:

  1. 分支是指针,而不是副本——通过写入元数据创建。检出操作会单独物化数据。
  2. checkout 将分支变成真正的 MongoDB 数据库——pymongo、 mongoose、mongosh、索引、聚合、事务:一切都是真实的;捕获功能正常时,受支持的文档写入都会成为历史记录。
  3. 审查和恢复更改——在配置的保留期限和捕获保障范围内,比较差异、合并、撤销并固定状态。

安装

使用 npm 时,请安装 Node.js 24 LTS 和 npm 11.16 或更高版本。包级审批允许安装程序在 npm 12 上下载 Argon 的二进制文件。

brew install argon-lab/tap/argonctl      # macOS
npm install -g argonctl --allow-scripts=argonctl # cross-platform

# MongoDB must run as a replica set (one-node is fine):
docker run -d --name argon-mongo -p 127.0.0.1:27017:27017 mongo:7 --replSet rs0
docker exec argon-mongo mongosh --quiet --eval 'rs.initiate({_id:"rs0",members:[{_id:0,host:"localhost:27017"}]})'
argon doctor

在生产环境中使用当前受支持的 MongoDB 补丁版本。根据 go.mod 的声明,从源代码构建需要 Go 1.26.9 或更高版本。请使用已修补的工具链:Go 1.27.0–1.27.1 也存在 2026 年 10 月的标准库漏洞。

工作流程

main ──branch──▶ experiment ──checkout──▶ mongodb://…  ← any driver
                                              │
                     ┌── argon diff ──────────┤  document history
                     ▼                        ▼
        merge (a data PR)          or   undo / discard / rewind
# 0 · Stop source writers and DDL for the import — or: argon projects create myapp
argon import database --uri mongodb://localhost:27017 --database myapp --project myapp --source-quiesced

# 1 · Branch — instant, no copy
argon branches create experiment -p myapp

# 2 · In terminal A, capture writes with a branch actor label
argon checkout -p myapp -b experiment      # prints a connection string
argon watch    -p myapp -b experiment --actor agent:experiment

# In terminal B, write through the printed URI. Then:

# 3 · Review and merge back — a data pull request
argon diff          -p myapp -b experiment
argon merge preview -p myapp -b experiment
argon merge apply <plan-id>

# …or rewind instead of merging
argon restore reset -p myapp -b main --time 2026-07-07T09:00:00Z --backup pre-incident

更喜欢点击操作?argon console 会启动本地 Web 控制台(UI + REST API),管理捕获流程,每分钟清理过期沙箱,并打开浏览器。 控制台采用 MIT 许可,其源代码位于 web/;请参阅重建说明。 如需完整的托管工作流,请运行双 Agent 固定数据集示例。

你将获得

命令一句话说明
分支argon branches create写入元数据——即时完成,零复制
真实数据库argon checkout / argon proxy支持任意驱动,使用真正的 mongod;代理提供稳定的 mongodb://host/<project>~<branch> URI
写入捕获argon watch精确的变更流快照 → 历史记录,每个分支对应一个操作者标签
时间旅行argon time-travel query查询保留的 LSN 对应的已捕获文档状态;还原和固定操作也接受时间戳
撤销argon undo --actor <a>撤销一个范围或操作者标签;仅追加、可感知冲突
还原argon restore preview/reset/branch回退已发布的分支,或从保留的历史记录派生分支
数据 PRargon merge preview/apply将三方合并作为可审查的计划;冲突绝不会被静默处理
沙箱argon sandbox create --ttl 1h一步完成派生分支、检出和 TTL 设置——可随时丢弃的 Agent 工作区
数据集固定argon pin create / pin sandbox命名的已捕获状态;固定存在期间可防止 GC 和重置操作影响这些状态
Web 控制台argon console一条命令启动本地 UI 和 REST API

数据历史涵盖文档插入、更新、替换和删除。删除/重命名集合会导致捕获能力降级;索引和集合选项不会进行版本管理。原生写入是异步的;控制操作会等待捕获完成。发布前请停止写入程序。现有固定项会保护其引用的状态,但 GC 可能会使审计和撤销历史过期。恢复和凭据请参阅运维文档。

存储保留策略使用快照和保留窗口 GC 来保留当前状态及一段时间的历史记录,而非永久保留每次写入。详情和一致性模型(如实说明):ARCHITECTURE.md。

面向 AI Agent

claude mcp add argon -- argon mcp        # 13 tools: sandbox, diff, merge, undo, pins
# Install the published Python SDK and LangGraph adapter.
python3 -m pip install 'argon-agents[langgraph]==0.2.0'

在另一个终端中运行 argon console --no-browser,然后:

from argon_agents import ArgonClient, ArgonCheckpointSaver

argon = ArgonClient("http://127.0.0.1:1818")
argon.get_or_create_project("myapp")
saver = ArgonCheckpointSaver.from_sandbox(argon, "myapp")
# Compile and run your LangGraph graph with checkpointer=saver, then review:
plan = argon.merge_preview("myapp", saver.sandbox.branch)
print(plan)
# After reviewing this exact plan, apply it explicitly:
# argon.merge_apply(plan["id"])
# Or reject the run: saver.discard()

argon.create_pin("myapp", "eval-v1")                        # pin the dataset once
run = argon.sandbox_from_pin("myapp", "eval-v1")            # identical state, every eval run

saver.merge() 是一个便捷调用,会立即预览并应用;需要审批时,请改用上面的独立调用。固定项存在期间会保护已捕获的文档状态;请保留独立备份。

完整的 Agent 工作流:docs/AGENTS.md。

文档

快速入门从安装到首次合并,逐步介绍
CLI 参考所有命令
Agent沙箱、固定项、MCP、REST API、argon-agents、代理
架构工作原理及保证内容
运维部署、分块存储(S3/FS)、GC、v1→v2 迁移
性能所有性能数据均来自可复现的基准测试——根据政策,此处不列出数据

社区

问题反馈 · 讨论 · 贡献指南 · argonlabs.tech · 博客


为你的 MongoDB 装上时光机。放心创建分支。 ⭐

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。