mdold

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This MCP server acts as a bridge to the Mingdao Collaboration-era v1 API. It exposes around 44 enabled tools that allow AI assistants to read and write data across a workspace, including managing group posts, calendars, chat messages, and employee contact lists.

Security Assessment
Overall Risk: Medium. The tool acts as an API wrapper, so it inherently makes external network requests to Mingdao's servers. It accesses highly sensitive data, providing the ability to read chat histories, extract organizational contact details (phone numbers, emails, reporting structures), and send messages or delete posts. While the automated code scan found no dangerous patterns, hardcoded secrets, or local shell execution, the deep write-access permissions to corporate communication channels mean it should be handled carefully. You must securely manage your API keys to prevent unauthorized access to your Mingdao workspace.

Quality Assessment
The project is actively maintained, with its most recent push occurring today. It uses the standard, permissive MIT license. However, it currently suffers from extremely low community visibility, having only 5 GitHub stars. Because it has not been broadly reviewed or battle-tested by a large user base, developers must rely solely on their own code review to ensure safety.

Verdict
Use with caution — the underlying code appears safe and straightforward, but the tool handles highly sensitive corporate communications, requiring strict oversight of how your API credentials are passed to it.
SUMMARY

MCP Server for Mingdao Collaboration-era v1 API — 101 tools for posts, calendar, chat, groups & more

README.md

mingdao-collab-mcp

MCP Server for Mingdao Collaboration-era v1 API.

注意: 本项目封装的是明道协作时代的 v1 API,明道云(HAP)零代码平台接口。这些接口在明道转型零代码后仍部分可用,主要覆盖动态、日程、私信、群组、通讯录等协作功能。

工具列表

默认启用约 44 个常用工具,非常用工具已注释,可按需启用(见下文)。

动态(post) — 9 个启用

工具 说明
post_get_all_posts 获取全公司动态流,可按关键词/群组过滤
post_get_my_posts 获取我发布的动态
post_get_user_posts 获取指定用户的动态
post_get_group_posts 获取指定群组的动态
post_get_post_detail 获取单条动态详情
post_get_post_reply 获取动态评论列表
post_get_post_select_groups 获取可发布动态的群组列表
post_add_post 发布新动态
post_add_post_reply 回复动态
post_delete_post 删除动态
post_delete_post_reply 删除评论

已注释(不常用):post_likepost_collectpost_toppost_votepost_get_reply_by_me_postspost_get_category_postspost_get_common_categories

日程(calendar) — 8 个启用

工具 说明
calendar_get_events 获取日程列表(支持日期范围过滤)
calendar_get_event_details 获取日程详情
calendar_get_unconfirmed_events 获取待确认的日程邀请
calendar_search 按关键词搜索日程
calendar_create_event 创建日程
calendar_add_members 邀请成员参加日程
calendar_edit_event 编辑日程
calendar_remove_event 删除日程

已注释(不常用):calendar_get_categoriescalendar_get_subscription_urlcalendar_create_categorycalendar_confirm_invitationcalendar_reject_invitationcalendar_reinvite_membercalendar_remove_membercalendar_edit_categorycalendar_edit_sharecalendar_edit_privatecalendar_edit_category_propscalendar_edit_remindercalendar_remove_category

私信(webchat) — 6 个启用

工具 说明
webchat_get_chat_list 获取会话列表
webchat_get_unread_count 获取未读消息数
webchat_get_messages 获取某会话的消息记录
webchat_get_message_by_id 按ID获取消息上下文
webchat_get_message_count 获取消息总数
webchat_send_message 发送消息

已注释:webchat_delete_historywebchat_set_push

收件箱(message) — 2 个启用

工具 说明
message_get_system 获取系统通知
message_get_post 获取动态相关通知(@我、回复等)

已注释:message_favorite

群组(group) — 10 个启用

工具 说明
group_get_detail 获取群组详情
group_get_members 获取群组成员列表
group_get_my_joined 获取我加入的群组
group_get_my_created 获取我创建的群组
group_get_project_groups 获取组织下所有群组
group_get_project_members 获取组织群组成员
group_create 创建群组
group_create_discussion 创建讨论组
group_edit 编辑群组信息
group_add_admin 添加群管理员

已注释:group_get_mentionedgroup_get_unauditedgroup_exitgroup_apply_joingroup_chat_to_postgroup_audit_membergroup_remove_admingroup_remove_member

用户(user) — 6 个启用

工具 说明
user_get_friends 获取联系人列表
user_get_project_users 获取组织全部成员
user_get_mentioned 搜索可@的用户
user_get_by_phone 按手机号/邮箱查找用户
user_get_card 获取用户名片
user_get_subordinate 获取下属列表

已注释:user_get_address_recommenduser_get_new_friendsuser_add_frienduser_add_mobile_addressuser_remove_frienduser_shield_frienduser_update_friend_status

组织架构(company) — 3 个启用

工具 说明
company_get_projects 获取所属组织列表
company_get_departments 获取部门列表
company_get_by_id 按ID查询组织信息

已注释:company_get_worksitecompany_get_by_codecompany_join_by_codecompany_join_by_idcompany_refuse_invitation

个人账户(passport) — 4 个启用

工具 说明
passport_get_detail 获取当前用户详细信息
passport_get_setting 获取账户设置
passport_get_unread_count 获取各类未读消息数量
passport_get_user_card 获取自己的名片

已注释:passport_logoutpassport_send_verify_codepassport_update_accountpassport_update_detailpassport_update_passwordpassport_update_user_cardpassport_add_scale

