Obsidian MCP 서버
Obsidian MCP 서버
Obsidian MCP 서버는 LLM(대규모 언어 모델)이 Obsidian 볼트와 직접 상호작용할 수 있도록 하는 Model Context Protocol(MCP) 서버입니다. 이 서버는 AI 어시스턴트가 사용자의 Obsidian 지식 베이스에 원활하게 액세스하고 관리할 수 있는 보안 도구를 제공합니다.
특징
- 콘텐츠 접근: 볼트 내의 노트를 읽고 검색할 수 있습니다.
- 콘텐츠 생성: 필요에 따라 새 노트와 디렉토리를 생성할 수 있습니다.
- 콘텐츠 관리: 기존 노트 편집, 파일 이동, 콘텐츠 삭제 기능을 제공합니다.
- 태그 관리: 볼트 전체에서 태그 추가, 제거 및 이름 변경이 가능합니다.
- 검색 기능: 볼트 콘텐츠 전체에 대한 포괄적인 검색이 가능합니다.
- 파일 작업: 원자적 파일/디렉토리 작업과 유효성 검사, 리소스 모니터링 및 오류 처리를 제공합니다.
- 검색 시스템: 구성 가능한 컨텍스트, 고급 JsonLogic 쿼리, glob 패턴 및 frontmatter 필드 지원을 통한 전체 텍스트 검색을 지원합니다.
- 속성 관리: YAML frontmatter 파싱, 지능형 병합, 자동 타임스탬프 및 사용자 정의 필드 지원을 제공합니다.
API
리소스
Obsidian MCP 서버는 다음과 같은 리소스를 제공합니다:
- Notes: Obsidian 노트를 나타내는 리소스
- Directories: Obsidian 볼트 내의 디렉토리 구조
- Tags: 노트에 적용된 태그
- Properties: 노트의 YAML frontmatter 속성
도구
파일 작업 도구
read-note
특정 Obsidian 노트의 내용을 읽습니다.
- 입력:
- vault: Obsidian 볼트의 이름
- filename: 노트 파일 이름
- folder: (선택 사항) 볼트 루트 기준 하위 폴더 경로
create-note
Obsidian 볼트에 새 노트를 생성합니다.
- 입력:
- vault: 볼트 이름
- filename: 노트 파일 이름
- content: 마크다운 형식의 노트 내용
- folder: (선택 사항) 하위 폴더 경로
edit-note
기존 Obsidian 노트를 편집합니다.
- 입력:
- vault: 볼트 이름
- filename: 노트 파일 이름
- operation: 수행할 작업 (예: "append", "prepend", "replace")
- content: 새 콘텐츠
- folder: (선택 사항) 하위 폴더 경로
move-note
노트를 이동하거나 이름을 변경합니다.
- 입력:
- vault: 볼트 이름
- source: 소스 노트 경로
- destination: 대상 경로
delete-note
Obsidian 노트를 삭제합니다.
- 입력:
- vault: 볼트 이름
- path: 노트 경로
- permanent: 영구 삭제 여부 (기본값: false)
- reason: 삭제 이유 (선택 사항)
검색 도구
search-vault
Obsidian 볼트 내에서 콘텐츠를 검색합니다.
- 입력:
- vault: 볼트 이름
- query: 검색 쿼리
- searchType: 검색 유형 (content, filename, both 중 하나)
- path: (선택 사항) 검색 범위를 제한할 하위 폴더 경로
- caseSensitive: 대소문자 구분 여부 (기본값: false)
태그 도구
add-tags
노트에 태그를 추가합니다.
- 입력:
- vault: 볼트 이름
- files: 처리할 노트 파일 배열
- tags: 추가할 태그 배열
- location: 태그 추가 위치 (frontmatter, content, both 중 하나)
- position: 인라인 태그 추가 위치 (start, end 중 하나)
- normalize: 태그 형식 정규화 여부
remove-tags
노트에서 태그를 제거합니다.
- 입력:
- vault: 볼트 이름
- files: 처리할 노트 파일 배열
- tags: 제거할 태그 배열
- options: 추가 옵션 (위치, 패턴 등)
rename-tag
볼트 전체에서 태그 이름을 변경합니다.
- 입력:
- vault: 볼트 이름
- oldTag: 변경할 태그 이름
- newTag: 새 태그 이름
- normalize: 태그 이름 정규화 여부
속성 관리 도구
update-properties
Obsidian 노트의 YAML frontmatter 속성을 업데이트합니다.
- 입력:
- filepath: 노트 파일 경로
- properties: 업데이트할 속성
- replace: 배열 속성 교체 여부 (기본값: false)
사용 방법
Obsidian MCP 서버를 사용하려면 다음 단계를 따르세요:
- 필수 조건:
- Obsidian 설치 및 볼트 생성
-
Obsidian Local REST API 커뮤니티 플러그인 설치 및 구성
-
설치:
npx -y @smithery/cli install mcp-obsidian --client claude
또는 수동 설치:
# 저장소 클론
git clone https://github.com/cyanheads/obsidian-mcp-server
cd obsidian-mcp-server
# 의존성 설치
npm install
# 빌드
npm run build
- 구성: Claude Desktop 구성 파일을 엽니다:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
다음 구성을 추가합니다:
{
"mcpServers": {
"obsidian-mcp-server": {
"command": "node",
"args": ["/path/to/obsidian-mcp-server/dist/index.js"],
"env": {
"OBSIDIAN_API_KEY": "your_api_key_here",
"VERIFY_SSL": "false",
"OBSIDIAN_PROTOCOL": "https",
"OBSIDIAN_HOST": "127.0.0.1",
"OBSIDIAN_PORT": "27124",
"REQUEST_TIMEOUT": "5000",
"MAX_CONTENT_LENGTH": "52428800",
"MAX_BODY_LENGTH": "52428800",
"RATE_LIMIT_WINDOW_MS": "900000",
"RATE_LIMIT_MAX_REQUESTS": "200",
"TOOL_TIMEOUT_MS": "60000"
}
}
}
}
- Claude Desktop를 다시 시작하여 설정을 적용합니다.
환경 변수
- OBSIDIAN_API_KEY (필수): Obsidian의 Local REST API 플러그인 설정에서 API 키를 가져옵니다.
- VERIFY_SSL (기본값: false): SSL 인증 활성화 여부입니다. 자체 서명된 인증서 또는 로컬 사용의 경우 false로 설정합니다.
- OBSIDIAN_PROTOCOL (기본값: "https"): 프로토콜 (http 또는 https)입니다.
- OBSIDIAN_HOST (기본값: "127.0.0.1"): 호스트 주소입니다.
- OBSIDIAN_PORT (기본값: 27124): 포트 번호입니다.
- REQUEST_TIMEOUT (기본값: 5000): 요청 시간 초과(ms)입니다.
보안 고려 사항
Obsidian MCP 서버는 볼트에 대한 읽기 및 쓰기 액세스 권한을 가지고 있습니다. 서버를 사용하기 전에 다음 사항을 고려하세요:
- 백업: 사용하기 전에 항상 Obsidian 볼트를 백업하세요. Git과 같은 버전 관리 시스템을 사용하는 것이 좋습니다.
- API 키 보호: Obsidian API 키를 안전하게 보관하고 공유하지 마세요.
- 로컬 사용: 서버는 로컬 머신에서만 실행하는 것이 안전합니다.