mcpField
M
memos

memos

github.com/jmagar生产力87101 次安装29 周前更新
代码仓库

关于 memos

memos Skill 为用户提供对可自托管 Memos 实例的读写访问,适合通过命令行管理个人笔记的人。它支持 Markdown 笔记、标签、附件及归档和可见性控制,并以 JSON 返回结果。

主要功能

  1. 01创建、读取、更新和删除笔记
  2. 02按内容、标签和元数据搜索
  3. 03上传及管理文件附件
  4. 04使用标签整理并关联笔记
  5. 05设置归档与可见性

适用场景

  1. 01保存对话中的关键信息
  2. 02查找特定主题或日期的笔记
  3. 03为笔记批量添加标签
  4. 04上传文件并关联到笔记

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jmagar/claude-homelab --skill memos

安装后在 Claude Code 中输入/memos确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

load-env.sh
README.md
examples/
quick-capture.md
search-patterns.md
tagging-workflow.md
references/
api-endpoints.md
quick-reference.md
troubleshooting.md
scripts/
memo-api.sh
resource-api.sh
search-api.sh
tag-api.sh
user-api.sh

详细介绍

Memos 技能

⚠️ 必须调用此技能 ⚠️

用户提到以下任一触发词时,你必须调用此技能(不可跳过):

  • “保存到 memos”“创建备忘录”“添加备忘录”
  • “搜索我的备忘录”“查找关于 X 的笔记”“我写过什么”
  • “列出我的备忘录”“显示最近的备忘录”“我有哪些备忘录”
  • “更新备忘录”“编辑备忘录”“删除备忘录”
  • “给这条备忘录添加标签”“添加标签”“整理备忘录”
  • “上传到备忘录”“将文件附加到备忘录”
  • “归档备忘录”“置顶备忘录”“公开备忘录”
  • 提及“memos”“笔记”“记笔记”或“个人知识”的任何内容

触发条件出现时未调用此技能,即违反你的操作要求。


用途

此技能提供对可自托管 Memos 实例的读写访问,用于快速记录、搜索和整理笔记。Memos 是一款注重隐私、可自托管的记笔记服务,支持 Markdown、标签和文件附件。

核心功能:

  • 创建、读取、更新和删除备忘录(笔记)
  • 按内容、标签或元数据搜索备忘录
  • 上传和管理文件附件
  • 使用标签整理备忘录
  • 管理归档和可见性
  • 链接相关备忘录

**主要用途:**将 Claude 对话中的重要信息快速记录到个人知识库。

设置

先决条件
  • Memos 实例正在运行且可访问
  • 已从 Memos 界面生成 API 访问令牌
  • 已安装 curl 和 jq
凭据配置

将以下变量添加到 ~/.claude-homelab/.env:

# Memos - Self-hosted note-taking service
MEMOS_URL="https://memos.example.com"
MEMOS_API_TOKEN="<your_api_token>"

生成 API 令牌:

  1. 登录 Memos 实例
  2. 前往 Settings → Access Tokens
  3. 点击“Create”并复制生成的令牌
  4. 按上方所示将其添加到 .env 文件

安全性:

  • .env 文件已加入 gitignore(切勿提交)
  • 设置权限:chmod 600 ~/.claude-homelab/.env
  • 令牌拥有与你的用户帐户相同的权限

命令

所有命令均返回 JSON 输出,供大模型解析。脚本会自动从 .env 加载凭据。

备忘录操作

创建备忘录:

bash scripts/memo-api.sh create "Your memo content here"
bash scripts/memo-api.sh create "Memo with tags" --tags "work,project"
bash scripts/memo-api.sh create "Private memo" --visibility PRIVATE

列出备忘录:

bash scripts/memo-api.sh list
bash scripts/memo-api.sh list --limit 10
bash scripts/memo-api.sh list --filter 'tag == "work"'

获取指定备忘录:

bash scripts/memo-api.sh get <memo-id>

更新备忘录:

bash scripts/memo-api.sh update <memo-id> "Updated content"
bash scripts/memo-api.sh update <memo-id> --add-tags "urgent"

删除备忘录:

bash scripts/memo-api.sh delete <memo-id>

归档备忘录:

bash scripts/memo-api.sh archive <memo-id>
搜索操作

按内容搜索:

bash scripts/search-api.sh "search query"
bash scripts/search-api.sh "docker kubernetes" --tags "devops"
bash scripts/search-api.sh "meeting notes" --from "2024-01-01"

按标签搜索:

bash scripts/tag-api.sh list                    # List all tags
bash scripts/tag-api.sh search "project-x"      # Find memos with tag
资源(附件)操作

上传文件:

bash scripts/resource-api.sh upload /path/to/file.pdf
bash scripts/resource-api.sh upload image.png --memo-id <id>

列出附件:

bash scripts/resource-api.sh list
bash scripts/resource-api.sh list --memo-id <id>

删除附件:

bash scripts/resource-api.sh delete <attachment-name>
用户操作

获取当前用户:

bash scripts/user-api.sh whoami

列出访问令牌:

bash scripts/user-api.sh tokens

工作流

用户询问备忘录相关内容时:

  1. “保存到我的备忘录” → 提取关键信息,添加合适的标签并创建备忘录
  2. “我写过哪些关于 X 的内容?” → 按内容或标签搜索备忘录,并展示结果
  3. “查找我关于项目 Y 的笔记” → 使用标签搜索或内容筛选
  4. “更新我关于 Z 的备忘录” → 搜索备忘录,获取 ID,然后更新内容
  5. “删除那条备忘录” → 先向用户确认,然后按 ID 删除
详细流程:快速记录
User: "Save this conversation about Docker networking to my memos"

1. Extract key information from conversation
2. Create memo with descriptive content
3. Add relevant tags (e.g., "docker", "networking", "conversation")
4. Confirm creation with memo ID
5. Optionally ask if user wants to make it public/private
详细流程:搜索和检索
User: "What did I write about Kubernetes last month?"

1. Search memos with query "kubernetes"
2. Apply date filter (last 30 days)
3. Present results with memo IDs and previews
4. User can request full content of specific memos
详细流程:整理
User: "Tag all my Docker memos with 'devops'"

1. Search for memos containing "docker"
2. For each result, update memo to add "devops" tag
3. Report number of memos updated
4. Show tag statistics

说明

API 详情
  • **身份验证:**在 Authorization 标头中使用 Bearer 令牌
  • 基础 URL:/api/v1 端点
  • **速率限制:**未记录限制(可自托管)
  • **分页:**使用 pageSize 和 pageToken 参数
  • **筛选:**Google AIP-160 标准(例如,tag == "work")
备忘录格式

备忘录支持完整的 Markdown 语法:

  • 标题、列表、代码块
  • 链接和图片
  • 任务列表(- [ ] 和 - [x])
  • 表格
可见性选项
  • PRIVATE - 仅你可见
  • PROTECTED - 已通过身份验证的用户可见
  • PUBLIC - 任何人均可见(RSS 订阅源)
最佳实践
  1. **使用描述性内容:**第一行会作为界面预览
  2. **统一使用标签:**使用小写字母,多词标签之间用连字符连接(例如,“project-alpha”)
  3. **归档旧备忘录:**保持工作区整洁
  4. **链接相关备忘录:**使用备忘录关联补充上下文
常见错误

401 未授权:

  • 检查 .env 中的 API token
  • Token 可能已过期(在 Memos 界面中重新生成)

404 未找到:

  • 确认 memo ID 存在
  • 检查 MEMOS_URL 是否正确

连接被拒绝:

  • Memos 实例未运行
  • 检查 .env 中的 URL

参考


🔧 Agent 工具使用要求

重要: 通过 zsh-tool 调用此技能中的脚本时,始终使用 pty: true。

若未启用 PTY 模式,即使命令成功执行,也无法看到命令输出。

正确的调用方式:

<invoke name="mcp__plugin_zsh-tool_zsh-tool__zsh">
<parameter name="command">./skills/memos/scripts/memo-api.sh [args]</parameter>
<parameter name="pty">true</parameter>
</invoke>
  • 故障排除: skills/memos/references/troubleshooting.md

评论

支持 Markdown