Archcore MCP
官方本地 stdio MCP 服务器,让 AI 编码代理直接从你的仓库中读取并维护结构化的架构、规则和决策。
你可以用 Archcore MCP 做什么?
-
加载项目上下文 — 在进行更改之前,请让您的助手通过
list_documents和search_documents检索与模块相关的 ADR、规则和规范。 -
将决策记录为持久文档 — 让您的助手使用
create_document在.archcore/中创建类型化的 Markdown 文档(ADR、规则、计划),并通过 Git 对上下文进行版本控制。 -
关联相关文档 — 指示您的助手使用
add_relation以implements、depends_on或supersedes等关系连接文档,构建上下文图。 -
更新现有上下文 — 请您的助手通过
update_document和remove_document修订或移除.archcore/中的过时文档,保持项目知识的最新状态。 -
在任何仓库中引导上下文 — 让您的助手使用
init_project在空工作区中从零初始化.archcore/,立即启用上下文跟踪。
文档
Archcore CLI — 面向 AI 编码代理的 Git 原生上下文
Archcore 已迁移至 github.com/archcore-ai/archcore。 本仓库已归档。CLI 现在位于该仓库中的
cli/,与插件并列,自 v0.10.1 起的每个版本均发布在 archcore-ai/archcore/releases。 在 macOS、Linux 和 WSL 上使用curl -fsSL https://archcore.ai/install.sh | bash安装或更新,在 Windows 上使用irm https://archcore.ai/install.ps1 | iex。从本仓库安装的二进制文件(v0.8.7 或更早版本)不再自动更新;运行一次安装程序即可切换到新渠道。问题反馈:archcore-ai/archcore/issues。
Archcore 是面向 AI 编码代理的 Git 原生上下文层。
该 CLI 将规格、架构决策、规则、计划和项目知识保存在 .archcore/ 中,与你的代码一起进行版本管理,并通过 MCP 和会话钩子向编码代理提供相关上下文。
它以 CLI 和本地 stdio MCP 服务器的形式发布,因此任何兼容 MCP 的编码代理都可以通过标准工具读写你的项目上下文。可用于在 Claude Code、Cursor、Codex CLI、GitHub Copilot、Gemini CLI、OpenCode、Roo Code 和 Cline 中持久化项目上下文。
查看实际效果
该上下文来自 .archcore/ —— 在 Git 中进行版本管理的类型化 Markdown 文档,通过 MCP 工具和会话钩子提供给任何代理。

