Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计提醒

mubu-integration穆布整合

Agent Skill

mubu-integration 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,882

周安装

80

GitHub Stars

公开资料未说明

下载量

659
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:mubu-integration(穆布整合)
来源仓库:https://github.com/liuboacean/mubu-integration
安装命令:
openclaw skills install mubu-integration
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install mubu-integration

简介

幕布笔记集成,支持登录认证、文档管理、文件夹操作、大纲导出等功能。触发词:幕布、mubu、大纲笔记、思维导图导出、幕布同步

SKILL.md

name
mubu-integration
description
幕布笔记集成,支持登录认证、文档管理、文件夹操作、大纲导出等功能。触发词:幕布、mubu、大纲笔记、思维导图导出、幕布同步

幕布集成 Skill

幕布(mubu.com)是一款极简大纲笔记工具,支持一键生成思维导图。本 Skill 提供 API 集成能力。

功能概览

功能接口说明
用户登录POST /user/phone_login手机号密码登录获取 Token
Token 刷新自动处理access_token 2小时过期,refresh_token 30天
创建文件夹POST /list/create_folder在指定位置创建文件夹
创建文档POST /list/create_doc创建新的大纲文档
获取列表GET /list/list获取文件夹下的文档列表
获取文档GET /doc/get获取文档详细内容
更新文档POST /doc/save保存/更新文档内容
删除文档POST /list/delete删除文档或文件夹
移动文档POST /list/move移动文档到其他文件夹
导出 Markdown本地转换将大纲结构转换为 Markdown

API 基础信息

  • Base URL: https://api2.mubu.com/v3/api
  • 认证方式: JWT Token,通过请求头 jwt-token 传递
  • Content-Type: application/json;charset=UTF-8

环境变量配置

在使用前,需要配置以下环境变量:

export MUBU_PHONE="your_phone_number"    # 幕布账号手机号
export MUBU_PASSWORD="your_password"      # 幕布账号密码

或者直接在脚本中配置。


使用说明

1. 认证流程

import requests
import json

def login(phone, password):
    """幕布登录获取 Token"""
    url = "https://api2.mubu.com/v3/api/user/phone_login"
    headers = {
        "Content-Type": "application/json;charset=UTF-8",
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/",
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
    }
    data = {
        "phone": phone,
        "password": password,
        "callbackType": 0
    }
    response = requests.post(url, headers=headers, json=data)
    result = response.json()
    if result.get("code") == 0:
        return {
            "token": result["data"]["token"],
            "user_id": result["data"]["user"]["id"],
            "username": result["data"]["user"]["name"]
        }
    else:
        raise Exception(f"登录失败: {result.get('msg')}")

2. 创建文件夹

def create_folder(token, name, parent_id="0"):
    """创建文件夹
    
    Args:
        token: JWT Token
        name: 文件夹名称
        parent_id: 父文件夹ID,根目录为 "0"
    
    Returns:
        新创建的文件夹ID
    """
    url = "https://api2.mubu.com/v3/api/list/create_folder"
    headers = {
        "Content-Type": "application/json;charset=UTF-8",
        "jwt-token": token,
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/"
    }
    data = {
        "folderId": parent_id,
        "name": name
    }
    response = requests.post(url, headers=headers, json=data)
    result = response.json()
    if result.get("code") == 0:
        return result["data"]["folder"]["id"]
    else:
        raise Exception(f"创建文件夹失败: {result.get('msg')}")

3. 创建文档

def create_doc(token, name, folder_id="0", content=""):
    """创建文档
    
    Args:
        token: JWT Token
        name: 文档名称
        folder_id: 所在文件夹ID,根目录为 "0"
        content: 文档初始内容(大纲结构)
    
    Returns:
        新创建的文档ID
    """
    url = "https://api2.mubu.com/v3/api/list/create_doc"
    headers = {
        "Content-Type": "application/json;charset=UTF-8",
        "jwt-token": token,
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/"
    }
    data = {
        "folderId": folder_id,
        "name": name,
        "content": content
    }
    response = requests.post(url, headers=headers, json=data)
    result = response.json()
    if result.get("code") == 0:
        return result["data"]["doc"]["id"]
    else:
        raise Exception(f"创建文档失败: {result.get('msg')}")

