Minutes

io.github.silverstein由 GitHub 账号 silverstein 发布v0.32.1更新于 Nov 6, 2026

The private, owned conversation-memory layer for AI. Record, transcribe, and search every meeting.

概览

AI 生成的概览

Minutes 是一个本地对话记忆 MCP 服务器,让助手录制、转写、搜索并总结会议、通话、语音备忘和口述内容,数据以 Markdown 文件保存在本机。

可以做什么
  • 开始与停止录音、口述和实时转写,并为当前录音添加带时间戳的笔记
  • 列出、搜索和读取会议、带说话人标注的转写,以及结构化洞察、决策和承诺
  • 查询与某场会议绑定的桌面上下文:活动摘要、上下文搜索、回放时刻和最多三张截图
  • 跟踪承诺与人际关系,生成人物画像,运行一致性报告并跨会议研究主题
  • 处理受限的 WAV 文件、将会议导入知识库、重新总结已编辑的会议并查看知识库状态
  • 启动、停止并观察实时 copilot,读取其提示
适用场景
适合希望让 Claude Code、Cursor 或 Codex 等 AI 客户端回答关于自己录制会议与通话的问题、跟进承诺与决策,或维护一份本地、基于文件的对话记忆的场景。
运行要求
通过 npx 以本地进程运行(npm 包 minutes-mcp);需先安装 Minutes 桌面应用或独立 CLI,并将其 CLI 加入 PATH。录制、转写和存储均在本机完成,未声明 API 密钥或环境变量。部分功能需要配置,例如 ingest_meeting 需在 config.toml 中配置 knowledge,注释功能需在 agents 允许文件中加入 agent_id。
安装前请注意
它会录制音频,并可能采集桌面上下文和截图,因此需注意知情同意与告知;敏感会议默认受限,除非有操作员启动授权并设置 include_restricted=true 且被审计,否则会被排除。当你把授权上下文发送给云端助手或摘要服务时,文本会离开本机。重新总结会调用模型,即使预览也会产生费用。相关工具会写入笔记、注释和会议文件,process_audio 会读取音频文件。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Minutes,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

minutes

[GitHub stars] [License: MIT] [crates.io] [npm]

useminutes.app

Minutes is a free, open-source conversation memory app for the AI you already use. Record and transcribe meetings, calls, voice memos, and dictation on your device, then let Claude Code, Codex, Cursor, or another MCP client search the history you choose to share. Your records are Markdown files you own in ~/meetings/.

Capture, transcription, and storage run locally. If you choose a cloud AI assistant or summarizer, the meeting context you authorize is sent to that provider.

Your conversations. Your memory. Ready for the AI you use.

[minutes demo; record, dictate, phone sync, AI recall]

Install

Choose the desktop app or one standalone CLI installation. The desktop app includes a CLI: use About Minutes → Set up CLI to add it to your PATH.

bash
brew install --cask silverstein/tap/minutes  # Desktop app, with bundled CLIbrew install silverstein/tap/minutes         # Standalone CLI alternativecargo install minutes-cli                   # Standalone CLI via Cargo

For an agent connection, add the MCP server separately with claude mcp add minutes -- npx -y minutes-mcp (or run npx minutes-mcp from another MCP client).

If Homebrew reports an untrusted tap, run brew trust silverstein/tap once.

Ask your agent

Add Minutes to your agent, seed five sample meetings (no mic needed), then ask about them:

bash
claude mcp add minutes -- npx -y minutes-mcpminutes demo --full

What did we decide about monthly billing, and did it stick?

The answer spans two meetings a month apart: launched on Feb 28, reversed on Mar 25.

A direct MCP call uses the same local meeting files:

text
search_meetings({"query":"monthly billing decision"})

Record a real one with minutes record, then minutes stop to transcribe. minutes demo --clean removes the samples. Setup: Codex, Gemini CLI, and Claude Desktop, Cursor, OpenCode, Pi, Mistral Vibe, and Cowork or Dispatch.

Works with

Claude Code · Codex · Cursor · OpenCode · Pi · Gemini CLI · Claude Desktop · Mistral Vibe · Cowork · Dispatch · Obsidian · Logseq · any MCP client

How it compares

WorkflowGranolaOtter.aiAnarlog (formerly Hyprnote)Minutes
ProductHosted meeting notepadHosted meeting assistantLocal meeting notepadLocal conversation memory
Agent accessHosted MCPHosted integrationsCLI + MCPLocal files, MCP, CLI, SDK
Primary storageHosted workspaceHosted workspaceLocal SQLite + filesLocal Markdown + YAML
Local AICloud transcriptionCloud transcriptionWith local providersLocal transcription; AI provider of your choice

Reviewed September 5, 2026 against Granola MCP, Otter privacy and security, and the Anarlog repository. Anarlog's community app is MIT; its enterprise components use a commercial license. See the detailed comparison and open-source alternatives for fit and limitations.

Who it's for

Agent-first users treat Minutes as the capture layer of a local second brain. They search meetings through Claude Code, Cursor, Codex, OpenCode, MCP, or the CLI, then fold useful context into a vault or wiki they own.

Desktop notetaker users record and read results in the app. They value reliable setup, clear processing and recovery, Recall, documents, Coach, and summary quality. See the full persona notes.

Surfaces

SurfaceWhat it providesDocs
Desktop appMenu bar capture, dictation, Recall, documents, and Coach.Install
CLI (60 commands)Local recording, processing, search, import, and automation.Commands
MCP server (34 tools)Local meeting tools and resources for any MCP client.MCP reference
Claude Code plugin (23 skills)Prep, capture, live help, debrief, and memory workflows.Client setup
SDKTypeScript access to meeting files without MCP.Agent architecture

Dictation

The desktop Dictation settings bring writing preferences, personal spellings and snippets, microphone selection, and recent text together. Cursor context is optional and stays on the Mac. Recovery restores text for review; local edits use an explicit Ollama preview, and spelling corrections require confirmation.

See dictation behavior and evaluation boundaries for supported fields, safe insertion and undo, clipboard restoration, and the synthetic benchmark.

Output format

Meetings are plain markdown with structured YAML frontmatter:

yaml
---title: Q2 Pricing Discussion with Alextype: meetingdate: 2026-03-17T14:00:00duration: 42mcontext: Discuss Q2 pricingaction_items:  - assignee: mat    task: Send pricing doc    due: Friday    status: opendecisions:  - text: Test monthly billing with 10 advisors---

See the frontmatter schema. Files work with Obsidian, grep, and any markdown tool.

Privacy & consent

  • Transcription and speaker processing run on-device. Audio stays on your machine.
  • Sensitive meetings save typed markers without audio and default to restricted.
  • Consent reminders, acknowledgement, and provenance help you disclose recording.
  • Text leaves the machine only when you send authorized context to a cloud agent or summarizer.

See the security documentation and consent enforcement design.

Docs

Contributing

See CONTRIBUTING.md. Minutes is MIT licensed and staying that way: no relicensing, no paid tier for anything in this repo.

MIT. Built by Mat Silverstein, founder of X1 Wealth.

Star History

[Star History Chart]

来源:README.md,提交 d5e706e

工具

34

start_recording

Start Recording

Start recording audio with call-aware preflight. When a known call app is active, Minutes can infer call intent and block silent mic-only call captures unless explicitly allowed. Note: this server does not listen to audio content. Recordings are stopped by invoking stop_recording after the user types a request in chat — never promise the user they can speak a 'stop recording' voice command. Docs: https://useminutes.app/docs/mcp/tools#tool-start_recording

输入参数modetitleintentlanguageallow_degradedskip_audio_probe_reason

stop_recording

Stop Recording

Stop the current recording and process it (transcribe, diarize, summarize). Docs: https://useminutes.app/docs/mcp/tools#tool-stop_recording

无需输入参数。

get_status

Recording Status

Check if a recording is currently in progress. Docs: https://useminutes.app/docs/mcp/tools#tool-get_status

无需输入参数。

list_processing_jobs

Processing Jobs

List background processing jobs for recent recordings, including queued, transcript-ready, needs-review, failed, and completed work. Docs: https://useminutes.app/docs/mcp/tools#tool-list_processing_jobs

输入参数limitinclude_completed

list_meetings

List Meetings

List recent meetings, voice memos, and dictations. Restricted meetings are excluded. An override requires both an operator launch grant and include_restricted=true, and is durably audited. Docs: https://useminutes.app/docs/mcp/tools#tool-list_meetings

输入参数typelimitinclude_restricted

search_meetings

Search Meetings

Search meeting transcripts, voice memos, and dictations. Restricted meetings are excluded. An override requires both an operator launch grant and include_restricted=true, and is durably audited. Docs: https://useminutes.app/docs/mcp/tools#tool-search_meetings

输入参数typelimitownerquery必填sinceintent_kindintents_onlyinclude_restricted

activity_summary

Activity Summary

Summarize meeting-adjacent desktop context bound to one exact normal meeting source. Docs: https://useminutes.app/docs/mcp/tools#tool-activity_summary

输入参数path必填

search_context

Search Context

Search desktop-context events bound to one exact normal meeting source. Docs: https://useminutes.app/docs/mcp/tools#tool-search_context

输入参数path必填limitquery必填

get_moment

Get Moment

Show the local rewind bound to one exact normal meeting source. Docs: https://useminutes.app/docs/mcp/tools#tool-get_moment

输入参数atpath必填after_minutesbefore_minutes

get_screen_context

Get Screen Context

Retrieve up to three verified PNG screenshots bound to one exact normal meeting source, optionally nearest a timestamp. Docs: https://useminutes.app/docs/mcp/tools#tool-get_screen_context

输入参数atpath必填limit

consistency_report

Consistency Report

Flag conflicting decisions and stale commitments across meetings using structured intent data. Meetings designated `sensitivity: restricted` are always excluded from this report. Docs: https://useminutes.app/docs/mcp/tools#tool-consistency_report

输入参数ownerstale_after_days

get_person_profile

Person Profile

Get a relationship profile derived from live, policy-authorized meeting snapshots within the supported corpus bounds. Restricted meetings are excluded unless an operator launch grant plus include_restricted=true is durably audited. Docs: https://useminutes.app/docs/mcp/tools#tool-get_person_profile

输入参数name必填include_restricted

research_topic

Research Topic

Research a topic across policy-authorized meetings within the supported corpus bounds. Restricted meetings are excluded. An override requires an operator launch grant plus include_restricted=true and is durably audited. Docs: https://useminutes.app/docs/mcp/tools#tool-research_topic

输入参数typequery必填sinceattendeeinclude_restricted

get_meeting

View Meeting

Get a full meeting transcript with speaker overlays. A restricted meeting returns a stub. Full access requires an operator launch grant plus include_restricted=true and is durably audited. Docs: https://useminutes.app/docs/mcp/tools#tool-get_meeting

输入参数path必填include_restricted

process_audio

Process Audio

On macOS and Linux, process a bounded WAV file from the Minutes inbox or Downloads through the transcription pipeline. Compressed/private containers and Windows fail closed without reading audio. Retained meeting-library audio is unavailable to agent surfaces. Docs: https://useminutes.app/docs/mcp/tools#tool-process_audio

输入参数typetitlelanguagefile_path必填

add_note

Add Note

Add a note to the current active recording. Notes are timestamped and included in that recording's meeting summary. Existing meeting files cannot be mutated from this assistant tool. Docs: https://useminutes.app/docs/mcp/tools#tool-add_note

输入参数text必填

track_commitments

Track Commitments

List open and stale action items and explicit intent commitments from live meeting frontmatter. Optionally filter by person. Answers: 'What did I promise Sarah?' or 'What's overdue?' Meetings designated `sensitivity: restricted` never enter this live-source view. Docs: https://useminutes.app/docs/mcp/tools#tool-track_commitments

输入参数person

relationship_map

Relationship Map

Show contacts with relationship scores, meeting frequency, and losing-touch alerts from the bounded process-private graph projection. Restricted meetings never enter the projection. Docs: https://useminutes.app/docs/mcp/tools#tool-relationship_map

输入参数limit

start_dictation

Start Dictation

Start dictation mode. Speak naturally — text accumulates across pauses and the combined result is written when dictation ends. Runs until stop_dictation is called or silence timeout. Docs: https://useminutes.app/docs/mcp/tools#tool-start_dictation

输入参数language

stop_dictation

Stop Dictation

Stop the current dictation session. Docs: https://useminutes.app/docs/mcp/tools#tool-stop_dictation

无需输入参数。

list_voices

Voice Profiles

List active voice enrollments for speaker identification. Shows who has been enrolled, sample count, and model version. Docs: https://useminutes.app/docs/mcp/tools#tool-list_voices

无需输入参数。

confirm_speaker

Confirm Speaker

Compatibility registration for speaker confirmation. Agent-controlled mutation is intentionally unavailable; confirm in the Minutes app or a human CLI session so identity changes cannot race policy authorization. Docs: https://useminutes.app/docs/mcp/tools#tool-confirm_speaker

输入参数name必填meeting必填speaker_label必填

add_agent_annotation

Add Agent Annotation

Append attributed agent commentary as an agent.annotation event. This never edits meeting markdown/frontmatter and is rejected unless the agent_id is allowed in ~/.minutes/agents.allow. Docs: https://useminutes.app/docs/mcp/tools#tool-add_agent_annotation

输入参数body必填toolssubkindagent_id必填citationsconfidencemeeting_idprovenancespan_end_msmeeting_pathspan_start_ms

get_agent_annotations

Get Agent Annotations (Unavailable)

Compatibility name only: unavailable in MCP because an annotation's source pointer and body are both author-supplied, so revalidating the pointer cannot bound what the body discloses. Docs: https://useminutes.app/docs/mcp/tools#tool-get_agent_annotations

输入参数limitagent_idmeeting_idmeeting_path

get_meeting_insights

Get Meeting Insights

Query structured insights extracted from meetings, decisions, commitments and questions with confidence levels. Each insight records a path to the meeting it was derived from; that path is resolved to a meeting in the live corpus, and the resolved meeting is re-read from disk and re-verified against the live sensitivity policy before the insight is released. A path that cannot be resolved into this corpus is withheld. Released records carry the source title and path as they were recorded, which may name a location outside this corpus. Withheld records are reported as a partial view rather than an empty one. Docs: https://useminutes.app/docs/mcp/tools#tool-get_meeting_insights

输入参数kindlimitsinceconfidenceparticipantactionable_onlyinclude_restricted

start_copilot

Start Copilot

Start the independent Minutes real-time copilot for a goal. This launches `minutes copilot start`; MCP does not run model inference, own capture, or need to stay connected for the engine to produce nudges. The stdout surface is recommended for complete structured nudge observation. Docs: https://useminutes.app/docs/mcp/tools#tool-start_copilot

输入参数goal必填surface

stop_copilot

Stop Copilot

Request that the active Minutes copilot stop. This invokes `minutes copilot stop` and never stops recording or live transcription. Calling it while no copilot is active returns a calm not-active status. Docs: https://useminutes.app/docs/mcp/tools#tool-stop_copilot

无需输入参数。

copilot_status

Copilot Status

Read the current operational copilot state from the strict `minutes copilot status --json` contract. This is observation only and returns a clear Off/not-active payload when no engine is running. Docs: https://useminutes.app/docs/mcp/tools#tool-copilot_status

无需输入参数。

read_copilot_nudges

Read Copilot Nudges

Read nudges observed from the active real CLI copilot stream. Use cursor (or a numeric since value) for lossless delta reads; since also accepts durations such as '5m'/'30s' and ISO timestamps. MCP never generates nudges itself. Docs: https://useminutes.app/docs/mcp/tools#tool-read_copilot_nudges

输入参数limitsincecursor

start_live_transcript

Start Live Transcript

Start real-time transcription. If a recording is already running, it already includes a live transcript — use read_live_transcript to read it. Runs until stop is called. Docs: https://useminutes.app/docs/mcp/tools#tool-start_live_transcript

输入参数language

read_live_transcript

Read Live Transcript

Read the live transcript — works during both recordings and live transcript sessions. Use 'since' to get new finalized lines after a cursor (line number) or time window (e.g., '5m', '30s'). Set include_current for one fresh, clearly provisional current-speech draft. Use 'status' mode to check if a session is active. Docs: https://useminutes.app/docs/mcp/tools#tool-read_live_transcript

输入参数sincestatus_onlyrelay_cursorinclude_current

ingest_meeting

Ingest Meeting

Extract facts from a meeting and update the knowledge base (person profiles, log, index). Requires [knowledge] to be configured in config.toml. Uses structured frontmatter data only by default (zero hallucination risk). Set engine to 'agent' for richer LLM-based extraction. Docs: https://useminutes.app/docs/mcp/tools#tool-ingest_meeting

输入参数allpathdry_run

resummarize_meeting

Resummarize Meeting

Re-run the AI pass (summary, action items, decisions) on an edited meeting or memo. Preview by default: returns the regenerated content WITHOUT writing — note the summarization model IS still invoked (cost applies even in preview). Set apply=true to write the file (a timestamped backup is created and derived views — graph, search index, vault, QMD — refresh automatically). User edits outside AI-owned sections are never touched; checked action items and decision notes are carried forward by the merge. Docs: https://useminutes.app/docs/mcp/tools#tool-resummarize_meeting

输入参数path必填applyengineingesttemplateinclude_restricted

knowledge_status

Knowledge Status

Reconcile persistent meeting derivatives and show the privacy-safe knowledge-base status. This cleanup/status tool cannot create or register an external index. Docs: https://useminutes.app/docs/mcp/tools#tool-knowledge_status

无需输入参数。

版本历史

22
  1. v0.32.1最新Nov 5, 2026
  2. v0.32.0Nov 3, 2026
  3. v0.31.1Oct 29, 2026
  4. v0.30.10Oct 22, 2026
  5. v0.30.9Oct 21, 2026
  6. v0.30.8Oct 21, 2026
  7. v0.30.7Oct 20, 2026
  8. v0.30.6Oct 20, 2026
  9. v0.30.5Oct 19, 2026
  10. v0.30.4Oct 18, 2026
  11. v0.30.2Oct 17, 2026
  12. v0.30.1Oct 16, 2026
  13. v0.30.0Oct 15, 2026
  14. v0.29.1Oct 14, 2026
  15. v0.29.0Oct 13, 2026
  16. v0.28.2Oct 9, 2026
  17. v0.28.1Oct 7, 2026
  18. v0.28.0Oct 7, 2026
  19. v0.27.2Oct 1, 2026
  20. v0.27.1Oct 1, 2026
  21. v0.27.0Sep 26, 2026
  22. v0.26.3Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分