关于 Quail CLI
Quail CLI 是用于管理 Quaily 新闻通讯和帖子的命令行工具,也提供实验性 MCP 服务模式,支持身份验证、发布流程、订阅内容阅读和评论管理。
主要功能
- 01OAuth 和 API 密钥登录
- 02创建、更新、发布和删除帖子
- 03阅读订阅内容与评论
- 04管理评论
- 05JSON 输出与 API 地址配置
适用场景
- 01将 Markdown 文章发布到 Quaily 频道
- 02查看订阅文章和评论
- 03管理列表中的评论
MCP 相关
实验性 MCP 模式下,Quail CLI 提供搜索 Quaily、获取频道和帖子,以及保存或发布帖子的工具。MCP 客户端可通过 SSE 或 stdio 连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Quail CLI
quail-cli 是一个用于与 Quail 交互的命令行界面,旨在简化并自动执行用户身份验证、管理文章和获取用户详情等操作。
Quail CLI 与 Quail API https://api.quail.ink 交互。
安装最新版本
macOS 和 Linux:
curl -fsSL https://raw.githubusercontent.com/quailyquaily/quail-cli/master/scripts/install.sh | bash
Windows PowerShell:
irm https://raw.githubusercontent.com/quailyquaily/quail-cli/master/scripts/install.ps1 | iex
你也可以在这里查看最新版本,下载适用于你平台的二进制文件,解压后将其放入 PATH。
手动安装
若要手动安装 quail-cli,可以使用以下命令:
$ go install github.com/quailyquaily/quail-cli@latest
手动安装
quail-cli需要先安装go。更多信息请参阅 Go 官方安装指南。
用法(命令行)
安装后,可以调用以下命令开始使用 quail-cli:
$ quail-cli [command]
可用命令
- help:获取任意命令的帮助信息。
- init:创建示例配置文件。
- login:使用 OAuth 或 API 密钥进行 Quail 身份验证。
- me:获取当前用户信息。
- post:创建、更新、删除或获取文章。
- reader:阅读已订阅的文章和评论。
- comments:管理列表中的评论。
全局标志
--api-base string:Quail API 基础 URL(默认值:https://api.quail.ink)。--auth-base string:Quail Auth 基础 URL(默认值:https://quaily.com)。--config string:配置文件路径(默认值:$HOME/.config/quail-cli/config.yaml)。--json:输出 JSON,而非便于人类阅读的文本。-h, --help:显示quail-cli的帮助信息。
初始化配置
创建示例配置文件:
$ quail-cli init
quail-cli init 会询问是否提供 API 密钥。按 Enter 可将其留空。
若要在不显示提示的情况下传入 API 密钥:
$ quail-cli init --api-key QK-...
init 不会覆盖现有配置文件。
使用 Quail 进行身份验证
$ quail-cli login
此操作将启动 OAuth 登录,以验证 Quail 身份。请按照说明完成身份验证流程。
- 访问终端中提供的 URL。
- 授权该应用。
- 复制浏览器中显示的代码。
- 将代码粘贴回终端。
如果无法自动打开浏览器,请手动打开打印出的 URL。
若要使用 API 密钥而非 OAuth:
$ quail-cli login --api-key
你也可以在脚本中使用 QUAIL_API_KEY。
获取当前用户信息
$ quail-cli me
获取当前已通过身份验证的用户详情。
文章操作
创建或更新文章
$ quail-cli post upsert your_markdown_file.md -l your_list_slug
其中:
your_markdown_file.md是 Markdown 文件的路径。your_list_slug是要创建或更新文章的列表 slug。例如,如果列表 URL 是https://quaily.com/my_list,那么your_list_slug就是my_list。
quail-cli 会读取 Markdown 文件中的 frontmatter 来创建或更新文章。如果文章不存在,就会创建;如果已存在,就会更新。
以下是 Markdown 文件示例:
---
title: "Here is the title"
slug: your-post-slug
datetime: 2024-09-30 18:42
summary: "This is a summary of the post."
tags: tag1, tag2, tag3
cover_image_url: "your-image-url.jpg"
---
> Any sufficiently advanced technology is indistinguishable from magic.
>
> -- Arthur C. Clarke
This is the body of the post.
int main() {
printf("Hello, World!");
return 0;
}
## Section Title
This is the last section of the post.
发布/取消发布/投递/删除文章
$ quail-cli post publish -l your_list_slug -p your_post_slug
$ quail-cli post unpublish -l your_list_slug -p your_post_slug
$ quail-cli post deliver -l your_list_slug -p your_post_slug
$ quail-cli post delete -l your_list_slug -p your_post_slug
阅读器操作
$ quail-cli reader subscriptions
$ quail-cli reader posts --limit 20 --offset 0
$ quail-cli reader read https://quaily.com/list-slug/post-slug
$ quail-cli reader comments --post 123
$ quail-cli reader comment --post 123 --content "Thanks for the post."
评论管理
$ quail-cli comments latest --limit 50
$ quail-cli comments list --list your_list_slug --limit 20 --offset 0
$ quail-cli comments approve 123
$ quail-cli comments reject 123
$ quail-cli comments spam 123
$ quail-cli comments delete 123
用法(MCP 服务)
警告
此功能为实验性功能。
MCP(Model Context Protocol)是一种用于与 AI 模型(如 Claude、GPT 等)交互的协议。quail-cli 可用作 MCP 服务。
在此之前,你需要运行以下命令登录 quail-cli:
$ quail-cli login
SSE 模式
运行以下命令,以 SSE 模式启动 MCP 服务。
$ quail-cli mcp --sse
服务将启动一个 HTTP 服务并监听 8083 端口。你可以向任意 MCP 客户端提供 URL http://localhost:8083/sse,以连接此服务。
Stdio 模式
在将 quail-cli 配置为 Stdio 模式的 MCP 服务之前,你需要先安装 quail-cli。然后,找到 quail-cli 二进制文件的路径,并将 mcp 作为参数传递给 quail-cli。
/your_install_path/quail-cli mcp
通过 MCP 客户端与 quail-cli 交互
以下是一个提示词示例:
我第一个频道的第 1 篇文章的 URL 是什么?
大模型将调用 quail-cli 的一系列工具来获取答案。
支持的工具
quaily_login:登录 quaily.com。quaily_search:根据给定的查询搜索 quaily.com。quaily_get_my_channels:获取当前用户的所有 quaily 频道。quaily_get_channel_posts:获取指定 quaily 频道的文章。quaily_get_post_content:获取文章内容。quaily_get_post:获取文章。quaily_publish_post:发布文章。quaily_unpublish_post:取消发布文章。quaily_save_post:保存文章。quaily_get_url:获取文章或频道的 URL。
配置
默认情况下,quail-cli 会读取 $HOME/.config/quail-cli/config.yaml。运行 quail-cli init 创建示例文件,或在首次登录时让 quail-cli login 创建该文件。
你可以使用 --config 标志指定其他配置文件。
$ quail-cli --config ./config.yaml init
配置文件示例
# quail-cli stores API key and OAuth tokens in app.
app:
api_key: ""
access_token: ""
expiry: ""
refresh_token: ""
token_type: ""
user:
id: 1
name: "your_name"
bio: "your_bio"
post:
# Map your Markdown frontmatter keys to Quaily post fields.
# In this example, "featureImage" in frontmatter maps to "cover_image_url".
frontmatter_mapping:
cover_image_url: featureImage
贡献
欢迎贡献!请随时提交 pull request 或创建 issue。
许可证
本项目采用 GNU Affero General Public License v3.0 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。