4. 获取文档列表

def get_list(token, folder_id="0"):
    """获取文件夹下的文档列表
    
    Args:
        token: JWT Token
        folder_id: 文件夹ID,根目录为 "0"
    
    Returns:
        文档和文件夹列表
    """
    url = f"https://api2.mubu.com/v3/api/list/list?folderId={folder_id}"
    headers = {
        "jwt-token": token,
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/"
    }
    response = requests.get(url, headers=headers)
    result = response.json()
    if result.get("code") == 0:
        return result["data"]
    else:
        raise Exception(f"获取列表失败: {result.get('msg')}")

5. 获取文档内容

def get_doc(token, doc_id):
    """获取文档详细内容
    
    Args:
        token: JWT Token
        doc_id: 文档ID
    
    Returns:
        文档详细内容(包含大纲结构)
    """
    url = f"https://api2.mubu.com/v3/api/doc/get?id={doc_id}"
    headers = {
        "jwt-token": token,
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/"
    }
    response = requests.get(url, headers=headers)
    result = response.json()
    if result.get("code") == 0:
        return result["data"]
    else:
        raise Exception(f"获取文档失败: {result.get('msg')}")

6. 保存文档

def save_doc(token, doc_id, content, name=None):
    """保存/更新文档内容
    
    Args:
        token: JWT Token
        doc_id: 文档ID
        content: 文档内容(JSON格式的大纲结构)
        name: 可选,更新文档名称
    """
    url = "https://api2.mubu.com/v3/api/doc/save"
    headers = {
        "Content-Type": "application/json;charset=UTF-8",
        "jwt-token": token,
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/"
    }
    data = {
        "id": doc_id,
        "content": content
    }
    if name:
        data["name"] = name
    response = requests.post(url, headers=headers, json=data)
    result = response.json()
    if result.get("code") != 0:
        raise Exception(f"保存文档失败: {result.get('msg')}")

7. 删除文档/文件夹

def delete_item(token, item_id):
    """删除文档或文件夹
    
    Args:
        token: JWT Token
        item_id: 文档或文件夹ID
    """
    url = "https://api2.mubu.com/v3/api/list/delete"
    headers = {
        "Content-Type": "application/json;charset=UTF-8",
        "jwt-token": token,
        "Origin": "https://mubu.com",
        "Referer": "https://mubu.com/"
    }
    data = {"id": item_id}
    response = requests.post(url, headers=headers, json=data)
    result = response.json()
    if result.get("code") != 0:
        raise Exception(f"删除失败: {result.get('msg')}")

大纲内容格式

幕布文档内容使用特定的 JSON 格式表示大纲结构:

{
  "node": {
    "id": "root",
    "text": "文档标题",
    "children": [
      {
        "id": "node_1",
        "text": "一级标题",
        "children": [
          {
            "id": "node_1_1",
            "text": "二级标题",
            "children": []
          }
        ]
      },
      {
        "id": "node_2",
        "text": "另一个一级标题",
        "children": []
      }
    ]
  }
}

Token 管理建议

