fresh-auth について
Fresh Auth は、エージェント向けに Microsoft 365 と Notion への CLI アクセスをまとめるスキルです。付属スクリプトは生のプロバイダートークンではなく、Auth Service Proxy とエージェントセッションの許可を使用します。
主な機能
- 01Microsoft 365 の Drive、Mail、Calendar、People 操作
- 02Notion の検索、データベース照会、ページ編集
- 03OAuth 承認とエージェントセッション許可
- 04Office と Notion をまたぐワークフロー
活用シーン
- 01Drive を検索して Outlook の返信を送信
- 02カレンダーの予定確認と人物検索
- 03Drive 文書を変換して Notion にメモを保存
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fwfutures/ skills --skill fresh-authインストール後、Claude Code で/fresh-authを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/notion-query.jsnotion-query.shoffice-cli.jsoffice-cli.ts詳細
Fresh Auth Workspace CLI
Microsoft 365(Graph)および Notion に、セキュリティと ID を考慮してアクセスするための単一の入口として、このスキルを使用してください。
このスキルを使用する場面
office-cliを通じたドライブ操作、OneDrive ファイルへのアクセス、共有リンクの操作。office-cliを通じた Outlook の受信トレイ、検索、送信、返信の操作。office-cliを通じたカレンダーの検索と予定の確認。office-cliを通じた人物の検索。notion-queryを通じた Notion データベースの検索、クエリ、ページの読み書き、Markdown 変換。- Office と Notion のデータを組み合わせるワークフローを含むあらゆるリクエスト。
セキュリティモデル
- Microsoft Graph および Notion の操作には、
https://auth.freshhub.aiの Auth Service Proxy を使用してください。 - エージェントセッションの許可と OAuth 承認を使用し、プロバイダートークンを直接使用しないでください。
~/.config/fresh-auth/agent-sessionのパーミッションを安全なモード(600)にしてください。- 互換性のため、従来の
~/.config/office-cli/agent-sessionも引き続き読み込まれます。 - シークレットは環境変数に保存してください。
- Office の PDF/画像変換には
OPENROUTER_API_KEYを使用してください。 - デフォルトのプロキシエンドポイントを変更する場合にのみ、
AUTH_SERVICE_URLを使用してください。
ランタイムの前提条件
scripts/office-cli.jsとscripts/notion-query.jsの実行には Node.js(18 以降)をインストールしてください。- このスキルのフォルダーからコマンドを実行するか、明示的なパスをエクスポートしてください。
# Resolve skill location for common installers
export FRESH_AUTH_DIR="${HOME}/.agents/skills/fresh-auth"
[ -d "$FRESH_AUTH_DIR" ] || export FRESH_AUTH_DIR="${HOME}/.codex/skills/fresh-auth"
export OFFICE_CLI="${FRESH_AUTH_DIR}/scripts/office-cli.js"
export NOTION_CLI="${FRESH_AUTH_DIR}/scripts/notion-query.js"
export AUTH_SERVICE_URL="https://auth.freshhub.ai"
# Quick command discovery
[ -f "$OFFICE_CLI" ] && node "$OFFICE_CLI" status
[ -f "$NOTION_CLI" ] && node "$NOTION_CLI" status
同梱スクリプト
- Microsoft Graph を利用するドライブ、メール、カレンダー、人物の操作には
scripts/office-cli.jsを使用します。 - 認証サービスプロキシを通じた Notion の読み書きワークフローには
scripts/notion-query.jsを使用します。
Office + Graph:標準的なフロー
Graph を利用するツールへのアクセスを許可する際は、このフローに従ってください。
# Register and create grants
node "$OFFICE_CLI" login
node "$OFFICE_CLI" request drive
node "$OFFICE_CLI" request mail
node "$OFFICE_CLI" request cal
node "$NOTION_CLI" request
# Verify active grants
node "$OFFICE_CLI" status
node "$NOTION_CLI" status
エージェントによる確認の引き継ぎ
エージェントが login または request を実行すると、CLI に確認用の URL とコードが表示されることがあります。
- エージェントが認証コマンドを実行し、確認用の出力を正確に取得します。
- エージェントが確認用 URL とコードをユーザーに送信します(言い換えないでください)。
- あらかじめコードが入力された次の形式の URL を共有することを推奨します。
https://auth.freshhub.ai/agent/verify?code=<CODE> - ユーザーが URL を開き、コードを確認して
Verify Codeをクリックし、次の画面で手動でApproveをクリックします。 - エージェントは承認のポーリングが完了するまで待ってから、依頼されたタスクを続行します。
承認に失敗した場合は、このフローを繰り返し、コードを入力する前に、ユーザーが意図した Fresh Auth アカウントにサインインしていることを確認してください。
コマンド一覧:Office CLI
ドライブ/Graph ストレージ
node "$OFFICE_CLI" drive list
node "$OFFICE_CLI" drive list "/Documents"
node "$OFFICE_CLI" drive search "Quarterly report"
node "$OFFICE_CLI" drive download <file-id> out.docx
node "$OFFICE_CLI" drive content <file-id>
node "$OFFICE_CLI" drive convert <file-id> --output=notes.md
node "$OFFICE_CLI" drive share <file-id> --type edit
node "$OFFICE_CLI" drive share <file-id> --anyone
node "$OFFICE_CLI" drive permissions <file-id>
node "$OFFICE_CLI" drive unshare <file-id> <permission-id>
メール
node "$OFFICE_CLI" mail inbox
node "$OFFICE_CLI" mail inbox --count 50
node "$OFFICE_CLI" mail unread
node "$OFFICE_CLI" mail search "team update"
node "$OFFICE_CLI" mail read <message-id>
node "$OFFICE_CLI" mail send --to "[email protected]" --subject "Brief" --body "Thanks for the update"
node "$OFFICE_CLI" mail send --to "brad" --subject "Quick check" --body "Approved" --yes
node "$OFFICE_CLI" mail reply <message-id> --body "Got it."
node "$OFFICE_CLI" mail reply-all <message-id> --body "Thanks everyone."
カレンダー
node "$OFFICE_CLI" cal today
node "$OFFICE_CLI" cal tomorrow
node "$OFFICE_CLI" cal events --days 14
node "$OFFICE_CLI" cal events --full
人物の検索(Graph 連絡先ヘルパー)
node "$OFFICE_CLI" people "brad"
node "$OFFICE_CLI" people "brad" --verbose
Notion コマンド一覧
node "$NOTION_CLI" login
node "$NOTION_CLI" request
node "$NOTION_CLI" status
node "$NOTION_CLI" me
node "$NOTION_CLI" find-db "my database"
node "$NOTION_CLI" search "my database"
node "$NOTION_CLI" get-db <database-id>
node "$NOTION_CLI" query-db <database-id>
node "$NOTION_CLI" get-page <page-id>
node "$NOTION_CLI" get-markdown <page-id>
node "$NOTION_CLI" create <database-id> "Title" -p "Status=In progress" -p "Priority=High"
node "$NOTION_CLI" update <page-id> -p "Status=Done"
node "$NOTION_CLI" set-body <page-id> -
node "$NOTION_CLI" append-body <page-id> -
データベース ID が不明な場合は、まず find-db を使用してください。データベースの id、title、url が返されるため、その ID を get-db、query-db、または create に直接コピーできます。
Notion バックログヘルパー
# Optional: enable shortcuts for a specific Notion backlog database
export NOTION_BACKLOG_DB_ID="<database-id>"
node "$NOTION_CLI" backlog
node "$NOTION_CLI" backlog "In Progress"
node "$NOTION_CLI" create-backlog "New task"
複数ツールの使用パターン
- 安全に ID を特定するため、まず
peopleを実行し、その後mail send --to <resolved email>を実行します。 - Notion のタスクを
searchまたはquery-dbで取得し、append-bodyでコンテキストを追加します。 - ドライブ内の会議 PDF を
drive convertで Markdown に変換し、append-bodyを使ってメモを Notion に保存します。
エラー処理
no_agent_session:node "$OFFICE_CLI" loginを実行します。no_grant:node "$OFFICE_CLI" request <drive|mail|cal>を実行します。token expired:node "$OFFICE_CLI" statusを実行し、返された再認証用 URL に従います。no agent session(Notion):node "$NOTION_CLI" loginを実行します。no grant(Notion):node "$NOTION_CLI" requestを実行します。NOTION_BACKLOG_DB_IDが未設定:変数を設定するか、バックログ用のショートカットの代わりに汎用のquery-db/createコマンドを呼び出します。- Microsoft アカウントがリンクされていない:Graph プロキシの応答に出力された URL に従います。
- Notion アカウントがリンクされていない:CLI に出力された Notion 接続用 URL に従います。
公開時の確認事項
- プロキシ URL は
AUTH_SERVICE_URLで設定可能にしてください。 - スキルの出力に API キーやセッション ID を埋め込まないでください。
- すべてのコマンドのデフォルトの接続先は
https://auth.freshhub.aiにしてください。 - 自己完結型のインストールにするため、このスキルの
scripts/フォルダーに両方の CLI を含めてください。 - Microsoft 365 と Notion の機能は、統合されたユーザー向けアクセス経路であるため、オンボーディングドキュメントに両方とも記載してください。
コメント
Markdown 対応