Skip to main content
Glama
bellx2

upnote-mcp

by bellx2

upnote-mcp

upnote-mcp는 stdio를 통해 로컬 UpNote 데이터를 SQLite에서 읽어오는 읽기 전용 MCP 서버입니다.

이 프로젝트는 비공식 프로젝트이며 UpNote와 제휴, 보증, 유지보수 관계가 없습니다.

기능

  • search_notes: 제목, 본문 또는 요약으로 노트 검색

  • list_recent_notes: 가장 최근에 업데이트된 노트 목록

  • list_notes_this_week: 이번 주에 업데이트된 노트 목록

  • list_notes_this_month: 이번 달에 업데이트된 노트 목록

  • find_notes: 기간, 키워드, 태그 필터를 한 번에 결합

  • open_note: 노트 ID로 UpNote 앱에서 노트 열기

  • get_note: 노트 ID로 노트 전체 내용 가져오기

  • open_notebook: 노트북 ID로 UpNote 앱에서 노트북 열기

  • list_notebooks: 노트 개수와 함께 노트북 목록

  • create_note: UpNote의 공식 URL 스킴을 통해 새 노트 만들기

  • list_tags: 태그 목록

  • search_by_tag: 태그에 해당하는 노트 목록

이 프로젝트는 의도적으로 읽기 전용입니다. UpNote 데이터베이스에 쓰지 않습니다. 안전한 노트 생성 및 열기 작업은 직접 데이터베이스 쓰기 대신 UpNote의 공식 URL 스킴을 통해 수행됩니다.

Related MCP server: upnote-lens-mcp

패키지 이름

이 패키지는 @bellx2/upnote-mcp로 배포 준비되어 있습니다.

요구 사항

  • macOS

  • 서버를 실행하는 머신에 bun 설치

  • UpNote 데스크톱 앱 설치

  • 기본 UpNote 데이터베이스 경로:

~/Library/Containers/com.getupnote.desktop/Data/Library/Application Support/UpNote/upnote.sqlite3

데이터베이스가 다른 위치에 있는 경우 UPNOTE_DB를 설정하세요.

설치

bun install

실행

bun run start

일반 사용 시에는 배포된 패키지를 권장합니다:

bunx @bellx2/upnote-mcp

또는:

npx @bellx2/upnote-mcp

npx 지원은 여전히 bun이 설치되어 있어야 합니다. 이 패키지는 bun:sqlite와 같은 Bun 전용 API를 사용하기 때문입니다.

파일 감시를 통한 개발 시:

bun run dev

환경 변수

  • UPNOTE_DB: upnote.sqlite3의 절대 경로

예시:

export UPNOTE_DB="$HOME/Library/Containers/com.getupnote.desktop/Data/Library/Application Support/UpNote/upnote.sqlite3"

권한

첫 실행 시 MCP 클라이언트에서 명령 실행 및 로컬 파일 접근에 대한 권한 프롬프트가 표시될 수 있습니다.

이는 서버가 다음을 수행하기 때문에 예상된 현상입니다:

  • bun을 통해 실행

  • 로컬 UpNote SQLite 데이터베이스를 읽음

  • open_note, open_notebook 또는 create_note를 위해 UpNote 앱을 열 수 있음

이 권한을 거부하면 노트 검색 및 검색이 작동하지 않습니다. 접근 권한을 부여한 후 Cursor 또는 Claude Desktop에서 MCP 서버를 다시 시작해야 할 수 있습니다.

MCP 설정 예시

권장: 배포된 패키지

Cursor

{
  "mcpServers": {
    "upnote": {
      "command": "bunx",
      "args": ["@bellx2/upnote-mcp"]
    }
  }
}

Claude Desktop

{
  "mcpServers": {
    "upnote": {
      "command": "bunx",
      "args": ["@bellx2/upnote-mcp"]
    }
  }
}

로컬 개발 체크아웃

Cursor

{
  "mcpServers": {
    "upnote": {
      "command": "/absolute/path/to/bun",
      "args": ["run", "/absolute/path/to/upnote-mcp/src/index.ts"]
    }
  }
}

Claude Desktop

{
  "mcpServers": {
    "upnote": {
      "command": "/absolute/path/to/bun",
      "args": ["run", "/absolute/path/to/upnote-mcp/src/index.ts"]
    }
  }
}

예시 워크플로

다음과 같은 프롬프트를 시도해 보세요:

  • "travel"을 UpNote에서 검색하고 첫 번째 결과를 보여줘

  • 가장 최근 UpNote 노트 10개를 보여줘

  • 이번 주 노트를 보여줘

  • 이번 달 노트를 보여줘

  • 이번 주 AI 노트를 찾아줘

  • 이번 달 meeting 태그가 붙은 노트를 찾아줘

  • 내 UpNote 태그를 나열하고 "meeting" 태그와 일치하는 노트를 열어줘

  • "launch"에 관한 노트를 찾아 요약하고 요약 내용으로 새 UpNote 노트를 생성해줘

  • 노트북을 나열하고 "Research"라는 이름의 노트북을 열어줘

도구 참조

search_notes

입력:

{
  "query": "travel",
  "limit": 5
}

list_recent_notes

입력:

{
  "limit": 10
}

list_notes_this_week

입력:

{
  "limit": 20
}

list_notes_this_month

입력:

{
  "limit": 20
}

find_notes

입력:

{
  "period": "this_week",
  "query": "AI",
  "limit": 10
}

또는:

{
  "period": "this_month",
  "tag": "meeting",
  "limit": 10
}

get_note

입력:

{
  "id": "019fd239-a98a-742b-b75b-cee66e7aa830"
}

open_note

입력:

{
  "id": "019fd239-a98a-742b-b75b-cee66e7aa830"
}

open_notebook

입력:

{
  "id": "3f03c742-1270-4d35-a5bc-c7d98580d6fc"
}

list_notebooks

입력:

{}

list_tags

입력:

{}

search_by_tag

입력:

{
  "tag": "meeting",
  "limit": 5
}

create_note

입력:

{
  "title": "Meeting Notes",
  "text": "# Summary\n\nDraft created by MCP.",
  "markdown": true,
  "newWindow": false
}

검증

bun run check
bun run smoke

일본어 README

이전 일본어 README는 README_ja.md에서 확인할 수 있습니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A hybrid MCP server that reads UpNote notes from the local SQLite database (returns actual text) and writes/opens notes via the upnote:// URL scheme, enabling search, retrieval, creation, and navigation of notes.
    10
    39 PyPI
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AI agents to read, write, and organize notes in a local-first, human-in-the-loop note-taking app.
    5 npm
    2
    MIT