learnlog-mcp
LLM 학습 세션의 프롬프트를 로컬에 저장하여 메타인지를 돕는 MCP 서버
만들게 된 이유
LLM으로 공부하면서 계속 드는 의문이 있었습니다.
"나 이거 정말 아는 건가?"
AI의 설명을 읽으면 이해가 되는 것 같습니다. 고개를 끄덕이고, "아 그렇구나" 하고 넘어갑니다. 그런데 며칠 뒤 팀원에게 같은 개념을 설명하려고 하면 입이 잘 떨어지지 않습니다. 분명 여러 번 봤는데, 막상 말로 하려니 추상적인 느낌만 남아있습니다.
그때 깨달았습니다. 이해한 것 같은 느낌과 진짜 이해는 다르다는 것을.
LLM과 대화하면서 "알게 됐다"고 착각하기 쉽습니다. 하지만 내가 무엇을 물어봤는지 돌아보면, 실제로 어디서 막혔는지가 보입니다. 질문의 흐름을 보면 내 이해의 빈틈이 드러납니다.
그래서 만들었습니다. 내가 한 질문들을 가볍게 저장해두고, 나중에 돌아볼 수 있는 도구. AI의 긴 답변이 아니라, 내 짧은 질문들만 모아두면 충분합니다.
저는 이 도구를 활용해서 DevOps와 오픈소스 생태계를 깊이 파보려 합니다.
왜 프롬프트를 저장하는가?
LLM으로 학습할 때 우리는 보통 출력값(AI의 답변)을 노션이나 메모장에 저장합니다. 하지만 생각해보면:
- 같은 프롬프트를 주면 비슷한 답변을 언제든 다시 얻을 수 있습니다
- 출력값은 길고 무겁지만, 프롬프트는 짧고 가볍습니다
- 내가 무엇을 물어봤는지가 곧 내가 무엇을 모르는지입니다
기존 방식: 세션 → AI 답변 복사 → 노션에 저장 → 나중에 찾기 어려움
learnlog 방식: 세션 → 프롬프트 자동 저장 → "오늘 뭐 공부했지?" → 즉시 확인
프롬프트를 저장하면 내가 어떤 부분에서 막혔는지, 무엇이 궁금했는지를 파악할 수 있습니다. 이것이 진짜 메타인지입니다.
핵심 철학
- 입력 > 출력: 출력값이 아닌 프롬프트를 저장합니다
- 경량화: 무거운 답변 대신 가벼운 질문만 보관합니다
- 메타인지: "내가 뭘 물어봤지?"를 통해 학습 현황을 파악합니다
- 세션 독립: 어떤 LLM, 어떤 세션에서든 학습 기록이 하나로 모입니다
설치
1. 저장소 클론 및 빌드
git clone https://github.com/YUJAEYUN/learnlog-mcp.git
cd learnlog-mcp
npm install
npm run build
2. Claude Code에 등록
claude mcp add learnlog-mcp node /path/to/learnlog-mcp/dist/index.js
3. Claude Desktop에 등록 (선택)
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"learnlog-mcp": {
"command": "node",
"args": ["/path/to/learnlog-mcp/dist/index.js"]
}
}
}
사용법
자동 저장
학습 관련 질문을 하면 AI가 자동으로 프롬프트를 저장합니다. 별도로 "저장해줘"라고 말할 필요 없습니다.
학습 기록 확인
"오늘 뭐 공부했지?"
"오늘 뭐 물어봤지?"
→ 오늘 저장된 모든 프롬프트를 시간순으로 보여줍니다
특정 날짜 조회
"2025-12-20에 뭐 공부했어?"
최근 학습 현황
"최근 일주일 학습 현황 보여줘"
→ 날짜별 질문 개수를 요약해서 보여줍니다
저장 위치
~/learnlog/
└── prompts/
├── 2025-12-20.json
├── 2025-12-21.json
└── 2025-12-22.json
각 파일에는 해당 날짜의 프롬프트가 질문 타입과 함께 저장됩니다:
{
"date": "2026-01-13",
"summary": {
"total": 5,
"byType": {
"fact": 2,
"principle": 1,
"application": 1,
"comparison": 0,
"connection": 1
},
"depthScore": 1.8
},
"prompts": [
{
"prompt": "N+1 쿼리 문제가 뭐야?",
"timestamp": "2026-01-13T10:30:00.000Z",
"type": "fact"
},
{
"prompt": "왜 N+1이 성능 문제를 일으키는 거야?",
"timestamp": "2026-01-13T10:35:00.000Z",
"type": "principle"
}
]
}
질문 타입
시스템은 자동으로 질문을 5가지 타입으로 분류합니다:
- fact (1점): 사실/정의 질문 - "N+1 쿼리가 뭐야?"
- principle (3점): 원리/이유 질문 - "왜 N+1이 문제가 돼?"
- application (2점): 적용/실습 질문 - "eager loading을 어떻게 구현해?"
- comparison (2점): 비교 질문 - "eager vs lazy loading 차이는?"
- connection (3점): 연결 질문 - "ORM과 쿼리 최적화는 어떻게 연관돼?"
학습 깊이 점수
각 질문 타입의 점수를 평균내어 학습 깊이를 측정합니다:
- 1.0-1.5: 표면적 학습 (주로 개념 익히기)
- 1.5-2.0: 보통 학습 (균형잡힌 접근)
- 2.0-2.5: 깊이 있는 학습 (원리 탐구)
- 2.5-3.0: 매우 깊은 학습 (개념 연결)
도구 목록
MCP Tools
| 도구 | 설명 |
|---|---|
save_prompt | 프롬프트 저장 (AI가 자동 호출) |
get_today_prompts | 오늘의 질문 목록 조회 |
get_prompts_by_date | 특정 날짜 질문 조회 |
get_recent_prompts | 최근 N일 학습 현황 |
get_learning_stats | 학습 통계 및 깊이 분석 |
Claude Skills
| Skill | 설명 | 사용법 |
|---|---|---|
/review | 학습 리뷰 및 메타인지 강화 | "오늘 공부 리뷰해줘" |
Claude Skills를 사용하려면
skills/폴더를 Claude Skills 디렉토리에 추가하세요.
활용 예시
1. 학습 통계 확인
사용자: 오늘 학습 통계 보여줘
AI: 📊 2026-01-13 학습 통계
총 질문 수: 27개
질문 타입 분포:
• fact: 8개 (30%)
• principle: 5개 (19%)
• application: 4개 (15%)
• comparison: 6개 (22%)
• connection: 4개 (15%)
학습 깊이 점수: 2.0/3.0 (깊이 있는 학습)
💡 Tip:
- fact: 사실/정의 질문 (1점)
- comparison: 비교 질문 (2점)
- application: 적용/실습 질문 (2점)
- principle: 원리/이유 질문 (3점)
- connection: 연결 질문 (3점)
2. 일일 학습 리뷰 (Skills)
사용자: 오늘 공부 리뷰해줘
AI: 📝 오늘의 학습 리뷰
[학습 통계 요약]
- 총 27개 질문
- 학습 깊이: 2.0/3.0 (깊이 있는 학습)
[질문 타입 분석]
오늘은 균형잡힌 학습이었습니다.
특히 비교 질문(22%)을 통해 개념 간 차이를 명확히 하려는 노력이 보입니다.
원리 질문도 적절히 섞여있어 단순 암기가 아닌 이해 중심 학습이었네요.
[학습 패턴]
VPC → NAT → IGW로 이어지는 깊은 탐구 체인이 있었습니다.
같은 주제를 여러 각도에서 질문하며 완전히 이해하려는 모습이 인상적입니다.
[다음 학습 제안]
1. 오늘 배운 AWS 네트워크를 직접 실습해보세요 (application 강화)
2. VPC와 온프레미스 네트워크의 연결 방식을 탐구해보세요 (connection 확장)
계속 이런 깊이로 학습하시면 탄탄한 기반이 만들어질 거예요! 👍
3. 질문 목록 확인
사용자: 오늘 뭐 공부했지?
AI: 📝 오늘의 질문 (5개)
1. [10:30] N+1 쿼리 문제가 뭐야?
2. [10:35] eager loading은 어떻게 구현해?
3. [14:20] 인덱스는 언제 걸어야해?
4. [14:45] 복합 인덱스 순서가 중요한 이유?
5. [16:00] EXPLAIN ANALYZE 결과 해석법?
→ 오늘 데이터베이스 최적화에 대해 공부했구나!
4. 학습 패턴 파악
사용자: 최근 일주일 현황 보여줘
AI: 📊 최근 7일간 학습 기록
• 2026-01-13: 27개 질문
• 2026-01-11: 13개 질문
• 2026-01-10: 12개 질문
• 2026-01-09: 7개 질문
• 2026-01-08: 19개 질문
총 78개 질문
5. 이전 학습 이어가기
사용자: 1월 8일에 뭐 물어봤었지?
AI: 📝 2026-01-08의 질문 (19개)
1. [09:00] Docker Compose 설정 방법
2. [09:15] Docker 네트워크 구조
...
→ 아, Docker 공부했었지. 이어서 질문해야겠다!
마이그레이션
기존 데이터를 새 스키마로 마이그레이션하려면:
npm run build
node dist/scripts/migrate.js
마이그레이션 후 백업 파일(.old)이 생성됩니다. 확인 후 삭제하세요:
rm ~/learnlog/prompts/*.old
License
ISC