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。

License Go Release Platform

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 demo

有何不同

❌ 没有 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

工作原理

  1. 初始化 —— archcore init 创建 .archcore/ 并安装代理集成。
  2. 捕获 —— 决策、规则、计划和指南以带 YAML frontmatter 的类型化 Markdown 文档形式存储。
  3. 复用 —— 代理在工作时通过 MCP 工具读取、创建、更新和链接文档;钩子在会话开始时加载上下文。
  4. 保留在 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

链接与许可证