Sponsored by Deepsite.site

Nworks

Created By
yjcho93178 days ago
NAVER WORKS CLI + MCP server. 26 tools for messages, calendar, drive, mail, tasks, and boards. AI agents can manage NAVER WORKS directly.
Overview

nworks

npm version license npm downloads

nworks demo

First full MCP server for NAVER WORKS. NAVER WORKS API를 스크립트나 AI 에이전트에서 쓰기 쉽게 만든 CLI + MCP 서버입니다.

Automate messages, calendar, drive, mail, tasks, and boards — from CLI or AI agents.

Quickstart

npm install -g nworks
nworks login --user
nworks calendar list

AI 에이전트가 실제로 이렇게 씁니다

User: 오늘 일정 알려줘

Claude → nworks_calendar_list
  → 3건: 스탠드업(10:00), 점심미팅(12:00), 코드리뷰(15:00)

User: 팀 채널에 배포 완료 메시지 보내줘

Claude → nworks_message_send
  { "channel": "C001", "text": "v1.2.0 배포 완료" }
  → 메시지가 전송되었습니다

Install

npx nworks          # 바로 실행
npm install -g nworks  # 글로벌 설치

로그인

# User OAuth (캘린더, 드라이브, 메일, 할 일, 게시판)
nworks login --user --scope "calendar,calendar.read,file,file.read,mail,mail.read,task,task.read,board,board.read,user.read"

# 봇 메시지 전송이 필요한 경우 (Service Account)
nworks login

# 인증 확인
nworks whoami

# 로그아웃
nworks logout

nworks login --user는 CLIENT_ID + CLIENT_SECRET만 있으면 됩니다. 환경변수나 기존 설정에 이미 있는 값은 다시 물어보지 않습니다.

Developer Console 설정: User OAuth를 사용하려면 Developer Console에서 Redirect URL에 http://localhost:9876/callback을 등록해야 합니다.


MCP 서버 (AI 에이전트 연동)

Claude Desktop, Cursor 등에서 MCP server로 NAVER WORKS 26개 도구를 사용할 수 있습니다. 메시지 전송, 일정 관리, 파일 업로드, 메일, 할 일, 게시판까지 — AI 에이전트가 NAVER WORKS 워크플로우를 자동화합니다.

설정

먼저 로그인합니다:

nworks login --user --scope "calendar,calendar.read,file,file.read,mail,mail.read,task,task.read,board,board.read,user.read"

그리고 MCP 설정에 추가합니다 (~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "nworks": {
      "command": "nworks",
      "args": ["mcp"]
    }
  }
}

끝입니다. 인증 한 번으로 26개 도구 모두 사용 가능 — 별도 env 설정이 필요 없습니다.

MCP에서 AI 에이전트가 직접 설정하기: CLI 로그인 없이도 AI 에이전트가 nworks_setupnworks_login_user 순서로 호출하면 브라우저 로그인만으로 전체 기능을 사용할 수 있습니다.

MCP 도구 목록 (26개)

도구설명필요 인증
설정/인증
nworks_setupAPI 인증 정보 설정 (Client ID/Secret 등)
nworks_login_userUser OAuth 브라우저 로그인 (전체 scope 자동 포함)
nworks_logout인증 정보 및 토큰 삭제
nworks_whoami인증 상태 확인
nworks_doctor연결 상태 진단 (인증, 토큰, API 점검)
메시지
nworks_message_send사용자/채널에 메시지 전송Service Account
nworks_message_members채널 구성원 조회Service Account
nworks_directory_members조직 구성원 조회Service Account
캘린더
nworks_calendar_list캘린더 일정 조회User OAuth (calendar.read)
nworks_calendar_create캘린더 일정 생성User OAuth (calendar + calendar.read)
nworks_calendar_update캘린더 일정 수정User OAuth (calendar + calendar.read)
nworks_calendar_delete캘린더 일정 삭제User OAuth (calendar + calendar.read)
드라이브
nworks_drive_list드라이브 파일/폴더 목록User OAuth (file.read)
nworks_drive_upload드라이브 파일 업로드User OAuth (file)
nworks_drive_download드라이브 파일 다운로드 (5MB 초과 시 로컬 저장)User OAuth (file.read)
메일
nworks_mail_send메일 전송User OAuth (mail)
nworks_mail_list메일 목록 조회User OAuth (mail.read)
nworks_mail_read메일 상세 조회User OAuth (mail.read)
할 일
nworks_task_list할 일 목록 조회User OAuth (task.read)
nworks_task_create할 일 생성User OAuth (task + user.read)
nworks_task_update할 일 수정/완료User OAuth (task + user.read)
nworks_task_delete할 일 삭제User OAuth (task + user.read)
게시판
nworks_board_list게시판 목록 조회User OAuth (board.read)
nworks_board_posts게시판 글 목록 조회User OAuth (board.read)
nworks_board_read게시판 글 상세 조회User OAuth (board.read)
nworks_board_create게시판 글 작성User OAuth (board)