有何不同
❌ 没有 Archcore
每次会话都从零开始。代理会:
- 猜测你的架构并破坏你的约定
- 重复已经存在的逻辑
- 重新争论你的团队已经做出的决策
- 每次聊天都需要重新解释相同的上下文
✅ 使用 Archcore
你的决策、规则和约定以结构化上下文的形式存在于 Git 中。代理会:
- 在会话开始时加载适用的决策和规则
- 将代码放在你的架构规定的位置
- 尊重仓库中已有的 ADR、规格和规则
- 将新决策记录为持久上下文 —— 可在 PR 中审查,可跨代理移植
代理不再猜测,而是开始遵循系统。
60 秒快速上手
curl -fsSL https://archcore.ai/install.sh | bash # macOS / Linux
cd your-project && archcore init
archcore init 会搭建 .archcore/,检测你的编码代理,并为其配置钩子和 MCP。
然后打开你的代理并说:
"我们使用 PostgreSQL 作为主存储。记录这个决策。"
完成 —— 现在 .archcore/ 中已有一条结构化的 ADR,未来任何代理的任何会话都会看到它。
在 Windows 上:irm https://archcore.ai/install.ps1 | iex。对于 WSL、go install 以及从源码构建,请参阅下方的 安装方法 或 完整安装指南。
与你的代理配合使用
该 CLI 本身就是一个本地 stdio MCP 服务器 —— 为每个兼容 MCP 的代理提供统一的集成面。钩子会在代理支持的情况下在会话开始时添加上下文。
| 代理 | 钩子 | MCP |
|---|---|---|
| Claude Code | 是 | 是 |
| Cursor | 是 | 是 |
| Gemini CLI | 是 | 是 |
| GitHub Copilot | 是 | 是 |
| OpenCode | — | 是 |
| Codex CLI | — | 是 |
| Roo Code | — | 是 |
| Cline | — | 手动 |
archcore init 会自动配置检测到的代理。如需手动配置:
archcore mcp install --agent cursor # write MCP config for a specific agent
archcore hooks install # install session-start hooks for detected agents
claude mcp add --transport stdio archcore -- archcore mcp # or add the server manually
工作原理
- 初始化 ——
archcore init创建.archcore/并安装代理集成。 - 捕获 —— 决策、规则、计划和指南以带 YAML frontmatter 的类型化 Markdown 文档形式存储。
- 复用 —— 代理在工作时通过 MCP 工具读取、创建、更新和链接文档;钩子在会话开始时加载上下文。
- 保留在 Git 中 —— 像审查代码一样审查上下文变更,随时间演进,并保持跨工具可移植。
.archcore/
├── settings.json
├── auth/
│ ├── jwt-strategy.adr.md
│ └── auth-redesign.prd.md
├── backend/
│ └── error-wrapping.rule.md
├── incidents/
│ └── connection-pool-exhaustion.cpat.md
└── notifications/
└── notifications-implementation.plan.md
结构是自由形式的 —— 可按领域、功能或团队组织。文档类型由其文件名(slug.type.md)决定:共 23 种类型,分布在三个层级 —— 知识(ADR、规则、规格、指南)、愿景(PRD、计划、想法、需求轨道)和经验(事件模式、重复任务)。本仓库自身的 .archcore/ 就是一个实际示例。
向你的代理提问
"在我修改 auth 模块之前,这里适用哪些决策和规则?"
在代理修改一行代码之前,加载与该区域相关的 ADR 和规则。
"我们有一个约定:始终使用 fmt.Errorf 和 %w 包装错误。把它设为一条规则。"
创建 backend/error-wrapping.rule.md,包含命令式指导、理由以及好/坏示例。
"上周我们发生了一次连接池耗尽事件。把它记录下来,避免重蹈覆辙。"
创建 incidents/connection-pool-exhaustion.cpat.md,包含根因分析和预防步骤。
对比
| 如果你依赖… | 差距 | Archcore 的替代方案 |
|---|---|---|
| 无 | 代理每次会话都要重新了解你的仓库,并重新争论已定案的决策 | 在会话开始时加载决策、规则和约定 —— 适用于任何代理 |
扁平指令文件(CLAUDE.md、.cursorrules) | 一堵不断增长的文本墙 —— 没有类型、没有链接、没有生命周期,每个工具都要复制粘贴 | 类型化文档、关系图、草稿 → 已接受生命周期、一次配置适用于所有代理 |
| 记忆工具(claude-mem、Mem0) | 记住_你做了什么_ —— 易失、不透明、受供应商绑定 | 存储_系统是如何构建的以及做出了哪些决策_ —— 在 Git 中版本管理,由你拥有 |
| 方法论工具包(BMAD、Spec Kit、Agent OS) | 规定一个流程,通常是一次性交接 | 存储工件 —— 一个随代码库演进的活上下文图 |
| RAG / 更大的上下文窗口 | 检索代码_说了什么_,而不是_决策了什么以及为什么_ | 保持决策和理由明确且有选择性 —— 代理加载适用的内容,而不是全部内容 |
不适用于 —— 聊天记忆、提示词库或一次性规格到代码生成器。Archcore 是编码代理的仓库真相层,而不是方法论工具包。
参考
内置内容:23 种文档类型、7 种关系类型、10 个 MCP 工具、4 个代理的钩子集成和 8 个代理的 MCP 集成。
文档类型 —— 涵盖愿景、知识和经验的 23 种类型
知识
| 类型 | 全名 | 描述 |
|---|---|---|
adr | 架构决策记录 | 捕获已定案的技术决策,包含背景、备选方案和后果 |
rfc | 意见征求稿 | 提出一项重大变更,供团队审查和反馈 |
rule | 规则 | 编码或流程标准,包含命令式指导和示例 |
guide | 指南 | 完成特定任务的分步说明 |
doc | 文档 | 参考文档、注册表和描述性材料 |
spec | 规格 | 针对他人依赖的边界或功能/子系统的规范性行为契约 |
evidence | 证据 | 一份外部材料及其定位符、摘录和解释说明 |
scenario | 场景 | 主体-对象流程以及说明某条规格条款的 Given/When/Then 示例 |
愿景
| 类型 | 全名 | 描述 |
|---|---|---|
prd | 产品需求文档 | 目标、用户故事、验收标准和成功指标 |
idea | 想法 | 轻量捕获产品或技术想法,供未来探索 |
plan | 计划 | 分阶段任务列表,包含验收标准和依赖关系 |
rnd | 调研 | 限时调查,回答阻碍决策的问题 |
journey | 旅程 | 在覆盖该交互的规格存在之前,某类用户通过系统的预期路径 |
research | 研究 | 领域调查,包含范围、覆盖范围、注明日期的来源、发现和未解决的空白 |
另外还有两条需求轨道,供需要结构化发现或正式分解的团队使用:
来源轨道(MRD → BRD → URD)—— 捕获需求的_来源_:
| 类型 | 全名 | 描述 |
|---|---|---|
mrd | 市场需求文档 | 市场格局、TAM/SAM/SOM、竞争分析和市场需求 |
brd | 业务需求文档 | 业务目标、利益相关者、ROI 和业务规则 |
urd | 用户需求文档 | 用户画像、旅程、可用性需求和验收标准 |
ISO/IEC/IEEE 29148:2018 轨道(BRS → StRS → SyRS → SRS)—— 捕获需求的_分解方式_:
| 类型 | 全名 | 描述 |
|---|---|---|
brs | 业务需求规格 | 使命、目标、目的和业务运营概念 |
strs | 利益相关者需求规格 | 利益相关者需求、运营概念和用户需求 |
syrs | 系统需求规格 | 系统功能、接口、性能和设计约束 |
srs | 软件需求规格 | 软件功能、外部接口和详细行为规格 |
大多数项目使用 PRD;对于结构化需求发现,可添加来源轨道;对于受监管或复杂的多团队系统中的正式可追溯性,可使用 ISO 29148。可自由混用。
经验
| 类型 | 全名 | 描述 |
|---|---|---|
task-type | 任务类型 | 针对重复任务的可复用检查清单和工作流 |
cpat | 代码变更模式 | 针对 bug 或事件的根因分析及预防步骤 |
每个文档都是一个带 YAML frontmatter 的 Markdown 文件:
---
title: "Use PostgreSQL for Primary Storage"
status: draft
tags: [database, infrastructure]
---
## Context
...
有效状态:draft、accepted、rejected。标签为可选且自由形式。
MCP 工具与关系
MCP 工具
10 个工具:init_project、list_documents、get_document、search_documents、create_document、update_document、remove_document、add_relation、remove_relation、list_relations。该服务器也可以在空仓库中工作——代理可以通过 init_project 自行引导 .archcore/。
关系
文档通过由 MCP 工具管理的七种有向关系进行链接。
| 轴 | 关系 | 方向 |
|---|---|---|
| 结构 | related | 源与目标关联 |
| 结构 | implements | 源实现目标 |
| 结构 | extends | 源构建于目标之上 |
| 结构 | depends_on | 源需要目标 |
| 证据 | supports | 材料支持目标陈述 |
| 证据 | contradicts | 质疑者反驳目标陈述 |
| 时间 | supersedes | 较新的文档替换较旧的文档 |
端点是不同的现有本地文档。关系不会自动更改文档状态或解决矛盾。较旧的 CLI 版本会拒绝包含这三个新值的清单。
源以调查中的一行开始。当多个文档复用它、涉及矛盾或较新的材料替换它时,为其提供一个 evidence 文件。引擎存储定位器和摘录;它不会获取或验证源。
本地 MCP 服务器
archcore mcp 通过 stdio 从当前目录提供文档。当服务器从非工作区的目录启动时(例如由编辑器集成启动),请传递 --project /path/to/repo(或设置 ARCHCORE_PROJECT_ROOT)。
命令
| 命令 | 描述 |
|---|---|
archcore init | 交互式初始化 .archcore/ 目录 |
archcore doctor | 检查你的 archcore 设置并修复问题 |
archcore status | 检查 .archcore/ 结构和文档健康 |
archcore config | 查看或修改设置 |
archcore hooks install | 为检测到的 AI 代理安装钩子 |
archcore mcp | 运行 MCP stdio 服务器 |
archcore mcp install | 为检测到的代理安装 MCP 配置 |
archcore instructions | 管理指令文件中的 Archcore 提示 |
archcore plugin | 安装、更新或报告 Archcore 插件 |
archcore update | 将 Archcore 更新到最新版本 |
archcore update 检查 GitHub Releases,下载较新版本,验证 SHA-256 校验和,并原子性地替换二进制文件。然后它会在每个已安装 Archcore 插件的主机上更新该插件,并打印出在其 CLI 无法访问的主机上要运行的命令。
archcore plugin 直接在 Claude Code、Cursor、Codex CLI 和 GitHub Copilot 上管理该插件。archcore init 会为你在此处选择的主机安装它。
更新与遥测
无人值守更新
从 v0.8.0 开始,CLI 也会在无人监控的情况下自行更新。archcore mcp —— 你的代理启动的服务器 —— 在后台运行相同的检查,每台机器每 24 小时最多一次,并且仅当发布由本项目发布时才替换二进制文件,在运行下载的二进制文件一次以证明其可以启动之后。正在运行的进程永远不会被重启或中断;新版本会在二进制文件下次启动时生效。你自己编译的构建、分支和 CI 运行器永远不会自行更新。
没有变量和 .archcore/settings.json 键可以禁用此功能。如果某台机器不能自行更新,请将二进制文件安装到其用户无法写入的目录中——即 root 拥有的位置——并且每次尝试都会在下载任何内容之前停止。
更新分析
发布构建每次更新尝试发送一个事件:它移动的版本、你的操作系统和 CPU 架构、运行是否看起来像 CI、是你输入命令还是后台检查运行了它,以及失败时是哪一步失败。它永远不会发送错误消息、路径、用户名、主机名或有关你的仓库的任何信息。设置 DO_NOT_TRACK=1 或 ARCHCORE_TELEMETRY_OPTOUT=1 以完全不发送任何内容。这两个变量仅控制分析——都不会阻止 CLI 自行更新。完整详情:archcore.ai/privacy。
安装方法
macOS / Linux
curl -fsSL https://archcore.ai/install.sh | bash
Windows
irm https://archcore.ai/install.ps1 | iex
在 %LOCALAPPDATA%\Programs\archcore 下安装 archcore.exe,并将其添加到你的用户 PATH。安装后打开一个新的 PowerShell 窗口。
Windows (WSL)
安装 WSL,然后在其中运行 macOS/Linux 脚本。
Go 安装
go install github.com/archcore-ai/cli@latest
从源码构建
git clone https://github.com/archcore-ai/cli.git
cd cli
go build -o archcore .
支持的平台: macOS、Linux、Windows——amd64 和 arm64。
有关环境变量(ARCHCORE_VERSION、ARCHCORE_INSTALL_DIR、GITHUB_TOKEN),请参阅安装设置。有关 PATH 问题,请参阅安装故障排除。
配置
设置位于 .archcore/settings.json 中,由 archcore init 创建。
| 字段 | 描述 | 值 |
|---|---|---|
sync | 同步模式。云端和本地即将推出。 | none(仅本地)、cloud、on-prem |
language | 文档语言。帮助代理以正确的语言生成文档。 | 字符串,默认为 en |
archcore config # show all settings
archcore config get <key> # get a specific value
archcore config set <key> <value> # set a value
生态系统
- Archcore 插件 — 使用 Claude Code 或 Cursor?该插件与 CLI 配对:相同的引擎,外加技能、意图命令和护栏。一个产品,两个入口点——CLI 本身覆盖所有其他代理。
- docs.archcore.ai — 完整文档。
- 此仓库中的
.archcore/— 一个活生生的示例:CLI 是使用自己的上下文层构建的。
开发
需要 Go 1.25+。
go build -o archcore . # build
go test ./... # run all tests
链接与许可证
- 文档: docs.archcore.ai
- 网站: archcore.ai
- 插件(Claude Code、Cursor): github.com/archcore-ai/plugin
- 问题: github.com/archcore-ai/cli/issues
- 许可证: Apache 2.0