Skip to main content
Glama

nworks

npm version license npm downloads nworks MCP server

awesome-mcp-servers에 소개됨

🇺🇸 English | 🇰🇷 한국어 | 🇯🇵 日本語

LINE WORKS(NAVER WORKS)용 완전한 기능의 MCP 서버입니다. CLI + MCP 서버 — 메시지, 캘린더, 드라이브, 메일, 할 일, 게시판을 아우르는 36가지 도구를 제공합니다.

nworks를 사용하면 외부 AI 에이전트(Claude, Cursor)와 터미널이 외부에서 LINE WORKS를 조작할 수 있습니다. 이는 LINE WORKS 자체의 제품 내 AI(AiStudio, WORKS AI)를 보완하는 도구이며, 대체 도구는 아닙니다. 비공식 커뮤니티 유지 프로젝트로, LINE WORKS / NAVER WORKS와 제휴 관계가 아닙니다.

빠른 시작

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

처음이신가요? 먼저 Developer Console 앱(Client ID/Secret), 등록된 리다이렉트 URL, 그리고 봇 메시지 전송을 위한 관리자 승인이 필요합니다. 온보딩 및 관리자 설정 가이드를 참조하세요.

AI 에이전트가 실제로 사용하는 방식

User: Show me today's schedule

Claude → nworks_calendar_list
  → 3 events: Standup (10:00), Lunch meeting (12:00), Code review (15:00)

User: Send a deploy complete message to the team channel

Claude → nworks_message_send
  { "channel": "C001", "text": "v1.2.0 deploy complete" }
  → Message sent

User: Check my unread emails and summarize them

Claude → nworks_mail_list (unread)
  → 3 unread emails
Claude → nworks_mail_read (each)
  → "3 unread: 1) Deploy approval from CTO, 2) Meeting invite for Friday, 3) Weekly report reminder"

Related MCP server: synology-office-mcp

설치

npx nworks             # Run directly
npm install -g nworks  # Global install

로그인

# User OAuth (calendar, drive, mail, tasks, boards)
nworks login --user --scope "calendar calendar.read file file.read mail mail.read task task.read board board.read user.read"

# Bot messaging (Service Account)
nworks login

# Check auth status
nworks whoami

# Logout
nworks logout

nworks login --user는 CLIENT_ID + CLIENT_SECRET만 필요합니다. 환경 변수나 기존 설정으로 이미 값이 지정된 경우 다시 묻지 않습니다.

Developer Console: 사용자 OAuth를 사용하려면 Developer Console에서 http://localhost:9876/callback을 리다이렉트 URL로 등록하세요.


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

Claude Desktop, Cursor 및 기타 MCP 호환 클라이언트에서 사용할 수 있습니다.

설정

먼저 로그인합니다:

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

그런 다음 MCP 구성(~/.claude/claude_desktop_config.json)에 추가합니다:

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

한 번의 로그인으로 36가지 도구를 모두 사용할 수 있습니다. 추가 환경 변수 설정은 필요하지 않습니다.

CLI 로그인 없이도 AI 에이전트가 nworks_setupnworks_login_user를 호출하여 브라우저에서 직접 인증할 수 있습니다. Client Secret 및 Private Key 경로는 MCP 구성의 env 필드나 시스템 환경 변수로 미리 설정되어 있어야 합니다.

MCP 도구 (32)

Tool

Description

Auth

설정 / 인증

nworks_setup

API 자격 증명 설정 (Client ID 등). Client Secret은 env로 설정

nworks_login_user

사용자 OAuth 브라우저 로그인 (모든 범위 포함)

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_sharedrive_list

공유 드라이브 목록 조회

User OAuth (file.read)

nworks_sharedrive_files

공유 드라이브의 파일/폴더 목록 조회

User OAuth (file.read)

nworks_sharedrive_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_mail_download_attachment

메일 첨부파일 다운로드 (5MB 초과 시 로컬에 저장)

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)

현재

nworks_contact_list

연락처 목록 조회

User OAuth (contact.read)

nworks_contact_get

연락처 상세 조회

User OAuth (contact.read)

nworks_contact_create

연락처 생성

User OAuth (contact)

nworks_contact_update

연락처 수정

User OAuth (contact)

nworks_contact_delete

연락처 삭제

User OAuth (contact)

nworks_contact_list_tags

연락처 태그 목록 조회

User OAuth (contact.read)

AI 에이전트 사용 예시

User: Schedule a meeting tomorrow at 2pm and notify the team channel

Claude → nworks_calendar_create
  { "summary": "Meeting", "start": "2026-03-15T14:00:00", "end": "2026-03-15T15:00:00" }
  → Event created

Claude → nworks_message_send
  { "channel": "C001", "text": "Meeting scheduled tomorrow at 14:00" }
  → Message sent

User: Check my unread emails and summarize them

Claude → nworks_mail_list (unread)
  → 3 unread emails
