From 2be58a7e65f4959de254a46239464cad4cd17a6e Mon Sep 17 00:00:00 2001 From: kaffa Date: Wed, 25 Mar 2026 08:52:16 -0700 Subject: [PATCH] =?UTF-8?q?claude-code-setup:=20MCP/Vault/OpenMemory=20?= =?UTF-8?q?=EC=B5=9C=EC=8B=A0=ED=99=94,=20Lima=20VM=20=EC=A0=9C=EA=B1=B0,?= =?UTF-8?q?=20=ED=94=8C=EB=9E=AB=ED=8F=BC=20Linux=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev/claude-code-setup.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/dev/claude-code-setup.md b/dev/claude-code-setup.md index 104054d..54e4921 100644 --- a/dev/claude-code-setup.md +++ b/dev/claude-code-setup.md @@ -1,19 +1,20 @@ --- title: Claude Code 설정 및 인스트럭션 -updated: 2026-03-14 +updated: 2026-03-25 tags: [claude-code, setup, memory, openmemory] --- ## 기본 설정 - 모르거나 애매한 경우 항상 최신 문서를 찾아 참고할 것 -- incus remote로 jp1 / kr1 / kr2 의 api를 이용중이고 project를 사용중 +- incus remote로 jp1 / kr1 / kr2 / hp2 의 api를 이용중이고 project를 사용중 - docker와 ghcr 리모트가 이미 등록되어 있어 OCI 사용 가능 ## 터미널 환경 - Fish shell (명령어 문법 주의) - ssh=tssh alias +- 플랫폼: Linux (Debian 13) ## MCP 설정 @@ -24,16 +25,15 @@ tags: [claude-code, setup, memory, openmemory] - 사용자 설정: `~/.claude/settings.json` - CLI 확인: `claude mcp list`, `claude mcp get <서버이름>` -### 등록된 MCP 서버 (2026-03-14 기준) +### 등록된 MCP 서버 (2026-03-25 기준) | 서버 | 타입 | 엔드포인트 | 용도 | |------|------|-----------|------| -| [[vault]] | HTTP | `hcv.inouter.com/mcp` | HashiCorp Vault 시크릿 관리 | | incus | npx | `@ironclads/incus-mcp@latest` | Incus 인스턴스 관리 | | kubernetes | npx | `mcp-server-kubernetes` | K8s 클러스터 관리 | | nocodb | mcp-remote | `nocodb.inouter.com/mcp` | NocoDB 데이터베이스 | | bunnycdn | HTTP | `bunnycdn-mcp.inouter.com/mcp` | BunnyCDN 관리 | -| openmemory | SSE | `100.115.154.78:8765` | 장기기억 (OpenMemory) | +| openmemory | SSE | K3s openmemory ns | 장기기억 시멘틱 검색 | | aws-core | uvx | `awslabs.core-mcp-server@latest` | AWS 리소스 관리 | | context7 | npx | `@upstash/context7-mcp` | 라이브러리 문서 검색 | | Google Calendar | claude.ai | `gcal.mcp.claude.com` | 구글 캘린더 | @@ -42,7 +42,9 @@ tags: [claude-code, setup, memory, openmemory] ### Vault MCP 상세 -- 엔드포인트: `https://hcv.inouter.com/mcp` +- 위치: jp1 Incus default 프로젝트 vault 컨테이너 +- vault-mcp-server v0.2.0 (Go, systemd, port 8080) +- 엔드포인트: `http://10.253.101.58:8080/mcp` - 마운트된 엔진: `secret/` (KV), `ssh-client-signer/` (SSH) - 주요 용도: 시크릿 관리, PKI 인증서 발급, SSH 서명 @@ -57,12 +59,12 @@ Obsidian + [[openmemory|OpenMemory]]를 조합한 2계층 장기기억 시스템 │ 장기기억 시스템 │ ├──────────────────┬──────────────────────────┤ │ Obsidian │ OpenMemory (Mem0) │ -│ ~/obsidian │ MCP @ :8765 │ +│ ~/obsidian │ K3s openmemory ns │ ├──────────────────┼──────────────────────────┤ -│ 구조화된 지식 정본 │ 대화형 시맨틱 메모리 │ +│ 구조화된 지식 정본 │ 시멘틱 검색용 인덱스 │ │ 마크다운 + git │ 벡터 DB (Qdrant) │ │ 사람 + AI 소비 │ AI 전용 소비 │ -│ 키워드/경로 검색 │ 시맨틱 유사도 검색 │ +│ 키워드/경로 검색 │ 시멘틱 유사도 검색 │ │ Gitea 동기화 │ 로컬 전용 │ └──────────────────┴──────────────────────────┘ ``` @@ -86,22 +88,25 @@ Gitea 저장소: `gitea.anvil.it.com/kaffa/obsidian` - git workflow: `pull --rebase` → `add` → `commit` → `push` - conflict 시 자동 해결 금지 -### OpenMemory (2계층: 시맨틱 메모리) +### OpenMemory (2계층: 시멘틱 메모리) -엔드포인트: `100.115.154.78:8765` (MCP SSE) +K3s openmemory 네임스페이스 (MCP SSE) + +**용도**: Obsidian 정본의 시멘틱 검색 인덱스. 키워드/개념을 벡터로 저장하여 관련 Obsidian 파일을 빠르게 찾는 역할. **저장 대상**: 결정사항과 이유, 사용자 선호도, 시스템 quirks, 프로젝트 맥락, 패턴 **작성 규칙**: - 한 메모리 = 하나의 핵심 정보 (검색 정확도 향상) - 컨텍스트 포함: "X를 했다" → "Y 때문에 X를 했다" -- 날짜 중요 시 절대 날짜 포함 (예: "2026-03-14 기준") +- 날짜 중요 시 절대 날짜 포함 (예: "2026-03-25 기준") +- Obsidian 파일 경로 포함 (시멘틱 검색 → 정본 참조 흐름) - 저장 전 `search_memory`로 중복 확인 ### 읽기 우선순위 1. **Obsidian** — 인프라/서비스/제품 정보 (구조화된 정본) -2. **OpenMemory** — 결정 맥락, 선호도, 과거 인사이트 (시맨틱 검색) +2. **OpenMemory** — 결정 맥락, 선호도, 과거 인사이트 (시멘틱 검색) 3. **HashiCorp Vault** — 시크릿, 인증 정보 ### 세션 시작 시 @@ -121,6 +126,5 @@ Gitea 저장소: `gitea.anvil.it.com/kaffa/obsidian` ## 주의사항 - 로컬 명령은 **항상 로컬 머신에서 실행** — 명시적 요청 없으면 원격 실행 금지 -- 컨테이너 런타임 (Mac): Docker CLI + Lima VM (context: lima-docker) - 인프라 상태 확인 시 K8s + Incus 양쪽 모두 확인 - 서비스 위치, Incus 프로젝트, 상세 설정은 [[infra-hosts]] 참조