지난 글 [(2) Ticktick과 노션에서 옮겨오기] 에서 이관을 마치고 며칠이 지났다.
그동안 정리법을 조금씩 공부하면서 ai 활용법 문서를 작성하기 시작했고, 그 와중에 MCP라는 용어를 처음 접했다.
MCP 개념 정리
MCP(Model Context Protocol)는 AI 모델이 로컬 파일이나 외부 서비스 같은 도구·데이터에 직접 접근할 수 있게 해주는 표준 프로토콜이다. 쉽게 말하면, Claude나 Gemini 같은 AI가 옵시디언 vault를 직접 읽고 쓸 수 있게 이어주는 다리 역할을 한다. 이게 연결되면 옵시디언 앱을 굳이 열지 않고도 AI와의 대화창에서 vault 내용을 조회하거나 수정할 수 있게 된다.
Claude 연동 방법 세 가지
Claude를 옵시디언과 엮는 방법은 크게 세 가지이다.
- Smart Composer 안에서 Provider 전환 — Anthropic을 선택하고 Claude API 키를 넣는 방식. 옵시디언 안에서, 노트를 열어둔 채로 바로 쓸 수 있다.
- MCP로 Claude Desktop이 vault 자체를 다루게 하기 — 옵시디언 밖에서, Claude Desktop 채팅창만으로 vault를 조회하고 문서를 수정하는 방식.
- Claude Code로 vault를 코드베이스처럼 다루기 — 파일 수천 개 단위의 일괄 작업이나 규칙 기반 재분류처럼, 단순하고 코드로 처리하는 게 맞는 작업에 쓰는 방식.
처음 실제로 연결해서 쓴 건 (2) MCP 방식이었으며, (3)은 vault 구조와 규칙이 안정화된 후에 일괄 작업을 위해 추후 사용하게 된다.
MCP 연결 과정
- Node.js 설치 — MCP 브릿지 역할을 하는 mcp-remote가 npx로 실행되는 Node.js 프로그램이라 먼저 설치해야 했다. nodejs.org에서 Windows용 설치 파일을 받아 설치.
- Obsidian 쪽 플러그인 설정 확인 — 이미 설치돼 있던 커뮤니티 플러그인 "Local REST API with MCP"의 옵션 화면에서 HTTPS 서버 활성화 여부, 포트 번호(기본 27124), API 키를 확인.
- Claude Desktop 설정 파일 경로 찾기 — 흔히 알려진 %APPDATA%\Claude\ 경로가 아니라, Windows(MSIX)로 설치한 경우엔 숨겨진 경로(%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude)에 진짜 설정 파일이 있었다.
- claude_desktop_config.json에 MCP 서버 등록 — mcpServers 항목에 obsidian 서버 블록을 추가. command는 npx, args에 mcp-remote@latest와 로컬 엔드포인트 주소(https://127.0.0.1:27124/mcp/), 인증 헤더를 넣는 식으로 구성했다.
- 완전 재시작 후 연동 확인 — 옵시디언 앱은 켜둔 채로 유지(REST API 서버가 앱 실행 중일 때만 응답하기 때문), Claude Desktop은 트레이에서 완전히 종료했다가 재시작. 데스크탑 앱의 로컬 MCP 서버 목록에서 obsidian이 "running"으로 뜨는지 확인하고, 새 대화방에서 vault 연결을 테스트하는 프롬프트로 첫 확인을 했다.
* 5번에서의 이야기와 같이, obsidian 을 먼저 열고 -> 이후 claude를 열어야 정상적으로 연결된다.
헤맸던 부분들
1. 인증 헤더를 인자 하나에 통째로 넣으면 깨진다.
"Authorization: Bearer <키>"를 그대로 넣었더니 Windows에서 npx 인자 전달 과정 중 공백 때문에 값이 잘리면서 "Server disconnected" 에러가 났다. 헤더 값을 ${AUTH_HEADER} 형태로 쪼개고, 실제 키는 env의 별도 변수로 분리하니 정상 동작했다.
2. 자체 서명 인증서를 신뢰하도록 예외를 줘야 한다.
플러그인이 자체 서명(self-signed) HTTPS 인증서를 쓰기 때문에, NODE_TLS_REJECT_UNAUTHORIZED: "0" 옵션을 env에 추가해야 했다.
3. JSON에서 쉼표를 빠뜨렸다...
설정 파일을 조금씩 고치다가 쉼표 하나를 빠뜨려서 파싱 에러가 났다. 부분 편집 대신 파일 전체를 통째로 교체하는 방식으로 해결했다. 연결에 성공한 뒤로는 vault를 재귀적으로 순회해서 .md 파일 개수를 세는 조회 작업부터 확인해봤고, 이후 실제 정리 작업(태그·문서 분류)에도 이 MCP 연결을 계속 활용하게 됐다.
Gemini 연동과 한계
Claude 쪽 연동을 어느 정도 정리해두고 나서, Gemini도 같이 써보고 싶어서 나중에 연결을 시도했다. Smart Composer라는 플러그인을 쓰면 옵시디언 안에서 Cursor나 GitHub Copilot처럼 vault를 인식하는 AI 채팅·편집 환경을 붙일 수 있는데, Google AI Studio에서 무료로 API 키를 발급받아 여기 연결했다. 연동 자체는 성공.
그런데 막상 써보려니 활용법이 잘 잡히지 않았다. 기반이 영어 쪽이라 그런지 한국어 응답이 꽤 어색했고, 기본적으로 cmd/powershell 환경에서 다뤄야 하는 부분도 있었고, 뭔가를 판단하고 정리해달라는 요청에는 생각보다 힘을 못 썼다. Claude MCP 쪽은 명령을 내리면 정리가 확실히 잘 됐던 것과는 대조적이었다. 이 부분은 나중에 활용법을 고민해 봐야 할 것 같다.
실패한 시도들
이것저것 해보면서 커뮤니티 플러그인 bmo와, Visual Studio Code에 연결해준다는 플러그인도 설치해봤다. 그런데 제대로 동작하지도 않고 활용법도 잘 모르겠어서 실패. 플러그인을 자꾸 늘리고 싶지 않아서 그냥 삭제했다.
다음 편에서는 이렇게 MCP로 연결한 Claude로 본격적인 정리 작업에 들어간 이야기 — 태그를 최소화하고 허브 문서로 구조를 잡은 과정 — 을 정리한다. → [옵시디언 세컨드브레인 만들기 (4) 태그 최소화와 허브 문서]
'Life Contents > Workflow' 카테고리의 다른 글
| 옵시디언 세컨드브레인 만들기 (5) — CLAUDE.md 설계 (0) | 2026.09.18 |
|---|---|
| 옵시디언 세컨드브레인 만들기 (4) — 태그 최소화와 허브 문서 만들기 (0) | 2026.09.18 |
| 옵시디언 세컨드브레인 만들기 (2) — Ticktick과 노션에서 자료 옮겨오기 (0) | 2026.09.18 |
| 옵시디언 세컨드브레인 만들기 (1) — 초기 세팅 (테마, 플러그인, 설정) (1) | 2026.09.18 |
| [생산성] CODE 방법론 단계와 실행, PKM 구축, PARA 노트 정리 (0) | 2025.03.07 |