Skip to main content
Glama
MOSW626

lig-room

by MOSW626

LIG 룸 예약 시스템

이 문서는 개발자·운영자용이다. 공간을 쓰는 이용자용 안내(예약하는 법, 승인 대기, 반복 예약, 계정·문의)는 서비스 안 /help에 있다 — 로그인 없이 열린다.

책상 4개(지정석 2 + 예약석 2) 공간의 예약·승인 시스템. 설계는 DESIGN.md, 배포는 DEPLOY.md.

운영 주소: https://lig-room.vercel.app (Vercel + Neon Postgres, 프로젝트 mosw626s-projects/lig-room) 로컬 개발도 같은 Neon DB를 사용한다(.env). 관리자 비밀번호 교체: npx tsx prisma/rotate-admin.ts

로컬 실행

npm install
npx prisma migrate dev   # 최초 1회 (시드 자동 실행)
npm run dev
  • 관리자 계정: admin@lig.local — 시드 기본 비밀번호는 배포 시 npx tsx prisma/rotate-admin.ts로 교체됐다. 현재 비밀번호는 관리자에게 문의.

  • 일반 사용자는 /signup에서 가입 → /admin 사용자 관리에서 등급 변경(MEMBER / SUPER(자동 승인) / ADMIN)

  • 비밀번호는 이 문서에 적지 않는다. 분실 시 처리는 아래 "흐름" 마지막 문단 참고

Related MCP server: Boma MCP

테스트

npm test   # node lib/mask-name.test.mjs — 예약자 이름 마스킹 규칙

이메일 알림 켜는 법

  1. Resend 가입 후 API 키 발급

  2. Vercel 환경변수에 RESEND_API_KEY 추가 (발신 주소를 바꾸려면 MAIL_FROM도)

  3. 키가 있으면 자동 활성화 — 없으면 인앱 알림만 동작하고 메일은 조용히 건너뛴다

AI 에이전트에게 예약 맡기기

Claude 같은 AI 에이전트가 대신 빈자리를 찾아 예약을 신청하고, 관리자라면 승인·거절까지 할 수 있다. 설계는 AGENT-API.md.

1. 키 발급

로그인 후 /account → "AI 에이전트 연결"에서 이름·스코프·만료(기본 90일)를 정해 발급한다. 평문 키(lig_sk_...)는 그 화면에서 딱 한 번만 보인다 — 서버에는 해시만 남아 다시 볼 수 없다.

스코프는 필요한 것만 고른다.

스코프

할 수 있는 일

reservations:read

책상·빈자리·내 예약 조회

reservations:write

예약 신청·취소 (본인 것만)

admin:approve

대기 목록 조회, 승인·거절·재배정 (ADMIN 계정만)

키에 없는 스코프의 기능은 에이전트에게 아예 보이지 않는다(읽기 전용 키로 붙으면 도구 목록에 예약 신청 도구가 나타나지 않는다). 관리자 도구는 admin:approve 스코프와 ADMIN 등급이 둘 다 있을 때만 보이고, 등급은 요청마다 DB에서 다시 확인한다.

2. Claude Code에 붙이기

claude mcp add --transport http lig-room https://lig-room.vercel.app/api/mcp \
  --header "Authorization: Bearer lig_sk_..."

붙었는지 확인은 claude mcp list, 떼어내려면 claude mcp remove lig-room.

3. Claude 데스크톱·웹에 붙이기 (커스텀 커넥터)

설정 → 커넥터 → 커넥터 추가 → 원격 MCP 서버 URL에 https://lig-room.vercel.app/api/mcp를 넣고, 헤더에 Authorization: Bearer lig_sk_...를 추가한다. OAuth가 아니라 헤더 방식이므로 로그인 창은 뜨지 않는다.

붙으면 이렇게 쓸 수 있다.

"다음 주 화요일 오후에 빈 책상 있어? 있으면 2시부터 4시까지 잡아줘."

4. 로컬 LLM·자작 스크립트용 (curl)

MCP는 JSON-RPC 2.0을 POST 하나로 주고받는다. SDK 없이도 붙는다.

KEY="lig_sk_..."

# 쓸 수 있는 도구 목록 (스코프에 따라 걸러져서 온다)
curl -s https://lig-room.vercel.app/api/mcp \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# 빈 시간 조회 (시각은 KST 오프셋 ISO 8601)
curl -s https://lig-room.vercel.app/api/mcp \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"find_available_slots",
       "arguments":{"from":"2026-08-25T00:00:00+09:00","to":"2026-08-26T00:00:00+09:00"}}}'

# 예약 신청 — 응답의 status·needsApproval을 꼭 확인할 것
curl -s https://lig-room.vercel.app/api/mcp \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"create_reservation",
       "arguments":{"deskId":"<책상 id>","startsAt":"2026-08-25T14:00:00+09:00","endsAt":"2026-08-25T16:00:00+09:00"}}}'

MCP가 부담스러우면 같은 일을 하는 REST API(/api/v1/*)도 있다.

curl -s https://lig-room.vercel.app/api/v1/me -H "Authorization: Bearer $KEY"

AI가 읽을 안내는 /llms.txt, 스펙은 /api/v1/openapi.json에 있다(둘 다 로그인 없이 열린다).

주의사항

  • 키는 비밀번호와 같다. 채팅·이슈·저장소에 붙여넣지 말고, 남에게 공유하지 말 것. 키를 가진 사람은 당신 이름으로 예약할 수 있다. 새어 나갔다 싶으면 /account에서 즉시 폐기하고 새로 발급하면 된다(마지막 사용 시각도 함께 보인다).

  • 에이전트가 한 일도 그대로 기록된다. 감사 로그에 (API: 키이름)으로 남아 웹에서 한 것과 구분되고, 신청·승인·거절·재배정은 당사자에게 인앱·메일 알림이 똑같이 나간다. 에이전트가 조용히 처리하는 일은 없다.

  • 신청은 확정이 아니다. 일반 회원의 신청은 관리자 승인 대기(PENDING) 상태다. 에이전트가 "예약했다"고만 말하면 대기 중인지 확정인지 다시 물어보자(도구 설명에 그대로 보고하라고 적어 두었다).

  • 승인은 사람이 되돌릴 수 있다. 에이전트가 승인한 예약도 관리자가 웹 /admin에서 취소할 수 있다. 거절만은 되돌릴 수 없어 신청자가 새로 신청해야 한다.

  • 에이전트가 못 하는 일: 사용자 등급 변경, 임시 비밀번호 발급, 책상 배치 변경, 계정 삭제. 계정 통제권은 API로 넘기지 않는다.

  • 레이트 리밋은 키당 분당 60회(쓰기 10회)다. 초과하면 429가 오고, 언제 다시 시도할지 응답에 적혀 있다.

흐름

가입/로그인 → /reserve에서 예약석·시간 신청(PENDING) → 관리자에게 알림 → /admin에서 승인·거절·재배정 → 신청자에게 알림 → 대시보드에서 본인 예약 확인·취소

비밀번호 분실 시: 관리자가 /admin 사용자 관리에서 "임시 비밀번호 발급" → 화면에 1회 표시되는 평문을 본인에게 직접 전달 → 본인은 그 값으로 로그인하면 /account/new-password로 강제 이동되어 새 비밀번호를 설정해야 다른 기능을 쓸 수 있다.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • AI-native scheduling: check availability, book meetings, cancel and reschedule via MCP

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

  • An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MOSW626/lig-room'

If you have feedback or need assistance with the MCP directory API, please join our Discord server