AI 에이전트 사용 예시

User: 내일 오후 2시에 회의 잡고, 팀 채널에 알려줘

Claude → nworks_calendar_create
  { "summary": "회의", "start": "2026-03-15T14:00:00", "end": "2026-03-15T15:00:00" }
  → 일정이 생성되었습니다

Claude → nworks_message_send
  { "channel": "C001", "text": "내일 14:00 회의가 잡혔습니다" }
  → 메시지가 전송되었습니다

CLI 사용법

모든 명령어에 --json 지원 (파이프, 스크립트, 에이전트 파싱 용이). message send, mail send, drive upload--dry-run으로 실제 전송 없이 테스트 가능.

메시지 (Bot API)

# 사용자에게 텍스트 메시지
nworks message send --to <userId> --text "메시지"

# 채널에 텍스트 메시지
nworks message send --channel <channelId> --text "메시지"

# 버튼 메시지
nworks message send --to <userId> --type button --text "PR 리뷰 요청" \
  --actions '[{"type":"message","label":"승인","postback":"approve"}]'

# 리스트 메시지
nworks message send --to <userId> --type list --text "오늘의 할 일" \
  --elements '[{"title":"코드 리뷰","subtitle":"#382 PR"}]'

# 채널 구성원 조회
nworks message members --channel <channelId>

조직 (Directory API)

nworks directory members   # 조직 구성원 목록

캘린더 (User OAuth)

# 오늘 일정 조회
nworks calendar list

# 기간 지정
nworks calendar list --from "2026-03-14T00:00:00+09:00" --until "2026-03-14T23:59:59+09:00"

# 일정 생성
nworks calendar create --title "회의" --start "2026-03-14T14:00+09:00" --end "2026-03-14T15:00+09:00"

# 장소/설명 포함
nworks calendar create --title "점심 미팅" --start "2026-03-14T12:00+09:00" --end "2026-03-14T13:00+09:00" \
  --location "강남 식당" --description "분기 리뷰"

# 참석자 지정 + 알림
nworks calendar create --title "팀 회의" --start "2026-03-14T10:00+09:00" --end "2026-03-14T11:00+09:00" \
  --attendees "user1@example.com,user2@example.com" --notify

# 일정 수정
nworks calendar update --id <eventId> --title "변경된 제목"

# 일정 삭제
nworks calendar delete --id <eventId>

드라이브 (User OAuth)

# 파일/폴더 목록
nworks drive list

# 파일 업로드
nworks drive upload --file ./report.pdf

# 특정 폴더에 업로드
nworks drive upload --file ./report.pdf --folder <folderId>

# 파일 다운로드
nworks drive download --file-id <fileId>

# 다운로드 경로/파일명 지정
nworks drive download --file-id <fileId> --out ./downloads --name report.pdf

메일 (User OAuth)

# 메일 전송
nworks mail send --to "user@example.com" --subject "제목" --body "내용"

# CC/BCC 포함
nworks mail send --to "user@example.com" --cc "cc@example.com" --subject "제목" --body "내용"

# 받은편지함 목록
nworks mail list

# 읽지 않은 메일만
nworks mail list --unread

# 메일 상세 조회
nworks mail read --id <mailId>

할 일 (User OAuth)

# 할 일 목록
nworks task list

# 미완료만 조회
nworks task list --status TODO

# 할 일 생성
nworks task create --title "코드 리뷰" --body "PR #382 리뷰"

# 마감일 지정
nworks task create --title "배포" --due 2026-03-20

# 할 일 완료 처리
nworks task update --id <taskId> --status done

# 할 일 삭제
nworks task delete --id <taskId>

게시판 (User OAuth)

# 게시판 목록
nworks board list

# 게시판 글 목록
nworks board posts --board <boardId>

# 글 상세 조회
nworks board read --board <boardId> --post <postId>

# 글 작성
nworks board create --board <boardId> --title "공지사항" --body "내용"

