Skip to content

sync_pull ​

✅ 라이브 (서버)

vault_* / sync_* 도구는 api.ainote.dev 서버에서 동작합니다 — JSON-RPC POST /api/mcp 또는 @ainote/sdk (ai.vault.* / ai.sync.*)로 호출하세요. (일부 vault 도구는 연결된 git-backed vault가 필요. 참고: @ainote/mcp npm 패키지 구버전엔 번들이 안 됐을 수 있으니 직접 JSON-RPC 또는 SDK 사용 권장.)

ainote hub → 로컬. 파일 내용을 받는다. 응답은 페이지 단위다(기본 25개, 최대 100개).

시그니처 ​

특정 파일 여러 개 (paths) ​

json
{
  "name": "sync_pull",
  "arguments": {
    "paths": ["global/CLAUDE.md", "global/MEMORY.md"]
  }
}

한 번에 최대 100개. 증분 동기화에서 바뀐 파일만 받을 때 쓴다. 없는 경로는 응답의 missing 에 담긴다.

디렉터리 또는 단일 파일 (path) ​

json
{
  "name": "sync_pull",
  "arguments": {
    "path": "global"
  }
}

global 은 그 아래 전체, global/CLAUDE.md 는 그 파일 하나다. 끝 슬래시(global/)는 무시한다.

변경분 (since) ​

json
{
  "name": "sync_pull",
  "arguments": {
    "since": "2026-05-06T00:00:00Z"
  }
}
파라미터타입설명
pathsstring[]정확한 파일 경로 최대 100개. path·since·cursor 와 함께 쓸 수 없다
pathstring디렉터리(하위 전체) 또는 정확한 파일 경로
sinceISO 8601이 시각 이후(초과) 변경된 파일만. 삭제는 알려주지 않는다
limitinteger페이지 크기. 기본 25, 최대 100
cursorstring직전 응답의 next_cursor

응답 ​

json
{
  "files": [
    {
      "path": "global/CLAUDE.md",
      "content": "<file content>",
      "updated_at": "2026-05-07T14:02:30Z",
      "git_sha": "def456..."
    }
  ],
  "pulled_at": "2026-05-07T14:05:00Z",
  "count": 1,
  "has_more": false,
  "next_cursor": null
}
  • paths 로 부르면 missing(없는 경로 목록)이 항상 붙는다. 없는 경로는 삭제된 파일이다.
  • git_sha 는 내용 자체의 SHA1 이다(sha1(content)). git blob 해시(blob <len>\0 접두)와 다르니 로컬 비교도 sha1(content) 로 한다.
  • has_more 가 true 면 next_cursor 를 cursor 로 넘겨 다음 페이지를 받는다.
  • 모르는 인자는 무시하고, 응답 텍스트와 warnings 에 그 사실을 적는다.

증분 동기화 권장 패턴 ​

1. sync_list {limit: 1000}       → 경로·git_sha 목록(내용 없음, 페이지 몇 개)
2. 로컬 sha1(content) 와 비교    → 바뀐 경로·새 경로·지울 경로
3. sync_pull {paths: [...]}      → 바뀐 것만 100개씩
4. 목록에 없는 로컬 파일         → 원격에서 삭제된 것

since 만으로는 삭제를 알 수 없다. 전체 내용을 매번 받는 방식은 vault 가 커질수록 호출 수와 전송량이 그대로 늘어난다.

에러 ​

코드메시지
-32602since 형식 오류
-32602paths 가 배열이 아님 · 비었음 · 100개 초과 · path/since/cursor 와 함께 씀

Claude ​

어제 이후 변경된 거 다 받아
bash
ainote sync_pull '{"since":"2026-05-06T00:00:00Z"}'

다음 ​