Quail CLI について
Quail CLIは、Quailyのニュースレターや投稿を管理するコマンドラインツールで、実験的なMCPサーバー機能も備えています。認証、投稿の公開、購読記事の閲覧、コメント管理に対応します。
主な機能
- 01OAuthとAPIキーによるログイン
- 02投稿の作成・更新・公開・削除
- 03購読記事とコメントの閲覧
- 04コメントのモデレーション
- 05JSON出力とAPI URL設定
活用シーン
- 01Markdown記事を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
Quail に認証するための OAuth ログインが開始されます。画面の指示に従って認証を完了してください。
- ターミナルに表示された URL にアクセスします。
- アプリケーションを認証します。
- ブラウザーに表示されたコードをコピーします。
- コードをターミナルに貼り付けます。
ブラウザーが自動的に開かない場合は、表示された URL を手動で開いてください。
OAuth の代わりに API キーを使用するには、次のようにします。
$ 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は、投稿を作成または更新するリストのスラッグです。たとえば、リストの URL がhttps://quaily.com/my_listの場合、your_list_slugはmy_listです。
quail-cli は Markdown ファイルからフロントマターを読み取り、投稿を作成または更新します。投稿が存在しない場合は作成され、存在する場合は更新されます。
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 でリッスンします。URL http://localhost:8083/sse を指定して、任意の MCP クライアントからこのサーバーに接続できます。
Stdio モード
quail-cli を Stdio モードの MCP サーバーとして設定する前に、quail-cli をインストールする必要があります。次に、quail-cli バイナリのパスを確認し、quail-cli の引数として mcp を渡します。
/your_install_path/quail-cli mcp
MCP クライアント経由で quail-cli を操作する
プロンプトの例を示します。
私の最初のチャンネルの 1 件目の投稿の URL は何ですか?
LLM は 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
コントリビューション
コントリビューションを歓迎します。プルリクエストの送信や、イシューの作成をお気軽にどうぞ。
ライセンス
このプロジェクトは GNU Affero General Public License v3.0 の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。