已完全禁用的模块

以下模块在 server.py 中整体注释,不会加载任何工具:

  • task(任务)— 7 个工具

启用 / 注释工具

启用某个已注释的工具

打开对应的 src/mingdao_collab_mcp/tools_xxx.py,找到注释掉的函数,去掉注释符号 # 即可:

# 注释状态(未启用):
# @mcp.tool()
# def post_like(post_id: str, is_like: bool = True) -> dict:
#     """点赞或取消点赞一条动态。"""
#     return api_post("/v1/post/update_like_or_cancel_like_post", post_id=post_id, is_like=is_like)

# 启用后:
@mcp.tool()
def post_like(post_id: str, is_like: bool = True) -> dict:
    """点赞或取消点赞一条动态。"""
    return api_post("/v1/post/update_like_or_cancel_like_post", post_id=post_id, is_like=is_like)

启用整个模块

如需启用 passporttask 模块,编辑 src/mingdao_collab_mcp/server.py

# 找到这两行,去掉注释:
# from . import tools_passport
# from . import tools_task

# 以及:
# tools_passport.register(mcp)
# tools_task.register(mcp)

注释掉某个工具

反过来操作,在 @mcp.tool() 和函数定义前加 # 即可。

修改后需重启 Claude Code 使其生效。


快速开始

1. 克隆项目

git clone https://github.com/andyleimc-source/mdold.git
cd mdold

2. 安装依赖(用虚拟环境,避免污染系统 Python)

python3 -m venv .venv
.venv/bin/pip install -e .

3. 配置凭证

cp .env.example .env

编辑 .env,填入你在明道开放平台创建的应用凭证:

MINGDAO_APP_KEY=你的app_key
MINGDAO_APP_SECRET=你的app_secret
MINGDAO_REDIRECT_URI=http://localhost:8080/callback

在哪里获取?登录 https://open.mingdao.com ,创建一个应用,在应用设置中获取 app_key 和 app_secret。回调地址必须与应用中配置的完全一致(包括端口号)。

4. 首次授权

# 生成授权链接
PYTHONPATH=src .venv/bin/python3 -m mingdao_collab_mcp.server authorize-url

# 在浏览器中打开输出的链接,登录明道账号并授权
# 授权后浏览器会跳转到回调地址,从 URL 中复制 code 参数值

# 用 code 换取 token
PYTHONPATH=src .venv/bin/python3 -m mingdao_collab_mcp.server exchange-code 你拿到的code

Token 会保存在 .secrets.json 中(已在 .gitignore 中排除)。

5. 在 Claude Code 中使用

在项目目录下运行(将路径替换为你的实际目录,用 pwd 查看):

claude mcp add mdold \
  --scope user \
  --transport stdio \
  -e MINGDAO_APP_KEY=你的app_key \
  -e MINGDAO_APP_SECRET=你的app_secret \
  -e MINGDAO_REDIRECT_URI=http://localhost:8080/callback \
  -e PYTHONPATH=/absolute/path/to/mdold/src \
  -- /absolute/path/to/mdold/.venv/bin/python3 -m mingdao_collab_mcp.server mingdao

重启 Claude Code,就可以直接用自然语言操作明道了:

  • "帮我看看张三最近发了什么动态"
  • "创建一个明天上午 10 点的日程,邀请李四"
  • "给王五发一条消息说下午 3 点开会"
  • "列出公司所有部门"
  • "查一下全体群有哪些成员"

Token 生命周期

Token 有效期 说明
access_token 24 小时 MCP Server 启动时自动检查,过期后自动用 refresh_token 刷新
refresh_token 14 天 自动续期,14 天内只要跑过一次就不会过期

如果超过 14 天没有使用,两个 token 都会过期,需要重新走一次浏览器授权流程(步骤 4)。

安全提醒

  • .env.secrets.json 包含敏感凭证,绝不要提交到 git
  • 这两个文件已在 .gitignore 中排除
  • 如果你 fork 了本项目,请确认这些文件没有被提交

项目结构

mdold/
├── .env.example          # 环境变量模板
├── .gitignore            # 排除密钥文件
├── pyproject.toml        # 项目配置
├── README.md
├── REQUIREMENTS.md       # 需求文档
└── src/mingdao_collab_mcp/
    ├── __init__.py
    ├── server.py          # MCP Server 入口(控制哪些模块加载)
    ├── auth.py            # OAuth token 管理
    ├── api_client.py      # HTTP 请求封装
    ├── tools_post.py      # 动态(11 个工具,7 个已注释)
    ├── tools_calendar.py  # 日程(21 个工具,13 个已注释)
    ├── tools_webchat.py   # 私信(8 个工具,2 个已注释)
    ├── tools_message.py   # 收件箱(3 个工具,1 个已注释)
    ├── tools_group.py     # 群组(18 个工具,8 个已注释)
    ├── tools_user.py      # 用户(13 个工具,7 个已注释)
    ├── tools_company.py   # 组织(8 个工具,5 个已注释)
    ├── tools_passport.py  # 个人账户(11 个工具,7 个已注释)
    └── tools_task.py      # 任务(整个模块已注释)

API 文档

本项目基于明道开放平台的 v1 API:https://open.mingdao.com/document

完整的接口参考见 REQUIREMENTS.md

License

MIT


关注我

雷码工坊笔记微信公众号

雷码工坊笔记 — 微信扫码关注

Yorumlar (0)

Sonuc bulunamadi