Claude → nworks_mail_read (each)
  → "3 unread: 1) Deploy approval from CTO, 2) Meeting invite for Friday, 3) Weekly report reminder"

CLI 사용법

모든 명령은 파이프/스크립트/에이전트 처리를 위해 --json을 지원합니다. message send, mail send, drive upload는 전송 없이 테스트할 수 있는 --dry-run을 지원합니다.

메시지 (봇 API)

# Send text to user
nworks message send --to <userId> --text "Hello"

# Send text to channel
nworks message send --channel <channelId> --text "Announcement"

# Button message
nworks message send --to <userId> --type button --text "PR review request" \
  --actions '[{"type":"message","label":"Approve","postback":"approve"}]'

# List message
nworks message send --to <userId> --type list --text "Today's tasks" \
  --elements '[{"title":"Code review","subtitle":"PR #382"}]'

# List channel members
nworks message members --channel <channelId>

조직도

nworks directory members   # List organization members

캘린더 (사용자 OAuth)

# List today's events
nworks calendar list

# Specify date range
nworks calendar list --from "2026-03-14T00:00:00+09:00" --until "2026-03-14T23:59:59+09:00"

# Create event
nworks calendar create --title "Meeting" --start "2026-03-14T14:00+09:00" --end "2026-03-14T15:00+09:00"

# With location/description
nworks calendar create --title "Lunch" --start "2026-03-14T12:00+09:00" --end "2026-03-14T13:00+09:00" \
  --location "Conference Room" --description "Quarterly review"

# With attendees + notification
nworks calendar create --title "Team meeting" --start "2026-03-14T10:00+09:00" --end "2026-03-14T11:00+09:00" \
  --attendees "user1@example.com,user2@example.com" --notify

# Update event
nworks calendar update --id <eventId> --title "Updated title"

# Delete event
nworks calendar delete --id <eventId>

드라이브 (사용자 OAuth)

# List files/folders
nworks drive list

# Upload file
nworks drive upload --file ./report.pdf

# Upload to specific folder
nworks drive upload --file ./report.pdf --folder <folderId>

# Download file
nworks drive download --file-id <fileId>

# Specify output path/name
nworks drive download --file-id <fileId> --out ./downloads --name report.pdf

# List shared drives
nworks drive sharedrive-list

# List files in a shared drive (root)
nworks drive sharedrive-files --sharedrive <sharedriveId>

# List files in a shared drive folder
nworks drive sharedrive-files --sharedrive <sharedriveId> --folder <fileId>

# Download a shared drive file
nworks drive sharedrive-download --sharedrive <sharedriveId> --file-id <fileId>

메일 (사용자 OAuth)

# Send mail
nworks mail send --to "user@example.com" --subject "Subject" --body "Body"

# With CC/BCC
nworks mail send --to "user@example.com" --cc "cc@example.com" --subject "Subject" --body "Body"

# List inbox
nworks mail list

# Unread only
nworks mail list --unread

# Read mail detail
nworks mail read --id <mailId>

# Download a mail attachment
nworks mail download-attachment --id <mailId> --attachment-id <attachmentId>

# Specify output path/name
nworks mail download-attachment --id <mailId> --attachment-id <attachmentId> --out ./downloads --name invoice.pdf

할 일 (사용자 OAuth)

# List tasks
nworks task list

# Incomplete only
nworks task list --status TODO

# Create task
nworks task create --title "Code review" --body "Review PR #382"

# With due date
nworks task create --title "Deploy" --due 2026-03-20

# Mark as done
nworks task update --id <taskId> --status done

# Delete task
nworks task delete --id <taskId>

게시판 (사용자 OAuth)

# List boards
nworks board list

# List posts
nworks board posts --board <boardId>

# Read post detail
nworks board read --board <boardId> --post <postId>

# Create post
nworks board create --board <boardId> --title "Announcement" --body "Content"

# With notification + disable comments
nworks board create --board <boardId> --title "Notice" --body "Content" --notify --no-comment

연락처 (사용자 OAuth)

# List contacts
nworks contact list

# Filter by tag
nworks contact list --tag <contactTagId>

# Get contact detail
nworks contact get --id <contactId>

# Create contact
nworks contact create --payload '{"contactName":{"lastName":"Kim","firstName":"Chulsoo"},"emails":[{"email":"chulsoo@example.com","primary":true}],"permission":{"accessibleRange":"MEMBER","isCoEditing":false,"accessibleMembers":[{"id":"<yourUserId>","type":"USER"}]}}'

# Update contact
nworks contact update --id <contactId> --payload '{"telephones":[{"type":"CELLPHONE","telephone":"010-1234-5678","primary":true}]}'

# Delete contact
nworks contact delete --id <contactId>

# List contact tags
nworks contact list-tags

contact create에는 contactNamepermission이 필요합니다. permission.accessibleMembers에는 최소 한 명 이상의 구성원(보통 본인)이 포함되어야 합니다. 본인의 사용자 ID는 nworks whoami로 확인할 수 있습니다.

