Skip to content

【substack-mcp】サムネ付き記事投稿CLIを整備する #1

Description

@nanameru

課題 / 目的

substack-mcp を使って、Markdown本文とサムネイル画像からSubstack記事を作成し、必要に応じて公開まで進められる導線を整える。今回の実運用対象は「Fable 5(現行の公式表記では Fable リブート)」の記事。

対象範囲

  • Markdown記事ファイルから下書きを作成するCLI導線の整備
  • ローカル画像またはURLをSubstackへアップロードし、記事カバー画像として設定する導線の整備
  • --publish 指定時のみ公開する安全な挙動
  • Fable記事本文とサムネイルの作成、可能であれば下書き投稿までの実行

完了条件

  • substack-mcp のパッケージ内コマンドで、本文作成、カバー設定、公開オプションを一連で実行できる
  • サムネイル付きの記事下書きが作れる
  • 公開操作は明示フラグまたはユーザー確認なしに実行されない
  • 関連するテスト、lint、またはbuild相当の検証結果を記録する

実装計画

  1. 既存の create_article.py / generate_and_publish.py / SubstackClient の責務を確認する
  2. パッケージ配下に再利用可能なCLIモジュールを追加し、pyproject.toml にentry pointを追加する
  3. cover imageアップロードと set_cover_image を下書き作成フローに統合する
  4. dry-runまたはユニットテストで引数処理とクライアント呼び出し順を検証する
  5. Fable記事本文とサムネイルを作成し、認証情報が利用可能なら下書き作成まで行う

テスト / CI計画

  • python -m compileall src
  • 追加したCLIのユニットテストまたはmock実行
  • 認証情報がある場合のみSubstack API実行。認証情報がない場合は下書き投稿をブロックとして記録する

ナレッジログ

  • 作業開始時点でopen Issueなし
  • 既存MCPには create_draftupload_imageset_cover_imagepublish_draft が存在
  • 既存の generate_and_publish.py はFAL_KEY依存かつ既存post_id前提なので、今回の「記事本文+サムネ+下書き作成」を単発で実行する導線は不足

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions