mcpField
M
my-mionote

my-mionote

github.com/mionote生産性142 回インストール16 週間前に更新
リポジトリ

my-mionote について

my-mionote は、妙記の会議メモを検索・処理するコマンドラインスキルです。グループや日付で記録を絞り込み、AI による要約や話者情報付きの文字起こしを扱えます。

主な機能

  1. 01グループ・日付・タイトルでメモを絞り込み
  2. 02AI 要約・要点・結論の確認
  3. 03分割形式またはテキスト形式で文字起こしを出力
  4. 04話者と時刻から発言を特定

活用シーン

  1. 01特定グループの月次会議を要約
  2. 02期間を指定して会議を検索
  3. 03文字起こしからアクション項目や決定事項を抽出
  4. 04会議中の発言を検索して引用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mionote/my-mionote --skill my-mionote

インストール後、Claude Code で/my-mionoteを入力して読み込まれたか確認します。

同梱ファイルscripts/my-mionote.mjs

詳細

プロジェクトの README より

前置检查

运行前确认以下两项:

  1. 已安装 Node.js 18+(node --version)
  2. 已设置环境变量 MIONOTE_API_KEY

先执行 echo $MIONOTE_API_KEY 检查是否已设置。如果为空,询问用户:

请提供您的妙记 API Key(在 App「我的 → 妙记 Skill」页面生成并复制,msk- 开头),我来帮您配置。

用户提供后,在当前 shell 执行:

export MIONOTE_API_KEY=<key>

保密要求:API Key 等同于用户的纪要数据访问凭证,任何回复中都不要展示完整 Key(只可展示 msk-**** 掩码),也不要写入日志或文件。

命令总览

node scripts/my-mionote.mjs groups [--pretty]
node scripts/my-mionote.mjs list [--page <n>] [--page-size <n>] [--keyword <词>] [--group-id <id>] \
                          [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--all] [--max <n>] [--pretty]
node scripts/my-mionote.mjs detail <纪要id> [--pretty]
node scripts/my-mionote.mjs transcript <纪要id> [--format segments|text] [--output <文件>] [--pretty]

默认输出单行 JSON,--pretty 缩进。所有数据均为当前 Key 对应用户本人可见的纪要(本人创建 + 他人分享)。

groups — 分组列表

返回 [{id, name, meetingCount}]。用户提到"XX 分组/分类"时,先用它把名称解析成 --group-id;meetingCount=0 的分组直接告知为空,不用再查列表。

list — 纪要列表
  • 默认第 1 页、每页 20 条,--page-size 上限 100;--all 自动翻页(--max 上限,默认 500)
  • --keyword 只按标题模糊匹配,不搜正文内容(内容级检索见下方菜谱)
  • --group-id 按分组过滤,传 -1 表示"未分组"
  • --start-date / --end-date 按创建时间(≈会议时间)过滤,含首尾两端

记录字段:id / title / voiceStartTime / voiceEndTime / duration / createTime / groupId / groupName / isShared, aiStatus:0-待处理 1-处理中 2-说话人分离完成 3-AI 纪要生成完成。

detail — 纪要详情(速读首选)

返回基本信息 + AI 纪要(aiSummary 摘要、aiKeyPoint 要点、aiConclusion 结论,仅 aiStatus=3 时完整)+ 用户笔记(userMeetingNoteTitle / userMeetingNote)+ 发言人名单(speakers 逗号分隔,speakerCount)。不含转写原文——需要原文时用 transcript。

transcript — 转录原文(深加工用)
  • --format segments(默认):segments: [{startTime, speakerId, text}],适合精确引用原话、按发言人分析
  • --format text:text 为完整纯文本("发言人1:\n..."),适合整体重新总结
  • --output <文件>:把内容落盘(text 存纯文本,segments 存 JSON),stdout 只回摘要(含 chars/segments 数)。转写可能非常长(1 小时会议可达数万字),拿不准长度时一律先 --output 落盘,再分段读取文件,不要直接吃进上下文
  • 转写未生成时报错(退出码 3,提示含 aiStatus),如实告知用户"该纪要转写尚未完成"

场景菜谱

「我上周开了哪些会」 → list --start-date <周一> --end-date <周日>,按天整理标题+时长回复。

「总结一下 XX 分组这个月的会」 → groups 解析分组名 → list --group-id <id> --start-date ... --end-date ... → 逐条 detail 取 AI 纪要 → 汇总成一份结构化总结。detail 的 AI 纪要通常足够,不要为"总结"场景拉 transcript。

「帮我重新提取这场会的行动项/决策/风险」(用户对固定口径的 AI 纪要不满足时)→ 定位纪要 id → transcript <id> --format text --output <临时文件> → 读文件按用户要求的口径重新提取。

「会上关于 X 的原话是什么」 → 定位纪要 → transcript <id> --format segments --output <临时文件> → 在文件中检索关键词,引用命中段落(带 speakerId 和 startTime)。

「哪场会提到了预算」(内容级搜索) → --keyword 搜不到正文。正确做法:先用时间/分组/标题把候选缩小到少量几场 → 逐场 transcript 落盘检索 → 汇报命中的会议与上下文。候选太多时,先向用户确认大致时间范围,不要盲目全量拉转写。

Token 经济原则

  1. 回答顺序永远是:list(定位)→ detail(AI 纪要速读)→ transcript(仅在需要原文时)
  2. transcript 默认 --output 落盘 + 分段读,除非确认是短会(duration 很小)
  3. --all 全量拉取仅用于"统计所有会议"类需求,总结类需求先收窄范围
  4. 批量 detail 时逐条串行即可,接口限流 120 次/分钟;命中限流(提示"触发限流")稍等再试

注意事项

  • 鉴权失败(退出码 2)通常是 Key 被重置——引导用户去 App「妙记 Skill」页面查看或重新生成,不要反复重试。
  • aiStatus != 3 的纪要没有完整 AI 纪要;转写以实际有无为准(接口有数据就返回,没有则报"尚未生成")。
  • segments 的 startTime 可能为 null(历史数据未记录时间戳),引用原话时以 speakerId + 文本为准。

コメント