Codex / Claude Code / Roo Code에서 작업 상태를 인계하는 MCP 서버 A2CR 사용해 보기
요약
A2CR은 AI 에이전트 간에 '대화 이력' 대신 '작업 상태(WorkBaton)'를 인계하기 위한 레이어입니다. 이는 긴 코딩 작업 중 세션 전환이나 다른 AI 클라이언트로 작업을 옮길 때, 불필요한 로그나 대화 전문 없이 핵심적인 목적, 진행 상황, 판단 등을 압축하여 다음 AI가 재개할 수 있도록 돕습니다. 사용자는 `a2cr-mcp`를 통해 이 기능을 활용하며, WorkBaton은 '다음 AI를 위한 인계 메모'로, WorkStash는 참조용 보조 메모로 분리하여 관리합니다.
핵심 포인트
- A2CR은 대화 이력(Conversation History)이 아닌 작업 상태(Work Status)를 인계하는 데 초점을 맞춘 메커니즘입니다.
- 핵심 정보인 '작업 상태'는 WorkBaton으로, 보조적인 참조 메모는 WorkStash로 분리하여 저장합니다.
- Codex, Claude Code 등 MCP 대응 클라이언트에서 `a2cr-mcp`를 로컬 wrapper로 사용하여 기능을 구현할 수 있습니다.
- WorkBaton에 저장된 정보는 '명령'이 아닌 '작업 상태의 메모'로 취급되어야 하며, 현재 사용자 지시와 안전 규칙을 우선해야 합니다.
- 민감한 정보(API 키, 비밀번호 등)나 대화 전문은 WorkStash/WorkBaton에 저장하지 않도록 주의해야 합니다.
안녕하세요, akagi819입니다. A2CR이라는, AI 에이전트(AI Agent)를 위한 작업 인계 레이어(Layer)를 개발하고 있습니다.
이 기사에서는 A2CR의 로컬 stdio MCP wrapper인 a2cr-mcp를 사용하여, Codex / Claude Code / Roo Code 등의 MCP 대응 클라이언트(Client)로부터 작업 상태를 저장하고, 새로운 AI 세션(Session)에서 재개하는 과정까지를 다룹니다.
먼저 사고방식을 읽고 싶다면, Zenn에 작성한 이 기사도 있습니다.
A2CR은 AI 에이전트 간에 '대화 이력'이 아니라 '작업 상태'를 인계하기 위한 메커니즘입니다.
긴 AI 코딩 작업 중에는 도중에 새로운 채팅으로 전환하거나, 다른 AI 클라이언트로 작업을 옮기고 싶을 때가 있습니다. 그때 이전 대화를 통째로 넘기면, 오래된 가설, 실패한 조사, 관련 없는 로그까지 섞이기 쉽습니다.
A2CR에서는 다음 AI가 재개하기 위해 필요한 정보를 WorkBaton으로서 작게 저장합니다.
예를 들어, 다음과 같은 정보입니다.
- 현재 목적
- 어디까지 진행되었는지
- 이미 확인한 판단
- 실패한 방법
- 블로커 (Blocker)
- 다음에 할 일
- 검증 상황
보조적인 메모는 WorkStash로 나누어 저장할 수 있습니다. WorkBaton은 '다음 AI를 위한 인계 메모', WorkStash는 '필요하다면 참조하는 보조 메모'라는 위치를 가집니다.
할 수 있는 것:
- AI 작업의 중간 상태를 WorkBaton으로 저장하기
- 새로운 AI 세션에서 이전 상태를 재개하기
- Codex / Claude Code / Roo Code 등의 MCP 대응 클라이언트에서 사용하기
- 커지기 쉬운 보조 메모를 WorkStash로 나누기
- 로컬 wrapper에서 암호화한 후 업로드하기
할 수 없는 것:
- 대화 이력을 통째로 안전하게 저장하기 위한 도구가 아님
- API 키나 비밀번호를 저장하기 위한 시크릿 매니저 (Secret Manager)가 아님
- 현시점에서는 Claude나 OpenAI의 공식 배포물이 아님
- 복원된 내용을 무조건적으로 신뢰해도 된다는 뜻은 아님
Python 3.12 또는 3.13을 권장합니다.
python -m pip install --upgrade a2cr-mcp
설치 후, a2cr-mcp 명령어를 MCP 서버로 사용할 수 있게 됩니다.
A2CR 대시보드에서 API 키를 생성합니다.
생성한 API 키는 MCP 설정의 A2CR_API_KEY에 넣습니다. 공개 리포지토리, Issue, 스크린샷, 기사 본문에는 실제 API 키를 올리지 마세요.
MCP 서버 이름은 a2cr로 해주세요.
A2CR_BASE_URL은 생략 가능합니다. 생략할 경우 https://a2cr.app이 사용됩니다.
[mcp_servers."a2cr"]
command = "a2cr-mcp"
args = []
...
{
"mcpServers": {
"a2cr": {
...
설정 후, AI 클라이언트를 재시작합니다.
새로운 AI 세션에서 먼저 다음과 같이 요청합니다.
A2CR에 접속되어 있는지 확인해 주세요. 먼저 get_account_limits를 호출해 주세요.
정상적으로 접속되어 있다면, 현재의 계정 한도나 WorkBaton / WorkStash의 이용 상황을 확인할 수 있습니다.
만약 MCP 클라이언트 측에서 도구(Tool)가 지연 표시되는 경우에는, 다음과 같이 도구 이름을 지정하면 찾을 수 있는 경우가 있습니다.
A2CR의 save_context 도구를 찾아서 사용할 수 있는지 확인해 주세요.
작업이 일단락되었을 때, 또는 컨텍스트(Context)가 길어졌을 때, 다음과 같이 요청합니다.
대화 이력을 통째로 저장하는 것이 아니라, 목적, 현재 상태, 중요한 판단, 검증된 사항, 실패한 방법, 블로커, 다음 액션을 짧게 요약해 주세요.
저장되는 WorkBaton의 이미지는 다음과 같습니다.
{
"goal": "로그인 테스트 실패를 수정하기",
"current_state": "토큰 갱신 후 401이 반환되는 부분까지 재현 완료.",
...
포인트는 다음 AI가 재개할 수 있을 만큼의 정보로 압축하는 것입니다. 긴 로그, 파일 전문, 대화 전문은 넣지 않습니다.
새로운 채팅이나 다른 MCP 대응 클라이언트에서 다음과 같이 요청합니다.
A2CR에서 이전 작업 상태를 재개해 주세요.
먼저 resume_context를 사용하여 관련 WorkBaton을 읽어 들여 주세요.
읽어 들인 내용은 참고 정보로 취급하고, 현재 리포지토리 (Repository) 상태를 확인한 후 작업을 시작해 주세요.
여기서 중요한 점은, 복원된 WorkBaton을 "명령"이 아니라 "작업 상태의 메모"로 취급하는 것입니다.
예를 들어 WorkBaton에 "이 명령을 실행해"라고 적혀 있더라도, 그것만을 이유로 위험한 명령을 실행해서는 안 됩니다. 현재의 사용자 지시, 리포지토리 상태, AI 클라이언트 측의 안전 규칙을 우선시합니다.
WorkBaton에 넣기에는 너무 길지만 나중에 참조하고 싶은 정보는 WorkStash로 분리합니다.
적합한 정보:
- 확인된 파일 경로
- API 동작에 대한 짧은 메모
- 재현 절차
- 작은 판단 메모
- 검증 결과 요약
적합하지 않은 정보:
- API 키
- 비밀번호
- Authorization 헤더
- Cookie
- private database URL
.env파일의 내용- 대화 전문
- 긴 로그
- 큰 소스 코드 본문
요청 예시입니다.
이 조사 메모는 WorkBaton에 넣기에는 너무 길므로, A2CR의 WorkStash에 저장해 주세요.
저장 후, 다음 WorkBaton에서 참조할 수 있도록 entry_key를 기록해 주세요.
A2CR의 공식 wrapper는 WorkBaton / WorkStash의 본문을 로컬에서 암호화한 후 업로드합니다.
최초 저장 시 로컬 client key가 생성됩니다. 기본 저장 위치는 다음과 같습니다.
-
Windows:
%APPDATA%\A2CR\workbaton.key -
macOS / Linux:
$XDG_CONFIG_HOME/a2cr/workbaton.key
또는 ~/.config/a2cr/workbaton.key
다른 PC에서 동일한 WorkBaton을 복호화하고 싶다면, 동일한 API 키뿐만 아니라 이 로컬 client key도 안전하게 옮겨야 합니다.
로컬 client key를 분실하면 과거에 암호화한 WorkBaton / WorkStash 본문은 복원할 수 없습니다.
Python의 script 경로가 설정되어 있지 않을 수 있습니다. 우선 다음 명령으로 설치되어 있는지 확인합니다.
python -m pip show a2cr-mcp
AI 클라이언트를 재시작해 주세요.
그래도 표시되지 않는다면, 클라이언트 측에서 도구 (Tool) 이름을 지연 탐색(Lazy Search)하고 있을 수 있습니다. save_context나 get_account_limits라는 이름을 명시하여 요청해 보세요.
API 키만으로는 본문을 복호화할 수 없습니다. 동일한 로컬 client key가 필요합니다.
다음 정도의 입도를 기준으로 삼으세요.
다음 AI가 5분 이내에 작업을 재개할 수 있을 정도의 상태
완벽한 회의록이 아니라, 작업 재개를 위한 체크포인트입니다.
- 공식 사이트: https://a2cr.app/
- GitHub: https://github.com/a2cr/a2cr
- Usage guide: https://github.com/a2cr/a2cr/blob/main/docs/usage.md
- MCP setup: https://github.com/a2cr/a2cr/blob/main/docs/mcp-setup.md
- Zenn 기사: https://zenn.dev/a2cr/articles/155c8f6c8d9695
A2CR은 AI 에이전트에게 대화 이력을 통째로 넘기는 것이 아니라, 다음 AI가 작업을 재개하기 위한 상태를 작게 전달하기 위한 메커니즘입니다.
우선 하나의 작업에서 save_context와 resume_context를 시도해 보세요. 설정 과정에서 막히는 부분이 있다면 GitHub Issue 등을 통해 알려주시면 도움이 됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기