Claude Code에 브라우저 손 붙이기 — aside mcp 실전
코딩 에이전트가 못 하는 건 코드가 아니라 로그인입니다. aside mcp 한 줄로 그 구멍을 메우는 방법과, 메우고 나서 반드시 막아야 할 것들.
코딩 에이전트가 막히는 지점은 코드가 아닙니다
Claude Code로 하루를 보내다 보면 패턴이 보입니다. 막히는 건 대체로 코드가 아닙니다.
할 수 있음 파일 읽기·쓰기, 테스트 실행, git, gh CLI, curl
할 수 없음 로그인이 필요한 웹
배포 후 스테이징 콘솔에서 플래그를 켜는 일, 결제 대시보드에서 지난달 인보이스를 받아오는 일, 사내 위키에 변경 기록을 남기는 일. 전부 코드 바깥이고, 전부 로그인 뒤에 있습니다. 그래서 에이전트가 "여기부터는 직접 해주세요"라고 멈춥니다.
API가 있으면 붙이면 됩니다. 문제는 사내 어드민에 API가 없다는 것이고, 앞으로도 생기지 않을 거라는 점입니다.
Aside는 자기 자신을 MCP 서버로 띄웁니다. 이 글은 그걸 Claude Code에 붙여서 실제로 어디까지 되는지, 그리고 붙이는 순간 무엇을 막아야 하는지에 대한 것입니다.
붙이기
CLI를 설치합니다.
curl -fsSL https://releases.aside.com/install.sh | bash
mcp.json에 서버를 추가합니다.
{
"mcpServers": {
"aside": {
"command": "aside",
"args": ["mcp"]
}
}
}
끝입니다. 이제 구도가 이렇게 됩니다.
Claude Code ──MCP──> Aside ──클릭/입력──> 로그인된 사내 어드민
│ │
코드·터미널 브라우저 세션
둘의 역할이 깨끗하게 갈립니다. Claude Code는 저장소 안을, Aside는 저장소 바깥을 맡습니다.
계정부터 나눠 두세요
붙이기 전에 할 일이 하나 있습니다. Aside는 계정을 여러 개 두고 명령마다 지정할 수 있습니다.
aside account list
aside account use <id> # 기본 계정 지정
aside --account <id> "..." # 이번 명령만 다른 계정으로
개인 계정과 업무 계정을 반드시 가르세요. MCP로 붙은 에이전트는 기본 계정으로 붙습니다. 개인 지메일과 회사 어드민이 같은 프로필에 들어 있으면, 에이전트가 사내 작업을 하다가 개인 메일함에 접근할 수 있는 상태가 됩니다. 사고가 아니라 설계 문제입니다.
실제로 되는 것들
1. 배포 뒤 확인을 에이전트 안에서 끝내기
지금까지는 이랬습니다.
Claude Code: 배포했습니다. 스테이징에서 확인해 주세요.
나: (브라우저 열고, 로그인하고, 눌러보고)
나: 됐어. 이제 릴리스 노트 써줘.
MCP를 붙이면 이 왕복이 사라집니다. 에이전트가 스테이징에 직접 들어가 화면을 확인하고, 그 결과를 그대로 릴리스 노트에 씁니다. 사람이 하던 건 "확인"이 아니라 "브라우저를 대신 여는 일"이었습니다.
2. 재현 안 되는 버그 추적
로그는 Kibana에, 사용자 정보는 어드민에, 결제 상태는 PG사 콘솔에 있습니다. 셋 다 로그인이 필요하고 셋 다 API가 마땅치 않습니다.
이런 조사는 읽기만 하면 되므로 위험이 낮습니다. 세션 권한을 Read only로 두고 던지면 됩니다.
Read only 브라우저와 파일을 보기만 함. 수정 없음
조사 작업의 기본값은 Read only여야 합니다. 버그를 찾다가 뭔가를 고치는 에이전트는 아무도 원하지 않습니다.
3. 벤더 콘솔 훑기
AWS 빌링, 도메인 만료일, 인증서 갱신, 외부 API 사용량. 한 달에 한 번 도는 순회인데 매번 잊습니다. 이건 MCP보다 Aside 쪽 Routine이 맞습니다 — 뒤에서 다루겠습니다.
4. 스크린샷이 필요한 작업
aside repl은 페이지를 직접 뜯어보거나 스크린샷을 찍거나 브라우저 단계를 스크립트로 짤 때 씁니다. 자연어로 시키기엔 결정적이어야 하는 작업 — 예를 들어 여러 해상도에서 같은 페이지를 찍어 비교하는 일 — 은 repl 쪽입니다.
붙이는 순간 반드시 해야 하는 것
여기가 이 글의 본론입니다. MCP로 붙인다는 건 코딩 에이전트에게 로그인된 브라우저 세션을 넘긴다는 뜻입니다. 권한이 합쳐집니다.
권한 매트릭스를 먼저 정하세요
Settings > Agents에서 기능별로 셋 중 하나를 고릅니다.
Allow 묻지 않고 수행
Ask 수행 전 승인 요청
Deny 차단 (다른 설정보다 우선)
개발자용 기본값으로 이 정도를 권합니다.
| 동작 | 설정 | 이유 |
|---|---|---|
| 페이지 열기·읽기 | Allow |
이게 막히면 쓸 이유가 없음 |
| 폼 입력·저장 | Ask |
되돌리기 어려운 것의 시작점 |
| 결제·구매 | Deny |
개발 작업에 필요한 적이 없음 |
| 메시지·게시 발송 | Deny |
외부로 나가면 회수 불가 |
| 계정 설정 변경 | Deny |
권한 상승 경로 |
Deny는 다른 설정을 이깁니다. 그래서 "혹시 몰라서" 열어두는 것보다, 막아놓고 필요할 때 푸는 쪽이 안전합니다.
세션 모드 기본값은 Guard
작업 시작할 때 고르는 값입니다.
| 모드 | 범위 |
|---|---|
Read only |
보기만 함 |
Guard (기본) |
승인된 폴더 안에서 작업, 그 밖은 물어봄 |
Full access |
컴퓨터 전체 읽기·쓰기 |
Full access를 상시로 켜두지 마세요. MCP 경유로 들어오는 명령은 사람이 한 줄씩 확인하지 않습니다. Claude Code가 알아서 판단해 Aside에 넘기는 구조이므로, 권한을 넓혀두면 그 판단의 결과가 그대로 파일 시스템에 닿습니다.
Incognito 모드를 아껴 쓰지 마세요
작업 단위로 브라우저 모드를 고를 수 있습니다.
Default 평소 브라우저 프로필로 실행
Incognito 프로필 상태 없이 실행 ← 로그인 세션이 안 딸려감
로그인이 필요 없는 작업은 전부 Incognito로 돌리세요. 공개 문서를 읽거나, 외부 사이트를 조사하거나, 링크를 확인하는 일에 세션을 딸려 보낼 이유가 없습니다. 이게 프롬프트 인젝션에 대한 가장 값싼 방어입니다 — 악성 페이지가 지시문을 심어도 쓸 수 있는 세션이 없습니다.
비밀번호는 그래도 안전합니다
한 가지 다행인 설계가 있습니다. 저장된 비밀번호 값은 Full access에서도 AI에게 노출되지 않습니다. 에이전트의 컨텍스트를 거치지 않고 페이지에 직접 입력되고, 입력 전에 정책과 대상 URL을 검증하며, 사용 내역이 감사 로그로 남습니다.
다만 이게 막아주는 건 비밀번호 유출이지 로그인된 세션으로 할 수 있는 일이 아닙니다. 이 둘을 구분해야 합니다.
Queue와 Steer — 알아두면 다른 도구
작업 중에 추가 지시를 넣을 때의 동작을 Settings > Agents > Chat에서 고릅니다.
Queue 현재 실행이 끝난 뒤에 적용 ← 경로를 끝까지 보고 싶을 때
Steer 실행 중에 끼어들어 조정 ← 즉시 교정이 필요할 때
에이전트가 엉뚱한 사이트를 헤매기 시작할 때 Steer가 있으면 중단하고 다시 시작할 필요가 없습니다. 반대로 **긴 작업의 결과를 온전히 보고 싶으면 Queue**가 맞습니다. 기본값을 한 번은 확인해 두세요.
안 되는 것과, 하면 안 되는 것
CI에 넣지 마세요. MCP로 붙여두면 "테스트도 시키면 되지 않나" 싶어집니다. 자연어 에이전트는 비결정적이고, 실행마다 LLM 호출이 붙습니다. CI는 결정적이어야 하고 하루에 수십 번 돕니다. 이건 다음 글에서 계산으로 다루겠습니다.
프로덕션 데이터를 만지는 작업은 사람이 하세요. 에이전트가 프로덕션 어드민에 로그인할 수 있다면, 그 계정의 권한이 곧 사고의 상한입니다. 읽기 전용 계정을 따로 발급받는 게 맞습니다.
벤치마크를 믿고 권한을 넓히지 마세요. Aside가 내세우는 에이전트 벤치마크 1위는 자체 보고이고 중립 검증이 없습니다. 성능이 좋아도 권한 설계는 별개 문제입니다.
정리
- Claude Code가 막히는 지점은 코드가 아니라 로그인입니다.
aside mcp가 그 구멍을 메웁니다. - 설치는 CLI 한 줄, 연결은
mcp.json에 서버 하나 추가가 전부입니다. - 계정을 먼저 가르세요. MCP는 기본 계정으로 붙고, 개인 세션이 섞이면 설계 사고입니다.
- 조사 작업의 기본값은
Read only, 세션 기본값은 **Guard**입니다.Full access는 상시로 켜두지 마세요. - 권한은 막아놓고 푸는 방향으로 잡습니다. 결제·발송·계정 설정은
Deny. - 로그인이 필요 없는 작업은 전부 Incognito로. 프롬프트 인젝션에 대한 가장 값싼 방어입니다.
- 비밀번호는
Full access에서도 모델에 노출되지 않지만, 세션으로 할 수 있는 일까지 막아주진 않습니다. Queue와Steer의 차이는 한 번 확인해 둘 값어치가 있습니다.- CI에는 넣지 마세요. 비결정적이고, 호출마다 돈이 붙습니다.
여러분이 Claude Code에게 "여기부터는 직접 해주세요"라는 말을 마지막으로 들은 건 어떤 작업이었나요? 그게 이 조합의 첫 시험대입니다.
출처
- Aside 문서 — 개발자 도구 — CLI 설치,
aside mcp,aside repl, 계정 전환 명령. - Aside 문서 — 보안과 권한 — Allow/Ask/Deny, 세션 모드, 비밀번호 격리와 감사 로그.
- Aside 문서 — 작업 — Default·Incognito 브라우저 모드, 작업별 권한, Queue·Steer 후속 동작.
- aside.com — 제품 개요와 벤치마크 주장.