CI/CD 배포 알림

# Notify team channel after deployment in GitHub Actions
nworks message send --channel $CHANNEL_ID --text "v${VERSION} deployed"

팀 자동화 스크립트

# Send daily standup reminder to all members
for userId in $(nworks directory members --json | jq -r '.users[].userId'); do
  nworks message send --to "$userId" --text "Standup at 10:00 today"
done

OAuth 범위

필요한 범위를 LINE WORKS Developer Console에 추가하세요.

범위

용도

인증 유형

필요 대상

bot

봇 메시징

서비스 계정

message send

bot.read

봇 채널/멤버 읽기

서비스 계정

message members

calendar

캘린더 쓰기

사용자 OAuth

calendar create/update/delete (calendar.read 필요)

calendar.read

캘린더 읽기

사용자 OAuth

calendar list, 캘린더 쓰기에도 필요

file

드라이브 읽기/쓰기

사용자 OAuth

drive list/upload/download

file.read

드라이브 읽기 전용

사용자 OAuth

drive list/download

mail

메일 읽기/쓰기

사용자 OAuth

mail send/list/read

mail.read

메일 읽기 전용

사용자 OAuth

mail list/read

task

작업 읽기/쓰기

사용자 OAuth

task create/update/delete (user.read 필요)

task.read

작업 읽기 전용

사용자 OAuth

task list

user.read

사용자 정보 읽기

서비스 계정 / 사용자 OAuth

directory members, 작업 쓰기에도 필요

board

게시판 읽기/쓰기

사용자 OAuth

board list/posts/read

board.read

게시판 읽기 전용

사용자 OAuth

board list/posts/read

contact

연락처 읽기/쓰기

사용자 OAuth

contact create/update/delete (contact.read 필요)

contact.read

연락처 읽기 전용

사용자 OAuth

contact list/get/list-tags

프리셋은 범위를 나열하는 것보다 간단합니다:

nworks login --user --preset all       # default: full functionality in one login
nworks login --user --preset readonly  # read-only scopes

defaultall의 별칭입니다. 메시지 전송은 서비스 계정(봇)을 사용하므로 프리셋과 관계없이 작동합니다. 다시 로그인해도 접근 권한이 축소되지 않습니다. 새로 요청된 범위는 기존 토큰에 병합되므로 프리셋을 전환해도 기능이 추가될 뿐입니다. 직접 선택하려면 --scope "calendar calendar.read"를 사용하세요.


환경 변수

nworksnworks 로그인 없이 사용하려면 환경 변수를 설정하세요(CI/에이전트에 유용).

# Required
NWORKS_CLIENT_ID=
NWORKS_CLIENT_SECRET=

# Bot messaging only (not needed for User OAuth)
NWORKS_SERVICE_ACCOUNT=
NWORKS_PRIVATE_KEY_PATH=
NWORKS_BOT_ID=

# Optional
NWORKS_DOMAIN_ID=
NWORKS_SCOPE=              # default: bot bot.read user.read
NWORKS_VERBOSE=1           # debug logging

환경 변수를 사용한 MCP 서버

민감한 값(클라이언트 시크릿, 개인 키 경로)은 MCP 구성의 env 필드를 통해 설정해야 합니다. 클라이언트 ID와 같은 비민감한 값은 AI 에이전트가 nworks_setup 도구를 통해 구성할 수 있습니다.

{
  "mcpServers": {
    "nworks": {
      "command": "npx",
      "args": ["-y", "nworks", "mcp"],
      "env": {
        "NWORKS_CLIENT_SECRET": "<Client Secret>",
        "NWORKS_PRIVATE_KEY_PATH": "<Private Key file absolute path (for Service Account)>"
      }
    }
  }
}

라이선스

Apache-2.0

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
28dResponse time
6dRelease cycle
4Releases (12mo)
Commit activity
Issues opened vs closed

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

  • A
    license
    A
    quality
    D
    maintenance
    AI-powered MCP server for managing LINE Official Accounts. Send broadcasts, push messages, check analytics, manage rich menus — all through natural language via Claude, ChatGPT, or Cursor. 10 tools included: * Account info, friend count, message quota * Broadcast, push message, multicast * Delivery stats, user profiles, follower list * Rich menu management Supports 95M+ LINE users across Jap
    10
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Self-hosted MCP server that exposes Synology Drive, Spreadsheet, MailPlus, and Calendar as structured tools for AI agents, enabling file, spreadsheet, email, and calendar management via natural language.
    39
    12
    9
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that integrates the LINE Messaging API to enable AI agents to send messages and manage LINE Official Accounts.
    12
    1,252
    770
    Apache 2.0
  • F
    license
    C
    quality
    C
    maintenance
    MCP server that enables AI agents to control all DingTalk features (messaging, calendar, tasks, approvals, etc.) via natural language using the DingTalk Workspace CLI.
    83

View all related MCP servers

Related MCP Connectors

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

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/yjcho9317/nworks'

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