mcpField
F
fresh-auth

fresh-auth

github.com/fwfutures生産性039 回インストール7 週間前に更新
リポジトリ

fresh-auth について

Fresh Auth は、エージェント向けに Microsoft 365 と Notion への CLI アクセスをまとめるスキルです。付属スクリプトは生のプロバイダートークンではなく、Auth Service Proxy とエージェントセッションの許可を使用します。

主な機能

  1. 01Microsoft 365 の Drive、Mail、Calendar、People 操作
  2. 02Notion の検索、データベース照会、ページ編集
  3. 03OAuth 承認とエージェントセッション許可
  4. 04Office と Notion をまたぐワークフロー

活用シーン

  1. 01Drive を検索して Outlook の返信を送信
  2. 02カレンダーの予定確認と人物検索
  3. 03Drive 文書を変換して Notion にメモを保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fwfutures/skills --skill fresh-auth

インストール後、Claude Code で/fresh-authを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
notion-query.js
notion-query.sh
office-cli.js
office-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 とコードが表示されることがあります。

  1. エージェントが認証コマンドを実行し、確認用の出力を正確に取得します。
  2. エージェントが確認用 URL とコードをユーザーに送信します(言い換えないでください)。
  3. あらかじめコードが入力された次の形式の URL を共有することを推奨します。 https://auth.freshhub.ai/agent/verify?code=<CODE>
  4. ユーザーが URL を開き、コードを確認して Verify Code をクリックし、次の画面で手動で Approve をクリックします。
  5. エージェントは承認のポーリングが完了するまで待ってから、依頼されたタスクを続行します。

承認に失敗した場合は、このフローを繰り返し、コードを入力する前に、ユーザーが意図した 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 の機能は、統合されたユーザー向けアクセス経路であるため、オンボーディングドキュメントに両方とも記載してください。

コメント