MCP로 Claude 코드를 Obsidian 보관함에 연결하기

발행: (2026년 5월 24일 PM 09:22 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

새로운 Claude Code 세션을 시작할 때마다 처음부터 시작합니다. 에이전트는 당신이 지정한 파일만 읽고 그 외는 전혀 보지 못합니다. 프로젝트 노트, ADR, 작업 목록이 Obsidian에 보관돼 있다면, 에이전트는 그것들이 존재한다는 사실을 전혀 알지 못합니다.
이 튜토리얼은 Claude Code를 Obsidian 볼트에 직접 연결합니다. 설정이 끝나면 에이전트가 기존 노트를 읽고, 새로운 노트를 만들며, 실행 간에 지속되는 세션 요약을 작성할 수 있습니다 — 모두 수동으로 복사할 필요 없이 가능합니다.

Team Relay는 Yjs CRDT를 통해 Obsidian 볼트를 실시간으로 동기화하는 자체 호스팅 서버입니다. evc-team-relay-mcp 패키지는 REST API를 MCP 도구 형태로 래핑하므로, MCP 호환 에이전트(Claude Code, Codex CLI, OpenCode) 모두 read_fileupsert_file을 호출해 볼트에 접근할 수 있습니다.

Claude Code - MCP ->  evc-team-relay-mcp - REST -> Team Relay - Yjs -> Obsidian

변경 사항은 Obsidian에 즉시 반영됩니다. Claude를 통해 만든 노트는 몇 초 안에 사이드바에 나타납니다.

옵션 A: 자체 호스팅 (Docker)

git clone https://github.com/entire-vc/evc-team-relay.git
cd evc-team-relay
cp .env.example .env        # 편집: RELAY_SECRET, DB 경로 등 설정
docker compose up -d

컨트롤 플레인은 기본적으로 8888 포트에서 실행됩니다. http://localhost:8888 에서 웹 UI를 통해 사용자 계정을 생성하세요.

옵션 B: 호스팅 서비스 이용

운영을 건너뛰고 싶다면 전체‑vc에서 제공하는 호스팅 인스턴스(entire.vc)를 이용할 수 있습니다. 해당 사이트에서 계정을 만들면 Docker 단계가 필요 없습니다. 어느 쪽을 선택하든 최종적으로는 컨트롤‑플레인 URL, 이메일, 비밀번호가 필요합니다 — 이것만 있으면 MCP 서버를 사용할 수 있습니다.

Obsidian에서 Team Relay 플러그인 설정을 열고, 에이전트가 접근할 볼트 폴더에 대해 폴더 공유를 생성합니다. 공유 ID를 복사해 두세요 — 곧 필요합니다.

아직 Obsidian 플러그인을 설치하지 않았다면: evc-team-relay-obsidian-plugin

프로젝트 루트(또는 전역 접근을 원한다면 ~/.claude/.mcp.json)에 .mcp.json 파일을 만들거나 편집합니다:

{
  "mcpServers": {
    "evc-relay": {
      "command": "uvx",
      "args": ["evc-team-relay-mcp"],
      "env": {
        "RELAY_CP_URL": "https://cp.yourdomain.com",
        "RELAY_EMAIL": "your@email.com",
        "RELAY_PASSWORD": "your-password"
      }
    }
  }
}

설치 단계는 필요 없습니다 — uvx가 최초 실행 시 PyPI에서 패키지를 자동으로 받아옵니다. Claude Code를 재시작하면 evc-relay 도구가 나타납니다.

아래는 에이전트가 볼트와 상호작용하는 예시 프롬프트 세 가지입니다. <> 안을 2단계에서 얻은 UUID 로 교체하세요.

  1. 내 Obsidian 공유 <share-id> 에 있는 파일 목록을 보여주고, 프로젝트 노트나 작업 목록으로 보이는 파일을 알려줘.
    Claude는 list_shareslist_files 를 호출하고, 볼트 구조 요약을 반환합니다. 아직 내용은 읽지 않습니다 — 단지 트리만 확인합니다.

  2. 공유 <share-id> 에서 Projects/active-sprint.md 를 읽고 현재 진행 중인 작업을 요약해줘.
    Claude는 read_file(file_path=“Projects/active-sprint.md”)을 호출합니다.

  3. 이번 세션에서 한 일을 바탕으로 AI-sessions/2026-05-15.md 라는 파일에 세션 로그를 만들어줘. 내용: 변경 사항, 남은 질문, 다음 단계.
    Claude는 upsert_file을 호출합니다. 파일이 없으면 새로 만들고, 있으면 제자리에서 업데이트합니다. Obsidian을 열면 몇 초 안에 사이드바에 노트가 나타납니다.

도구 목록

도구역할
authenticate로그인하고 JWT 토큰을 내부적으로 관리 (자동 호출)
list_shares접근 가능한 공유 목록 조회; kind="folder" 혹은 kind="doc" 로 필터
list_files폴더 공유의 파일 트리 반환
read_file폴더 공유에서 경로로 파일 읽기
upsert_file경로로 파일 생성 또는 업데이트
read_document저수준: doc_id 로 읽기 (문서 공유용)
write_document저수준: doc_id 로 쓰기
delete_file폴더 공유에서 파일 삭제

일반적인 흐름은 list_shares → list_files → read_file / upsert_file 입니다. 인증은 자동으로 처리되며 토큰을 직접 전달할 일은 없습니다. 모든 작업은 셸 명령이 아니라 JSON‑RPC를 통한 파이썬 함수 호출이며, 자격 증명은 환경 변수로 제공되고 CLI 인자로 노출되지 않으므로 명령어 주입 위험이 없습니다.

에이전트는 기본적으로 전체 볼트를 보지 못합니다. 명시적으로 만든 공유만 접근합니다. 프로젝트당 하나의 폴더만 공유하고 나머지는 비공개로 유지할 수 있습니다.

다른 MCP 클라이언트와도 동일하게 동작합니다. 동일한 .mcp.json 설정이 Codex CLI와 OpenCode에서도 사용 가능하며, 세션 요약 워크플로우도 동일합니다.

도구가 예상대로 동작하지 않거나 문제가 발생하면 MCP 레포에 이슈를 열어 주세요. 특히 도구 API에 대한 피드백을 환영합니다 — AI 에이전트 워크플로우에 가장 유용한 작업을 아직 정의 중이기 때문입니다.

0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.