dorms-mcp
# dorms-mcp
도름스([dorms.school](https://dorms.school))를 내 AI 도구(클로드 코드, 커서 등)에서 바로 쓰게 해주는 MCP 서버예요.
앱을 고치고 나서 도름스에 들어가 소식을 따로 쓰지 않아도, 코딩하던 자리에서 그대로 업데이트 소식을 올리고 피드백을 확인할 수 있어요.
## 무엇을 할 수 있나요
| 도구 | 하는 일 |
|---|---|
| `list_my_apps` | 내가 도름스에 올린 앱(공동 게시 포함) 목록과 받은 도름·댓글 수 확인 |
| `post_app_update` | 앱 업데이트 소식 올리기. 그 앱에 도름을 준 선생님들에게 알림이 가요 |
| `get_app_feedback` | 앱에 달린 최근 댓글 20개와 받은 도름 수 가져오기 |
## 준비물: API 토큰
1. [dorms.school](https://dorms.school)에 로그인해요.
2. 내 프로필에서 **프로필 편집**을 열어요.
3. 아래쪽 **외부 연동 (API 토큰)** 에서 이름을 붙여 **토큰 만들기**를 눌러요.
4. 화면에 한 번만 보이는 `dorms_pat_...` 토큰을 복사해 두세요. (다시 볼 수 없어요. 잃어버리면 새로 만들면 돼요.)
토큰은 비밀번호처럼 다뤄 주세요. 코드나 공개 저장소에 넣지 마세요.
## 설치
### 클로드 코드 (Claude Code)
터미널에서 한 줄이면 끝나요:
```bash
claude mcp add dorms -e DORMS_API_TOKEN=dorms_pat_여기에내토큰 -- npx -y dorms-mcp
```
### 커서 (Cursor)
`~/.cursor/mcp.json` (또는 프로젝트의 `.cursor/mcp.json`)에 추가해요:
```json
{
"mcpServers": {
"dorms": {
"command": "npx",
"args": ["-y", "dorms-mcp"],
"env": {
"DORMS_API_TOKEN": "dorms_pat_여기에내토큰"
}
}
}
}
```
### 클로드 데스크톱 (Claude Desktop)
`claude_desktop_config.json`의 `mcpServers`에 위 커서 설정과 같은 블록을 넣으면 돼요.
## 이렇게 써요
설치 후 AI에게 말로 시키면 돼요:
- "도름스에 올린 내 앱 목록 보여줘"
- "타이머 앱에 업데이트 소식 올려줘. 이번에 다크 모드를 추가했어"
- "내 앱에 어떤 피드백이 달렸는지 확인해줘"
## 환경변수
| 변수 | 설명 |
|---|---|
| `DORMS_API_TOKEN` | 필수. 도름스 프로필 편집 > 외부 연동에서 발급한 `dorms_pat_...` 토큰 |
| `DORMS_API_BASE` | 선택. 기본값 `https://dorms.school` |
## 점검
```bash
npm run selftest
```
서버가 뜨고 도구 3개가 보이면 `SELFTEST OK`가 나와요.
## 라이선스
MIT
TDQS
Scored across 3 tools
Each tool has a distinct job: list_my_apps discovers apps and UUIDs, get_app_feedback retrieves detailed comments for one app, and post_app_update is the only write action. Though list_my_apps and get_app_feedback both report counts, their purposes are clearly separated by summary versus detail.
All tool names follow the same lowercase snake_case verb_noun pattern: list_my_apps, get_app_feedback, post_app_update. The verbs are consistent and the resource nouns map directly to what each tool does.
Three tools is well-scoped for a server whose purpose is the app feedback/update loop. Each tool earns its place and there is no redundant tool padding the surface.
The core workflow is covered end to end: list apps, retrieve feedback, publish an update. Minor gaps exist such as no pagination for older comments or no way to reply to feedback, but they do not break the main use case.