管理你的 Memos 备忘录实例,支持完整的备忘录生命周期操作。
在使用 memos API 之前,需要创建配置文件。
在 skill 目录下创建 config.json 文件:
memos-skill/
├── SKILL.md
├── config.json # 配置文件
└── ...
{
"instance_url": "https://your-memos-instance.com",
"access_token": "your-access-token",
"default_page_size": 10,
"default_visibility": "PRIVATE"
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| -------------------- | ------ | ---- | -------------------------------------------------- |
instance_url | string | 是 | 你的 memos 实例地址,如 https://memo.example.com |
access_token | string | 是 | 个人访问令牌 |
default_page_size | number | 否 | 默认分页大小(默认10) |
default_visibility | string | 否 | 默认可见性(PRIVATE, PROTECTED, PUBLIC) |
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// 获取 skill 目录路径
const skillDir = __dirname;
const configPath = path.join(skillDir, "config.json");
// 读取配置
const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
const instanceUrl = config.instance_url;
const accessToken = config.access_token;
const headers = {
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
};
处理任何 memos 相关请求时,默认遵循下面的实现方式:
config.json,拿到 instance_url 和 access_tokencurl 调用 memos API 完成查询、创建、更新、删除、上传附件等操作requests、axios 或其他 SDKimport fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const configPath = path.join(__dirname, "config.json");
const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
const instanceUrl = config.instance_url;
const accessToken = config.access_token;
curl -X POST \
-H "Authorization: Bearer $MEMOS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"content":"测试内容","tags":["test"]}' \
"$MEMOS_URL/api/v1/memos"
curl 命令PATCH 和 updateMaskcurl 风格一致curl 请求两步/api/v1/memoscontent: 备忘录内容(支持 Markdown)visibility: 可见性(PRIVATE, PROTECTED, PUBLIC)tags: 标签数组resources: 关联资源示例:
{
"content": "今天要完成的任务:\n- 完成项目文档\n- 回复客户邮件",
"visibility": "PRIVATE",
"tags": ["todo", "work"]
}
/api/v1/memospageSize: 每页数量(默认 10)pageToken: 分页令牌filter: 过滤条件(遵循 Google AIP-160 标准)creator == "users/1": 按创建者过滤row_status == "NORMAL": 正常状态的备忘录create_time > "2024-01-01": 按创建时间过滤tag == "work": 按标签过滤content.contains("关键词"): 内容搜索sort: 排序方式(createTime, updateTime)/api/v1/memos/{memo}/api/v1/memos/{memo}updateMask 指定要更新的字段,如 content,visibility,tags/api/v1/memos/{memo}使用 Google AIP-160 过滤语法进行高级搜索:
# 组合条件
content.contains("项目") AND tag == "work"
# 按时间范围
create_time > "2024-01-01" AND create_time < "2024-12-31"
# 多标签查询
tag == "work" OR tag == "personal"
# 排除条件
NOT tag == "archive"
# 完整示例
filter: "creator == \"users/1\" AND (tag == \"work\" OR tag == \"urgent\") AND create_time > \"2024-01-01\""
/api/v1/memos/{memo}/comments/api/v1/memos/{memo}/comments/api/v1/memos/{memo}/reactionsTHUMBS_UP, THUMBS_DOWN, HEART, FIRE, ROCKET, EYES, THINKING, CLAPPING, PARTY, ROCKET/api/v1/attachments/api/v1/attachments/api/v1/memos/{memo}/attachments{"attachmentIds": ["attachments/1", "attachments/2"]}/api/v1/memos/{memo}/relationsREFERENCE, COMMENT/api/v1/auth/status/api/v1/users/{user}/personalAccessTokenstoken 只在创建时显示一次Authorization: Bearer <YOUR_ACCESS_TOKEN>
{
"code": 0,
"message": "success",
"data": { ... }
}
{
"code": 3,
"message": "Invalid argument",
"details": []
}
用户说:"帮我记录一条备忘录,内容是今天和客户的会议要点..."
POST /api/v1/memos
{
"content": "今天和客户的会议要点:\n1. 确认交付时间...",
"visibility": "PRIVATE",
"tags": ["meeting", "client"]
}
用户说:"搜索我上个月关于项目的备忘录"
GET /api/v1/memos?filter=content.contains("项目") AND create_time > "2024-02-01"&pageSize=20
用户说:"把标签为'temp'的所有备忘录改成'archive'"
GET /api/v1/memos?filter=tag == "temp"&pageSize=100
# 然后对每个 memo 调用 PATCH 更新标签
用户说:"创建一个备忘录并附上这张图片"
# 1. 先上传附件
POST /api/v1/attachments
Content-Type: multipart/form-data
# 2. 创建备忘录
POST /api/v1/memos
{
"content": "图片说明...",
"resources": [{"name": "attachments/1"}]
}
用户说:"把我的 memos 实例配置为 https://memo.example.com,token 是 abc123"
处理步骤:
config.json 文件{
"instance_url": "https://memo.example.com",
"access_token": "abc123",
"default_page_size": 10,
"default_visibility": "PRIVATE"
}
代码示例:
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const config = {
instance_url: "https://memo.example.com",
access_token: "abc123",
default_page_size: 10,
default_visibility: "PRIVATE",
};
const skillDir = __dirname;
const configPath = path.join(skillDir, "config.json");
fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
console.log(`配置已保存到: ${configPath}`);
根据用户需求,灵活返回以下格式:
memos/{id},如 memos/123users/{id},如 users/1attachments/{id}2024-03-12T10:30:00Z共 1 个版本
暂无安全检测报告