说说笔记 Skill
本 skill 仅保留一份,统一封装“说说笔记”的两种调用模式:
API 模式:默认模式,项目默认部署通常不启用 MCP 时使用MCP 模式:只有在环境明确已启用 MCP 时才使用
核心要求:
- 不默认假设 MCP 已开启
- 优先保证功能可用,再选择更合适的调用通道
- 对用户隐藏底层差异,统一输出整理后的中文结果
何时调用
当用户有以下需求时,应调用本 skill:
- 发布一条说说或笔记
- 搜索、筛选、分页浏览内容
- 查看某条内容详情
- 更新、删除、置顶内容
- 登录后台、获取或重建 token
- 查询状态、前端配置、发布日历、RSS
- 排查 API 或 MCP 是否可用
配置驱动(推荐)
为避免每次改文档,建议优先使用同目录 config.json 作为运行参数来源。
优先级建议如下:
- 用户本轮对话明确指定(最高优先)
skill/config.json中的配置- 文档默认值(最低优先)
推荐 AI 行为:
- 开始执行前先读取
skill/config.json - 将
baseUrl作为 API 基础地址 - 将
mcpBaseUrl作为 MCP HTTP/SSE 验证地址 defaultMode=api时默认走 API- 当
autoFallbackToApi=true且 MCP 不可用时自动回退 API
首次安装自动引导(无需用户先说固定指令)
当满足以下任一条件时,AI 应进入“配置引导模式”并先提问,不直接执行写操作:
baseUrl为空baseUrl仍是占位值(如your-domain.com)onboarding.completed=false且onboarding.enabled=true
引导模式建议提问顺序:
- 你的站点域名是什么(如
https://example.com)? - 本次默认走
API还是MCP? - 是否启用“
MCP 失败自动回退 API”?
引导完成后,AI 应在后续对话中默认沿用本轮确认的配置,并在必要时提醒你同步更新 skill/config.json。
默认工作模式
默认决策顺序必须如下:
- 先判断是否已明确可用 MCP
- 若未明确启用 MCP,则直接走 API 模式
- 若已明确启用 MCP,再根据任务选择 MCP 模式
- MCP 失败时,若等价 API 可用,应回退到 API
以下情况视为“已明确启用 MCP”:
- 用户明确说明已配置 MCP 客户端
- 环境已提供可调用的 MCP server 配置
- 已知服务运行在
final-mcp、独立mcp容器,或已暴露/mcp/*端点 - 已验证
GET /mcp/tools或GET /mcp/sse可访问
以下情况一律按“未启用 MCP”处理:
- 普通默认部署
docker-compose.yml使用主应用target: final- 只有后端服务可访问,但未确认
1315或 MCP 子进程
双模式能力总览
API 模式
API 模式为默认首选,直接调用后端 HTTP 接口。
状态:GET /api或GET /api/status配置:GET /api/frontend/config或GET /api/settings分页:GET /api/messages/page或POST /api/messages/page详情:GET /api/messages/:id搜索:GET /api/messages/search标签内容:GET /api/messages/tags/:tag标签列表:GET /api/messages/tags日历:GET /api/messages/calendarRSS:GET /rss登录:POST /api/login发布:POST /api/messages或POST /api/token/messages更新:PUT /api/messages/:id或PUT /api/token/messages/:id删除:DELETE /api/messages/:id或DELETE /api/token/messages/:id置顶:PUT /api/messages/:id/pin或PUT /api/token/messages/:id/pin读取 token:GET /api/user/token重建 token:POST /api/user/token/regenerate更新设置:PUT /api/settings或PUT /api/token/settings
MCP 模式
MCP 模式仅在确认已启用后使用,工具入口位于 mcp/server.js。
search/搜索page/页面message/消息publish/发布/笔记/说说/说说笔记delete/删除update/更新pin/置顶消息settings/设置status/状态calendar/日历config/配置login/登录token/令牌rss/RSS
模式选择规则
一般规则
- 能用 API 直接完成的任务,默认优先 API
- 只有在 MCP 已明确可用时,才使用 MCP
- 不要为了“统一接口”而强行要求用户先启用 MCP
- 若用户请求的是“给 AI 客户端接入技能自动调用”,再优先介绍 MCP 模式
读取类任务
以下任务默认走 API:
- 搜索
- 分页
- 查看详情
- 查询状态
- 查询配置
- 查询日历
- 获取 RSS
写入类任务
以下任务在默认情况下也应优先 API:
- 发布
- 更新
- 删除
- 置顶
- 修改设置
- 登录并获取 token
只有当 AI 客户端已经接好 MCP,且用户希望通过 MCP 工具统一操作时,才切到 MCP。
认证规则
API 模式认证
读取接口通常无需认证:
/api/api/status/api/frontend/config/api/settings/api/messages/page/api/messages/:id/api/messages/search/api/messages/calendar/rss
写接口需要认证,分两类:
会话认证:/api/login成功后,调用/api/messages/*、/api/settings、/api/user/token*Token 认证:调用/api/token/messages*、/api/token/settings
建议:
publish、delete可优先使用 token 路由update、pin、settings更稳妥的方式是先登录,使用会话路由读取 token与重建 token必须先登录
MCP 模式认证
search、page、message、status、calendar、config、rss通常无需认证publish、delete可使用NOTE_TOKEN或已登录会话update、pin、settings应优先先执行logintoken必须先执行login
推荐执行流程
搜索与浏览
- 若未确认 MCP,直接调用 API 搜索或分页接口
- 用户提供
id时,直接查详情 - 用户提供标签时,优先用标签或搜索接口
- 返回结果时整理为中文摘要
推荐输出字段:
id- 发布时间
- 作者
- 摘要
- 图片数量或置顶状态(如有)
发布
- 先判断用户要发布的内容类型
- 再判断当前可用的是 API 还是 MCP
- 写入前确认认证方式
- 发布后返回成功结果与内容标识
内容类型建议:
- 文本:
type: "text" - Markdown:
type: "markdown" - 单图:
type: "image" - 多图:
type: "multipart"
更新、删除、置顶
- 先通过搜索或详情确认目标
- 对危险操作再次确认目标
id - 选择可用认证方式执行写操作
- 必要时重新读取结果确认变更已生效
API 参数速查
搜索
请求:
GET /api/messages/search?keyword=欢迎&page=1&pageSize=10
说明:
- 也可使用
query作为关键词字段 - 关键词以
#开头时,可按标签语义理解 - 未提供关键词时更适合改用分页接口
分页
GET /api/messages/page?page=1&pageSize=10
或:
POST /api/messages/page
{
"page": 1,
"pageSize": 10
}
详情
GET /api/messages/123
发布文本
POST /api/token/messages
{
"type": "text",
"content": "今天完成了 skill 配置"
}
发布 Markdown
POST /api/token/messages
{
"type": "markdown",
"content": "# 标题\n正文内容"
}
发布单图
POST /api/token/messages
{
"type": "image",
"image": "https://example.com/a.jpg",
"content": "图片配文"
}
发布多图
POST /api/token/messages
{
"type": "multipart",
"images": [
"https://example.com/a.jpg",
"https://example.com/b.jpg"
],
"content": "多图说明"
}
更新
PUT /api/messages/123
{
"content": "更新后的内容"
}
删除
DELETE /api/messages/123
置顶
PUT /api/messages/123/pin
{
"pinned": true
}
登录
POST /api/login
{
"username": "admin",
"password": "your_password"
}
获取 token
GET /api/user/token
重建 token
POST /api/user/token/regenerate
MCP 参数速查
搜索
{
"query": "欢迎",
"page": 1,
"pageSize": 10
}
分页
{
"page": 1,
"pageSize": 10
}
详情
{
"id": "123"
}
发布
{
"type": "text",
"content": "今天完成了 skill 配置"
}
更新
{
"id": "123",
"content": "更新后的内容"
}
删除
{
"id": "123"
}
置顶
{
"id": "123",
"pinned": true
}
登录
{
"username": "admin",
"password": "your_password"
}
安装说明
本目录为独立 skill 目录,可单独复制到本地 AI 客户端技能目录中使用。
建议目录结构:
skill/
SKILL.md
USAGE.md
安装步骤:
- 复制
skill整个目录 - 保持主 skill 文件名为
SKILL.md - 将配套说明文档保留为
USAGE.md - 重启或刷新 AI 客户端技能索引
建议同时保留并按需修改:
config.json:集中维护域名、默认模式与认证偏好
API 使用建议
若你只是部署了默认项目,通常直接使用 API 即可。
推荐先定义:
export BASE_URL="https://your-domain.com"
export MCP_BASE_URL="https://your-domain.com"
基础地址示例:
- 本地:
http://localhost:1314 - 线上:
https://your-domain.com
建议优先检查:
GET /api/statusGET /api/messages/page?page=1&pageSize=5GET /rss
MCP 使用建议
MCP 不是默认前提,需要单独启用后再使用。
本地 Node 运行
cd /Library/Github/Ech0-Noise/mcp
npm install
客户端配置思路:
{
"mcpServers": {
"shuoshuo-notes": {
"command": "node",
"args": ["/Library/Github/Ech0-Noise/mcp/server.js"],
"env": {
"NOTE_HOST": "https://your-domain.com",
"NOTE_HTTP_PORT": "0",
"NOTE_TOKEN": "你的后台token"
}
}
}
}
独立容器运行
若使用独立 mcp 服务或 final-mcp 目标,可通过 /mcp/* 端点验证。
curl "$MCP_BASE_URL/mcp/tools"
curl -N "$MCP_BASE_URL/mcp/sse"
输出要求
使用本 skill 时,建议:
- 默认先说明当前走的是
API还是MCP - 搜索结果使用中文整理,不直接裸露原始 JSON
- 发布、更新、删除、置顶后明确说明是否成功
- 出现失败时指出是认证失败、参数错误、接口不可用,还是 MCP 未启用
- 对删除、覆盖更新、置顶切换等操作先确认目标对象
常见问题
为什么不能默认走 MCP
因为项目默认部署并不等于默认启用 MCP。
已知依据:
docker-compose.yml中主应用使用target: finalREADME.md明确区分了不带 MCP 的final与带 MCP 的final-mcp
API 可用但 MCP 不可用
这属于正常情况。
处理方式:
- 继续走 API 模式
- 不要要求用户必须先部署 MCP
写操作 401 或 403
处理方式:
- 检查是否已登录
- 检查 token 是否有效
- 区分当前走的是会话路由还是 token 路由
MCP 端口占用
若遇到 EADDRINUSE:
- 将
NOTE_HTTP_PORT设为0 - 或更换未占用端口
配套文档
同目录已提供以下配套文档:
USAGE.md:完整使用说明主文档,包含快速开始、模式判断、认证流程、操作流程、排障与最佳实践EXAMPLES.md:可直接照抄的 API / MCP 示例、响应模板、排错示例
参考位置
- 项目说明:
README.md - MCP 说明:
mcp/README.md - API 路由:
internal/routers/routers.go - MCP 服务入口:
mcp/server.js
Source: rcy1314/echo-noise — distributed by TomeVault.