# 알림 발송 + 댓글 비활성화
nworks board create --board <boardId> --title "공지" --body "내용" --notify --no-comment

OAuth Scope 설정

NAVER WORKS Developer Console에서 앱의 OAuth Scope를 추가해야 합니다.

Scope용도인증 방식필요한 명령어
botBot 메시지 전송Service Accountmessage send
bot.readBot 채널/구성원 조회Service Accountmessage members
calendar캘린더 쓰기User OAuthcalendar create/update/delete (calendar.read도 함께 필요)
calendar.read캘린더 읽기User OAuthcalendar list, calendar create/update/delete의 의존성
file드라이브 읽기/쓰기User OAuthdrive list/upload/download
file.read드라이브 읽기 전용User OAuthdrive list/download
mail메일 읽기/쓰기User OAuthmail send/list/read
mail.read메일 읽기 전용User OAuthmail list/read
task할 일 읽기/쓰기User OAuthtask create/update/delete (user.read도 함께 필요)
task.read할 일 읽기 전용User OAuthtask list
user.read사용자 정보 조회Service Account / User OAuthdirectory members, task create/update/delete의 의존성
board게시판 읽기/쓰기User OAuthboard list/posts/read/create
board.read게시판 읽기 전용User OAuthboard list/posts/read

Tip: scope를 변경한 후에는 토큰을 재발급해야 합니다.

nworks logout && nworks login --user --scope "..."

사용 시나리오

CI/CD 배포 알림

# GitHub Actions에서 배포 완료 후 팀 채널에 알림
nworks message send --channel $CHANNEL_ID --text "v${VERSION} 배포 완료"

팀 자동화 스크립트

# 매일 아침 팀원에게 리마인더 전송
for userId in $(nworks directory members --json | jq -r '.users[].userId'); do
  nworks message send --to "$userId" --text "오늘의 스탠드업 10시입니다"
done

Advanced Configuration

환경 변수

환경변수로 인증 정보를 설정하면 nworks login 없이 바로 사용할 수 있습니다.

# 공통 (필수)
NWORKS_CLIENT_ID=          # 필수
NWORKS_CLIENT_SECRET=      # 필수

# 봇 메시지 전송 시에만 필요 (User OAuth만 쓰면 불필요)
NWORKS_SERVICE_ACCOUNT=    # 봇 전용
NWORKS_PRIVATE_KEY_PATH=   # 봇 전용
NWORKS_BOT_ID=             # 봇 전용

# 선택
NWORKS_DOMAIN_ID=          # optional
NWORKS_SCOPE=              # optional (기본: bot bot.read user.read)
NWORKS_VERBOSE=1           # optional, 디버그 로깅

MCP 서버에 환경 변수 직접 설정

nworks login 대신 환경 변수로 직접 설정할 수도 있습니다:

{
  "mcpServers": {
    "nworks": {
      "command": "npx",
      "args": ["-y", "nworks", "mcp"],
      "env": {
        "NWORKS_CLIENT_ID": "<Client ID>",
        "NWORKS_CLIENT_SECRET": "<Client Secret>"
      }
    }
  }
}

봇 메시지도 사용하려면 NWORKS_SERVICE_ACCOUNT, NWORKS_PRIVATE_KEY_PATH, NWORKS_BOT_ID도 추가합니다.


Roadmap

  • v0.1 — 메시지, 조직 구성원, MCP 서버
  • v0.2 — 캘린더 일정 조회 + User OAuth
  • v0.3 — 드라이브 파일 조회/업로드/다운로드
  • v0.4 — 메일 (mail send/list/read)
  • v0.5 — 할 일 (task list/create/update/delete)
  • v0.6 — 캘린더 쓰기 (calendar create/update/delete)
  • v0.7 — 게시판 (board list/posts/read/create)
  • v1.0 — User OAuth 단독 로그인, MCP/CLI 인증 UX 개선, AI 에이전트 전용 설정 flow (nworks_setup → nworks_login_user), scope 자동 확장, 한국어 에러 안내, nworks doctor

License

Apache-2.0

Server Config

{
  "mcpServers": {
    "nworks": {
      "command": "nworks",
      "args": [
        "mcp"
      ]
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
Amap Maps高德地图官方 MCP Server
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Serper MCP ServerA Serper MCP Server
DeepChatYour AI Partner on Desktop
CursorThe AI Code Editor
WindsurfThe new purpose-built IDE to harness magic
ChatWiseThe second fastest AI chatbot™
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Tavily Mcp
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Playwright McpPlaywright MCP server