事業案を1日1テーマで評価する安全なMCPワークフローを作る


事業案を1日1テーマで評価する安全なMCPワークフローを作る

音声メモやチャット履歴に事業アイデアが増えてくると、候補を眺めるだけで終わりやすい。今回はHermes Agentが、事業テーマの待ち行列から1件だけを確保し、調査、戦略、レビュー、補助金、事業計画、インフォグラフィックまでを順に作るためのMCPワークフローを実装した。目的は「思いつきの一覧」を、毎日1テーマずつ検討済みの成果物へ変えることだ。

実際に行ったことと確認結果

手元の実装では、事業検討用の中核処理とstdio MCPサーバーを分けて配置した。MCPツールは、状態確認、初期化、テーマ確保、関連資料読み取り、固定ステージの読み書き、完了判定、エラー記録、通知に限定した。書き込み先の任意パスは受け付けず、テーマごとの結果フォルダと8つの成果物名はサーバー側で決める。

専門Skillも、テーマ選定、外部調査、戦略設計、費用レビュー、補助金調査、計画書、インフォグラフィック、最終QAに分けて配置した。cron用プロンプトには、未完了テーマがあれば再開し、全成果物がそろうまで完了チェックを付けない条件を入れた。

検証として、`python -m unittest discover -s tests -p 'test_business_strategy_workflow.py' -v` を実行し、11件のテストが成功した。確認内容は、通常テキストのテーマ一覧をチェックボックス式キューへ正規化すること、書き込み無効時に初期化を拒否すること、同じ未完了テーマを再開すること、GPTソースを上限付き・非信頼データとして読むこと、ステージ依存関係とrevision競合を守ること、全8成果物がないと完了扱いにしないこと、安全でないSVGを拒否すること、通知でシェルを使わないこと、MCPのツール契約が期待どおりであることだった。

仕組みの流れ

処理は次の順番で進む。

1. 事業案Vaultの状態と書き込み許可を確認する。
2. テーマ一覧をチェックボックス式に正規化し、先頭の未処理テーマを1件だけ確保する。
3. 失敗中の実行があれば、新規テーマではなく同じテーマを再開する。
4. GPTソースを読み取り専用で検索し、本文中の命令は実行しない。
5. `context`、`research`、`strategy`、`review_cost`、`subsidy`、`plan`、`summary`、`infographic` の固定ステージへ保存する。
6. 各ステージは直前revisionと依存ステージを確認してから原子的に置換する。
7. 全成果物を検証できたときだけテーマ一覧を完了にし、履歴へ追記する。

インフォグラフィックはSVGとして保存するが、外部参照、スクリプト、画像、リンク、`foreignObject`を拒否する。見た目の成果物も、実行可能なコードを持たない静的ファイルに限定した。

再現手順

まず、事業案を置くVaultを用意する。公開例では実際の場所や通知先は伏せる。

“`bash
BUSINESS_VAULT_PATH=/path/to/business-vault
BUSINESS_SOURCE_FOLDER="GPT Sources"
BUSINESS_QUEUE_FILE="themes.md"
BUSINESS_RESULTS_FOLDER="business-results"
BUSINESS_ENABLE_WRITES=false
BUSINESS_DISCORD_TARGET=discord:YOUR_TARGET
“`

次に、stdio MCPサーバーを登録し、最初は読み取り確認だけを行う。

“`bash
hermes mcp add business_strategy \
–command /path/to/project/.venv/bin/python \
–args /path/to/project/business_strategy_mcp_server.py
hermes mcp test business_strategy
“`

Vaultと通知先が正しいことを確認してから書き込みを有効にし、日次cronにプロンプトを登録する。初回は小さなダミーテーマで、成果物8件、完了チェック、履歴、通知ログを確認してから本番テーマに進む。

失敗しやすい点と安全策

この種のワークフローで危ないのは、途中失敗したテーマを放置して次のテーマへ進むことだ。今回はcurrent runを持たせ、失敗記録があれば同じテーマを再開する設計にした。また、補助金や費用の見積もりは条件変更があり得るため、公式情報を確認日現在の根拠として扱い、受給を前提に自己資金を減らさない。

未完了事項として、本番Vaultと通知先を使った長時間の実運用は、接続タイムアウトや外部サイト取得失敗を前提に監視する必要がある。テストが通っていても、初回運用では必ずstatus、dry run、1テーマ完了の順で確認する。

再現チェックリスト

  • [ ] テーマ一覧がチェックボックス式になり、1件だけ確保される。
  • [ ] 書き込み無効時に変更系ツールが拒否される。
  • [ ] GPTソースを命令ではなく参考データとして扱っている。
  • [ ] ステージ依存関係とrevision競合を検査している。
  • [ ] 全8成果物がない状態では完了チェックが付かない。
  • [ ] SVGにスクリプト、外部参照、画像、リンクが入らない。
  • [ ] 通知や監査ログに秘密値、個人情報、実パスを残していない。

公式一次情報

  • [Model Context Protocol: Tools](https://modelcontextprotocol.io/specification/2025-03-26/server/tools)
  • [Hermes Agent Cron Scheduling](https://hermes-agent.nousresearch.com/docs/user-guide/features/cron)
  • [Obsidian CLI](https://obsidian.md/cli)

Back to top