由于幕布的 Token 有效期限制(access_token 2小时,refresh_token 30天),建议:

  1. 本地缓存: 将 Token 保存到本地文件(如 ~/.mubu_token
  2. 自动刷新: 在 Token 快过期时自动刷新
  3. 错误重试: 遇到 401 错误时重新登录
import os
import time
import json

TOKEN_FILE = os.path.expanduser("~/.mubu_token")

def save_token(token_data):
    """保存 Token 到本地"""
    token_data["expires_at"] = time.time() + 7200  # 2小时后过期
    with open(TOKEN_FILE, "w") as f:
        json.dump(token_data, f)

def load_token():
    """从本地加载 Token"""
    if os.path.exists(TOKEN_FILE):
        with open(TOKEN_FILE, "r") as f:
            return json.load(f)
    return None

def is_token_valid(token_data):
    """检查 Token 是否有效"""
    if not token_data:
        return False
    return time.time() < token_data.get("expires_at", 0)

导出 Markdown

将幕布大纲转换为 Markdown 格式:

def node_to_markdown(node, level=0):
    """将幕布节点转换为 Markdown"""
    lines = []
    indent = "  " * level
    bullet = "- " if level > 0 else ""
    lines.append(f"{indent}{bullet}{node['text']}")
    
    for child in node.get("children", []):
        lines.extend(node_to_markdown(child, level + 1))
    
    return lines

def export_markdown(doc_data):
    """导出文档为 Markdown"""
    root = doc_data.get("node", {})
    lines = node_to_markdown(root)
    return "\
".join(lines)

注意事项

  1. 非官方 API: 幕布未提供官方开放平台,此 Skill 基于逆向分析实现
  2. 稳定性: API 可能随版本更新而变化,如遇问题请反馈
  3. 频率限制: 请勿频繁调用,避免触发限流
  4. 数据安全: Token 存储在本地,请勿泄露

Agent 使用指引

当用户提到幕布、mubu、大纲笔记相关操作时,使用本 Skill 的脚本完成操作。

前置检查

  1. 确认系统已安装 Python 3 和 requests 库:
   python3 -c "import requests; print('OK')"

如果缺少 requests:pip3 install requests

  1. 确认环境变量已配置:

- MUBU_PHONE — 幕布手机号 - MUBU_PASSWORD — 幕布密码 - 如未配置,需提示用户先设置

脚本路径

~/.workbuddy/skills/mubu-integration/scripts/mubu_api.py

常用命令速查

用户意图执行命令
登录幕布python3 scripts/mubu_api.py login
查看文档列表python3 scripts/mubu_api.py list
查看某文件夹python3 scripts/mubu_api.py list --folder <folder_id>
创建文件夹python3 scripts/mubu_api.py mkdir "文件夹名"
创建文档python3 scripts/mubu_api.py create "文档名" --folder <folder_id>
获取文档内容python3 scripts/mubu_api.py get <doc_id>
导出为 Markdownpython3 scripts/mubu_api.py get <doc_id> --export markdown
从文件保存文档python3 scripts/mubu_api.py save <doc_id> --file content.md
删除文档python3 scripts/mubu_api.py delete <id>

典型工作流

场景 1:用户说"把这份大纲同步到幕布"

  1. 确认内容来源(文件或对话中直接提供)
  2. 如果是 Markdown,直接用脚本创建文档并导入
  3. 返回新文档 ID 和链接

场景 2:用户说"导出我的幕布笔记"

  1. 先列出文档列表让用户选择,或按名称搜索
  2. 获取文档内容
  3. 转换为 Markdown 格式返回

场景 3:用户说"在幕布建一个项目文件夹"

  1. 确认文件夹名称和层级结构
  2. 批量创建文件夹
  3. 返回创建结果

工作流示例

示例 1: 从 Markdown 创建幕布文档

用户: 把这份 Markdown 大纲同步到幕布

执行步骤:

  1. 解析 Markdown 结构
  2. 转换为幕布 JSON 格式
  3. 登录获取 Token
  4. 创建文档并保存内容

示例 2: 导出幕布文档为 Markdown

用户: 导出我的"读书笔记"文档

执行步骤:

  1. 登录获取 Token
  2. 搜索文档
  3. 获取文档内容
  4. 转换为 Markdown 并返回

示例 3: 批量创建文件夹结构

用户: 在幕布创建项目文档结构:需求分析、设计文档、开发日志、测试报告

执行步骤:

  1. 登录获取 Token
  2. 创建项目文件夹
  3. 批量创建子文件夹
  4. 返回创建结果

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

71.16%
按下载量换算469

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills