nworks
nworks
面向 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。已通过环境变量或现有配置设置的值将不会再次询问。
开发者控制台:要使用 User OAuth,请在开发者控制台中将
http://localhost:9876/callback注册为 Redirect 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 配置(~/.config/claude/claude_desktop_config.json)中:
{
"mcpServers": {
"nworks": {
"command": "nworks",
"args": ["mcp"]
}
}
}一次登录即可启用全部 36 个工具。无需额外配置环境变量。
如果不通过 CLI 登录,AI 代理可以直接调用
nworks_setup→nworks_login_user通过浏览器进行身份验证。Client Secret 和 Private Key 路径必须通过 MCP 配置的env字段或系统环境变量预先配置。
MCP 工具(32 个)
工具 | 描述 | 认证 |
设置 / 认证 | ||
| 配置 API 凭据(Client ID 等)。Client Secret 通过环境变量设置 | — |
| User OAuth 浏览器登录(包含所有作用域) | — |
| 删除凭据和令牌 | — |
| 检查认证状态 | — |
| 诊断连接(认证、令牌、API 健康状态) | — |
消息 | ||
| 向用户/频道发送消息 | Service Account |
| 列出频道成员 | Service Account |
| 列出组织成员 | Service Account |
日历 | ||
| 列出日历事件 | User OAuth (calendar.read) |
| 创建日历事件 | User OAuth (calendar + calendar.read) |
| 更新日历事件 | User OAuth (calendar + calendar.read) |
| 删除日历事件 | User OAuth (calendar + calendar.read) |
云盘 | ||
| 列出云盘文件/文件夹 | User OAuth (file.read) |
| 上传文件到云盘 | User OAuth (file) |
| 下载文件(超过 5MB 时保存到本地) | User OAuth (file.read) |
| 列出共享云盘 | User OAuth (file.read) |
| 列出共享云盘中的文件/文件夹 | User OAuth (file.read) |
| 下载共享云盘文件(超过 5MB 时保存到本地) | User OAuth (file.read) |
邮件 | ||
| 发送邮件 | User OAuth (mail) |
| 列出邮箱 | User OAuth (mail.read) |
| 读取邮件详情 | User OAuth (mail.read) |
| 下载邮件附件(超过 5MB 时保存到本地) | User OAuth (mail.read) |
任务 | ||
| 列出任务 | User OAuth (task.read) |
| 创建任务 | User OAuth (task + user.read) |
| 更新/完成任务 | User OAuth (task + user.read) |
| 删除任务 | User OAuth (task + user.read) |
公告板 | ||
| 列出公告板 | User OAuth (board.read) |
| 列出公告板帖子 | User OAuth (board.read) |
| 读取公告板帖子详情 | User OAuth (board.read) |
| 创建公告板帖子 | User OAuth (board) |
联系人 | ||
| 列出联系人 | User OAuth (contact.read) |
| 获取联系人详情 | User OAuth (contact.read) |
| 创建联系人 | User OAuth (contact) |
| 更新联系人 | User OAuth (contact) |
| 删除联系人 | User OAuth (contact) |
| 列出联系人标签 | 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,可在不发送的情况下进行测试。
消息(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>通讯录
nworks directory members # List organization members日历(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>云盘(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
# 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>邮件(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>
# 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任务(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>公告板(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联系人(User 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需要contactName和permission;permission.accessibleMembers必须至少列出一个成员(通常是您自己)。从nworks whoami获取您自己的用户 ID。
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"
doneOAuth 作用域
在 LINE WORKS 开发者控制台 中添加所需的作用域。
范围 | 用途 | 认证方式 | 必需条件 |
| 机器人消息发送 | 服务账户 |
|
| 机器人频道/成员读取 | 服务账户 |
|
| 日历写入 | 用户 OAuth |
|
| 日历读取 | 用户 OAuth |
|
| 云盘读写 | 用户 OAuth |
|
| 云盘只读 | 用户 OAuth |
|
| 邮件读写 | 用户 OAuth |
|
| 邮件只读 | 用户 OAuth |
|
| 任务读写 | 用户 OAuth |
|
| 任务只读 | 用户 OAuth |
|
| 用户信息读取 | 服务账户 / 用户 OAuth |
|
| 看板读写 | 用户 OAuth |
|
| 看板只读 | 用户 OAuth |
|
| 联系人读写 | 用户 OAuth |
|
| 联系人只读 | 用户 OAuth |
|
预设 比列出范围更简单:
nworks login --user --preset all # default: full functionality in one login nworks login --user --preset readonly # read-only scopes
default是all的别名。消息发送使用服务账户(机器人),因此无论预设如何都能正常工作。 重新登录不会缩小访问权限——新请求的范围会与现有令牌合并,因此切换预设只会增加能力。如需手动选择,请使用--scope "calendar calendar.read"。
环境变量
设置环境变量即可在不使用 nworks login 的情况下使用 nworks(适用于 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
Maintenance
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
- AlicenseAqualityDmaintenanceAI-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 Jap10MIT
- AlicenseAqualityDmaintenanceSelf-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.39129MIT

LINE Bot MCP Serverofficial
AlicenseAqualityAmaintenanceMCP server that integrates the LINE Messaging API to enable AI agents to send messages and manage LINE Official Accounts.121,252770Apache 2.0- FlicenseCqualityCmaintenanceMCP server that enables AI agents to control all DingTalk features (messaging, calendar, tasks, approvals, etc.) via natural language using the DingTalk Workspace CLI.83
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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