my-obsidian-mcp
my-obsidian-mcp
Obsidian Vault를 읽고 쓸 수 있는 MCP(Model Context Protocol) 서버입니다. Cursor, Claude Desktop 등 MCP를 지원하는 AI 클라이언트에서 Obsidian 노트를 검색, 조회, 생성, 수정할 수 있습니다.
Tools
읽기
Tool | 인자 | 설명 |
|
| Vault 내 마크다운 파일 목록을 반환합니다. glob 패턴으로 필터링할 수 있습니다. |
|
| 특정 노트의 frontmatter와 본문을 반환합니다. |
|
| 특정 노트의 |
|
| 키워드로 노트를 검색합니다. ripgrep이 있으면 우선 사용하고, 없으면 JS 스캔으로 폴백합니다. |
|
| 특정 페이지를 |
| — | Vault 전체의 태그(frontmatter + 인라인 |
|
| Daily Note 목록을 조회합니다. |
|
| Daily Note에서 |
쓰기
Tool | 인자 | 설명 |
|
| 새 노트를 생성합니다. 이미 존재하는 파일이면 에러를 반환합니다. 중간 디렉토리는 자동 생성됩니다. |
|
| 기존 노트를 덮어씁니다. frontmatter를 생략하면 기존 frontmatter가 유지됩니다. |
|
| 기존 노트 끝에 내용을 추가합니다. |
|
| 특정 |
|
| 기존 노트의 frontmatter를 부분적으로 수정합니다. |
Daily Note
Tool | 인자 | 설명 |
|
|
|
Resources
URI 패턴 | 설명 |
| Resource 목록은 |
Prompts
Prompt | 설명 |
| 노트 경로를 받아 해당 노트의 요약을 요청하는 프롬프트 템플릿입니다. |
| 특정 날짜(기본: 오늘)의 Daily Note를 읽어 회고를 도와주는 프롬프트 템플릿입니다. 완료 사항, 진행 중 작업, 내일 할 일, 회고를 정리합니다. |
활용 사례 (Use Cases)
1) 주간 회고 자동 생성 + 메타데이터 정리
상황: 주간 Daily Note를 기반으로 회고 문서를 만들고, 태그/상태를 일관되게 정리하고 싶을 때
미니 플레이북:
list_daily_notes(from, to)로 주간 대상 수집핵심 노트를
get_section(path, "TIL")로 학습 내용만 추출create_note로Weekly/YYYY-Www.md생성update_frontmatter로tags,status,sourceNotes보강
2) 프로젝트 상태보드 반자동 갱신
상황: 프로젝트 진행상황이 여러 노트에 흩어져 있어 한 곳에서 보기 어렵고, 주기적으로 상태보드가 필요할 때
미니 플레이북:
search_notes로 상태 관련 키워드 수집 (status,blocked,next등)관련 노트들을
get_note로 집계보드 노트를
update_note로 전체 재생성 (표/섹션)필요 시
update_frontmatter로updatedAt,owner반영
3) 백링크 기반 지식 그래프 정비
상황: 핵심 노트가 고립되어 있고, 관련 문서 연결을 강화하고 싶을 때
미니 플레이북:
get_backlinks(target)로 연결 빈약 노트 식별search_notes로 연관 후보 문서 찾기추천 링크 문장을 생성해서
append_to_section(path, "Related")로 섹션에 보강
4) 장애/운영 기록 포스트모템 문서화
상황: Daily Note와 운영 로그에 흩어진 사건 기록을 정형화된 포스트모템으로 남기고 싶을 때
미니 플레이북:
search_notes로 사건 키워드/에러코드 검색관련 일자 노트를
get_note로 수집타임라인/원인/재발방지 템플릿 문서를
create_note로 생성update_frontmatter로 severity, owner, followUpDue 추가
5) 태그 기반 월간 큐레이션 노트 작성
상황: 월간 학습/업무 노트 중 특정 태그 주제만 뽑아 digest 형태로 공유하고 싶을 때
미니 플레이북:
list_tags로 태그 후보 탐색search_notes("#태그")로 후보 노트 수집요약/선정 이유를 포함한 digest를
create_note로 작성다음 달엔
update_note로 누적판 갱신
설치
npm install선택 사항
search_notes의 빠른 검색을 위해 ripgrep을 설치하는 것을 권장합니다.
# macOS
brew install ripgrep실행
# 개발 (tsx)
npm run dev -- /path/to/your/ObsidianVault
# 빌드 후 실행
npm run build
npm start -- /path/to/your/ObsidianVaultMCP 클라이언트 설정
Cursor
~/.cursor/mcp.json (또는 프로젝트 .cursor/mcp.json)에 아래와 같이 추가합니다.
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": [
"tsx",
"/absolute/path/to/my-obsidian-mcp/src/index.ts",
"/path/to/your/ObsidianVault"
]
}
}
}Claude Desktop
claude_desktop_config.json에 추가합니다.
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": [
"tsx",
"/absolute/path/to/my-obsidian-mcp/src/index.ts",
"/path/to/your/ObsidianVault"
]
}
}
}기술 스택
TypeScript — ES2022, NodeNext 모듈
@modelcontextprotocol/sdk — MCP 서버 구현 (stdio transport)
fast-glob — 파일 탐색
gray-matter — frontmatter 파싱
zod — 입력 스키마 검증
vitest — 단위/통합 테스트 (
npm test)