Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

nworks MCP server](https://glama.ai/mcp/servers/yjcho9317/nworks/badges/score.svg)](https://glama.ai/mcp/servers/yjcho9317/nworks) πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - NAVER WORKS CLI + MCP server.

README.md

nworks

![npm version](https://www.npmjs.com/package/nworks) ![license](LICENSE) ![npm downloads](https://www.npmjs.com/package/nworks) ![nworks MCP server](https://glama.ai/mcp/servers/yjcho9317/nworks)

Featured in awesome-mcp-servers

πŸ‡ΊπŸ‡Έ English | πŸ‡°πŸ‡· ν•œκ΅­μ–΄ | πŸ‡―πŸ‡΅ ζ—₯本θͺž

<p align="center"> <img src="assets/demo.gif" width="600" alt="nworks demo"> </p>

Full-featured MCP server for LINE WORKS (NAVER WORKS). CLI + MCP server β€” 26 tools covering messages, calendar, drive, mail, tasks, and boards.

Quickstart

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

AI Agents Actually Use It Like This

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"

Install

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

Login

# 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 only requires CLIENT_ID + CLIENT_SECRET. Values already set via environment variables or existing config won't be asked again.

Developer Console: To use User OAuth, register http://localhost:9876/callback as a Redirect URL in the Developer Console.

---

AI Agent Integration (MCP Server)

Works with Claude Desktop, Cursor, and other MCP-compatible clients.

Setup

Login first:

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

Then add to your MCP config (~/.config/claude/claude_desktop_config.json):

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

One login enables all 26 tools. No extra env setup needed.

Without CLI login, an AI agent can call nworks_setup β†’ nworks_login_user to authenticate via browser directly. Client Secret and Private Key path must be pre-configured via MCP config env field or system environment variables.

MCP Tools (26)

| Tool | Description | Auth | |------|-------------|------| | Setup / Auth | | | | nworks_setup | Configure API credentials (Client ID, etc.). Client Secret is set via env | β€” | | nworks_login_user | User OAuth browser login (all scopes included) | β€” | | nworks_logout | Delete credentials and tokens | β€” | | nworks_whoami | Check auth status | β€” | | nworks_doctor | Diagnose connection (auth, tokens, API health) | β€” | | Messages | | | | nworks_message_send | Send message to user/channel | Service Account | | nworks_message_members | List channel members | Service Account | | nworks_directory_members | List organization members | Service Account | | Calendar | | | | nworks_calendar_list | List calendar events | User OAuth (calendar.read) | | nworks_calendar_create | Create calendar event | User OAuth (calendar + calendar.read) | | nworks_calendar_update | Update calendar event | User OAuth (calendar + calendar.read) | | nworks_calendar_delete | Delete calendar event | User OAuth (calendar + calendar.read) | | Drive | | | | nworks_drive_list | List drive files/folders | User OAuth (file.read) | | nworks_drive_upload | Upload file to drive | User OAuth (file) | | nworks_drive_download | Download file (saves locally if >5MB) | User OAuth (file.read) | | Mail | | | | nworks_mail_send | Send mail | User OAuth (mail) | | nworks_mail_list | List mailbox | User OAuth (mail.read) | | nworks_mail_read | Read mail detail | User OAuth (mail.read) | | Tasks | | | | nworks_task_list | List tasks | User OAuth (task.read) | | nworks_task_create | Create task | User OAuth (task + user.read) | | nworks_task_update | Update/complete task | User OAuth (task + user.read) | | nworks_task_delete | Delete task | User OAuth (task + user.read) | | Boards | | | | nworks_board_list | List boards | User OAuth (board.read) | | nworks_board_posts | List board posts | User OAuth (board.read) | | nworks_board_read | Read board post detail | User OAuth (board.read) | | nworks_board_create | Create board post | User OAuth (board) |

AI Agent Usage Example

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 Usage

All commands support --json for pipe/script/agent parsing. message send, mail send, and drive upload support --dry-run for testing without sending.

Messages (Bot 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>

Directory

nworks directory members   # List organization members

Calendar (User 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>

Drive (User 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

Mail (User 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>

Tasks (User 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>

Boards (User 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

CI/CD Deploy Notification

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

Team Automation Script

# 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 Scopes

Add the required scopes in the LINE WORKS Developer Console.

| Scope | Purpose | Auth | Required For | |-------|---------|------|-------------| | bot | Bot messaging | Service Account | message send | | bot.read | Bot channel/member read | Service Account | message members | | calendar | Calendar write | User OAuth | calendar create/update/delete (requires calendar.read) | | calendar.read | Calendar read | User OAuth | calendar list, also needed for calendar write | | file | Drive read/write | User OAuth | drive list/upload/download | | file.read | Drive read-only | User OAuth | drive list/download | | mail | Mail read/write | User OAuth | mail send/list/read | | mail.read | Mail read-only | User OAuth | mail list/read | | task | Tasks read/write | User OAuth | task create/update/delete (requires user.read) | | task.read | Tasks read-only | User OAuth | task list | | user.read | User info read | Service Account / User OAuth | directory members, also needed for task write | | board | Boards read/write | User OAuth | board list/posts/read/create | | board.read | Boards read-only | User OAuth | board list/posts/read |

Tip: After changing scopes, reissue your token: ``bash nworks logout && nworks login --user --scope "..." ``

---

Environment Variables

Set environment variables to use nworks without nworks login (useful for CI/agents).

# 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 Server with Environment Variables

Sensitive values (Client Secret, Private Key path) must be set via MCP config env field. Non-sensitive values like Client ID can be configured by the AI agent through the nworks_setup tool.

{
  "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)>"
      }
    }
  }
}

---

License

Apache-2.0

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Communication servers.