ku-portal
고려대학교 KUPID 포털 조회. 공지사항, 학사일정, 장학공지, 도서관 좌석, 시간표, 수강과목, LMS 연동. (SonAIengine/ku-portal-mcp 기반)
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-ku-portal
Repository
Skill path: skills/garibong-labs/ku-portal
고려대학교 KUPID 포털 조회. 공지사항, 학사일정, 장학공지, 도서관 좌석, 시간표, 수강과목, LMS 연동. (SonAIengine/ku-portal-mcp 기반)
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack, Integration.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install ku-portal into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding ku-portal to shared team environments
- Use ku-portal for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: ku-portal
description: 고려대학교 KUPID 포털 조회. 공지사항, 학사일정, 장학공지, 도서관 좌석, 시간표, 수강과목, LMS 연동. (SonAIengine/ku-portal-mcp 기반)
metadata:
openclaw:
min: "2026.2.0"
requires:
bins: ["python3"]
config:
- "~/.config/ku-portal/credentials.json"
- "~/.cache/ku-portal-mcp/session.json"
- "~/.cache/ku-portal-mcp/lms_session.json"
- "~/.cache/ku-portal-mcp/server.log"
- "~/Downloads/ku_timetable.ics"
---
# KU Portal - 고려대학교 KUPID 포털 스킬
고려대학교 KUPID 포털, 도서관, LMS 정보를 조회하는 OpenClaw 스킬.
## 로컬 파일 접근
이 스킬은 로그인/캐시/내보내기 기능 때문에 아래 경로를 사용합니다.
- 읽기: `~/.config/ku-portal/credentials.json` — KUPID 자격 증명
- 쓰기/읽기: `~/.cache/ku-portal-mcp/session.json` — 포털 세션 캐시
- 쓰기/읽기: `~/.cache/ku-portal-mcp/lms_session.json` — LMS 세션 캐시
- 쓰기: `~/.cache/ku-portal-mcp/server.log` — MCP 서버 로그
- 쓰기: `~/Downloads/ku_timetable.ics` — 시간표 ICS 내보내기 (`timetable --ics` 사용 시)
자격 증명 파일은 스킬 디렉터리 밖(`~/.config`)에 두며, git/ClawHub 배포 대상에 포함되지 않습니다.
## 사용법
모든 명령은 스킬 디렉터리 기준으로 실행하거나, OpenClaw가 제공하는 `{baseDir}`를 사용하세요.
```bash
source {baseDir}/.venv/bin/activate
python3 {baseDir}/ku_query.py <command> [options]
```
또는:
```bash
cd <skill-dir>
source .venv/bin/activate
python3 ku_query.py <command> [options]
```
## 명령어
### 로그인 불필요
- `library` — 전체 도서관 좌석 현황
- `library --name 중앙도서관` — 특정 도서관 좌석
- `menu` — 오늘 전체 학식 메뉴 (koreapas.com 기반)
- `menu --restaurant 교직원식당` — 특정 식당만 필터
- `menu --date 2026-03-10` — 특정 날짜 메뉴
### 로그인 필요 (KUPID SSO)
자격 증명: `~/.config/ku-portal/credentials.json`
```json
{"id": "your-kupid-id", "pw": "your-kupid-password"}
```
- `notices [--limit 10]` — 공지사항 목록
- `notices --detail <message_id>` — 공지사항 상세
- `schedules [--limit 10]` — 학사일정
- `scholarships [--limit 10]` — 장학공지
- `search <keyword>` — 공지/일정/장학 통합 검색
- `timetable [--day 월]` — 시간표 (요일 지정 가능)
- `timetable --ics` — ICS 파일 생성
- `courses --college 정보대학 --dept 컴퓨터학과` — 개설과목 검색
- `syllabus <course_id>` — 강의계획서
- `mycourses` — 내 수강신청 내역
### LMS (Canvas)
- `lms courses` — LMS 수강과목
- `lms assignments <course_id>` — 과제 목록
- `lms modules <course_id>` — 강의자료
- `lms todo` — 할 일 목록
- `lms dashboard` — 대시보드
- `lms grades <course_id>` — 성적
- `lms submissions <course_id>` — 과제 제출 현황
- `lms quizzes <course_id>` — 퀴즈 목록
## 출처
- 원본: https://github.com/SonAIengine/ku-portal-mcp
- 포크: https://github.com/garibong-labs/ku-portal-mcp
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### README.md
```markdown
# KU Portal — 고려대학교 KUPID 포털 스킬
고려대학교 KUPID 포털, 도서관, Canvas LMS 정보를 OpenClaw에서 조회하는 스킬.
> 원본: [SonAIengine/ku-portal-mcp](https://github.com/SonAIengine/ku-portal-mcp) 패키지를 Python 라이브러리로 사용하는 OpenClaw CLI 래퍼.
## 아키텍처 (ku-portal-mcp와의 관계)
- **ku-portal-mcp** (upstream): MCP 서버 프로젝트이자 PyPI 패키지.
- **ku-portal 스킬** (이 저장소): `ku_query.py`가 ku-portal-mcp의 내부 모듈(`auth`, `courses`, `library` 등)을 **Python 라이브러리로 직접 import**하여 사용. MCP 프로토콜은 사용하지 않음.
- upstream 패키지 업데이트(`pip install --upgrade ku-portal-mcp`)로 신기능이 반영됨.
- fork 저장소 ([garibong-labs/ku-portal-mcp](https://github.com/garibong-labs/ku-portal-mcp))는 upstream 추적/참조용.
## 기능
| 기능 | 로그인 | 설명 |
|------|--------|------|
| 도서관 좌석 | 불필요 | 6개 도서관 53개 열람실 실시간 좌석 현황 |
| 공지사항 | SSO | 목록 조회 + 상세 + 키워드 검색 |
| 학사일정 | SSO | 학사일정 목록 + 상세 |
| 장학공지 | SSO | 장학공지 목록 |
| 시간표 | SSO | 주간 시간표 + ICS 내보내기 |
| 수강과목 | SSO | 수강신청 내역, 개설과목 검색, 강의계획서 |
| LMS | KSSO | 과제, 강의자료, 성적, 퀴즈, 대시보드 |
## 설치
```bash
# 1. 스킬 설치
clawhub install garibong-labs/ku-portal
# 2. 자동 설치 (venv 생성 + 패키지 설치 + 안내)
bash scripts/setup.sh
```
또는 수동 설치:
```bash
# 스킬 디렉터리로 이동
cd <skill-dir>
# Python venv 생성 + 패키지 설치
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install ku-portal-mcp
# 자격 증명 설정 (로그인 기능 사용 시)
mkdir -p ~/.config/ku-portal
cat > ~/.config/ku-portal/credentials.json << 'EOF'
{"id": "your-kupid-id", "pw": "your-kupid-password"}
EOF
chmod 600 ~/.config/ku-portal/credentials.json
```
OpenClaw 스킬 문서 안에서는 `{baseDir}`를 사용할 수 있습니다.
```bash
. {baseDir}/.venv/bin/activate
python3 {baseDir}/ku_query.py lms courses
```
## 사용법
```bash
# 먼저 스킬 디렉터리로 이동
cd <skill-dir>
. .venv/bin/activate
# 도서관 좌석 (로그인 불필요)
python3 ku_query.py library
python3 ku_query.py library --name 중앙도서관
# 공지사항
python3 ku_query.py notices --limit 10
python3 ku_query.py notices --detail <message_id>
# 학사일정 / 장학공지
python3 ku_query.py schedules
python3 ku_query.py scholarships
# 통합 검색
python3 ku_query.py search 수강신청
# 시간표
python3 ku_query.py timetable
python3 ku_query.py timetable --day 월
python3 ku_query.py timetable --ics
# 수강과목
python3 ku_query.py mycourses
python3 ku_query.py courses --college 정보대학 --dept 컴퓨터학과
python3 ku_query.py syllabus COSE101
# LMS
python3 ku_query.py lms courses
python3 ku_query.py lms assignments <course_id>
python3 ku_query.py lms todo
python3 ku_query.py lms dashboard
python3 ku_query.py lms grades <course_id>
```
## 로컬 파일 접근 / 보안
- 자격 증명 읽기: `~/.config/ku-portal/credentials.json` (chmod 600 권장)
- 포털 세션 캐시: `~/.cache/ku-portal-mcp/session.json` (30분 TTL)
- LMS 세션 캐시: `~/.cache/ku-portal-mcp/lms_session.json` (약 25분 TTL)
- 서버 로그: `~/.cache/ku-portal-mcp/server.log`
- ICS 내보내기: `~/Downloads/ku_timetable.ics` (`timetable --ics` 사용 시 생성)
- 자격 증명은 스킬 디렉터리 밖이라 git/ClawHub 번들에 포함되지 않음
## 라이선스
MIT — 원본 [ku-portal-mcp](https://github.com/SonAIengine/ku-portal-mcp) MIT 라이선스 준수.
## 문의
[email protected]
```
### _meta.json
```json
{
"owner": "garibong-labs",
"slug": "ku-portal",
"displayName": "KU Portal",
"latest": {
"version": "0.3.0",
"publishedAt": 1773129713895,
"commit": "https://github.com/openclaw/skills/commit/045047fc7afdebf357b30e0c5813e7faa8c32234"
},
"history": [
{
"version": "0.2.2",
"publishedAt": 1772471389800,
"commit": "https://github.com/openclaw/skills/commit/8f86587d60b265a663da194af7e011ca84425974"
}
]
}
```
### scripts/setup.sh
```bash
#!/usr/bin/env bash
# ku-portal 스킬 자동 설치 스크립트
set -e
SKILL_DIR="$(cd "$(dirname "$0")/.." && pwd)"
VENV_DIR="$SKILL_DIR/.venv"
PKG="ku-portal-mcp"
echo "📦 ku-portal 스킬 설치"
echo " 스킬 경로: $SKILL_DIR"
# 1) venv 생성
if [ ! -d "$VENV_DIR" ]; then
echo "🔧 가상환경 생성 중..."
python3 -m venv "$VENV_DIR"
else
echo "✅ 가상환경 이미 존재"
fi
# 2) pip 업그레이드 + 패키지 설치
echo "📥 $PKG 설치/업데이트 중..."
"$VENV_DIR/bin/pip" install --upgrade pip -q
"$VENV_DIR/bin/pip" install --upgrade "$PKG" -q
# 3) 버전 확인
VERSION=$("$VENV_DIR/bin/python3" -c "import ku_portal_mcp; print(ku_portal_mcp.__version__)" 2>/dev/null || echo "unknown")
echo "✅ $PKG $VERSION 설치 완료"
# 4) 자격 증명 안내
CREDS="$HOME/.config/ku-portal/credentials.json"
if [ ! -f "$CREDS" ]; then
echo ""
echo "⚠️ KUPID 자격 증명 파일이 없습니다."
echo " 도서관/메뉴 조회는 바로 가능하지만, 로그인 필요 기능은 아래 파일을 먼저 만들어주세요:"
echo ""
echo " mkdir -p ~/.config/ku-portal"
echo ' echo '\''{"id": "학번", "pw": "비밀번호"}'\'' > ~/.config/ku-portal/credentials.json'
echo " chmod 600 ~/.config/ku-portal/credentials.json"
else
echo "✅ 자격 증명 파일 확인됨"
fi
echo ""
echo "🎉 설치 완료. 사용법:"
echo " source $VENV_DIR/bin/activate"
echo " python3 $SKILL_DIR/ku_query.py library"
```