mcpField
P
Policyseed

Policyseed

ローカル
policyseed.io法務・行政1今日更新

Policyseed について

Policyseedは、ガバナンス文書を準備する企業向けのオフラインSOC 2ポリシー生成ツールです。MCPサーバーを通じて、AIアシスタントとの会話で情報を集め、LLMではなく決定的なテンプレートからポリシーを生成できます。

主な機能

  1. 01YAML入力から22種類のポリシーを生成
  2. 02ポリシーのレビュー日を確認
  3. 03読み取り専用の監査証拠を収集
  4. 04決定的なMarkdownテンプレート

活用シーン

  1. 01SOC 2ポリシー一式の草案作成
  2. 02CIでレビュー期限切れのポリシーを検出
  3. 03クラウドサービスとGitHubの監査証拠を収集

MCP 対応

`policyseed mcp`コマンドでMCPサーバーを起動し、ClaudeやCursorなどのクライアントから利用できます。ポリシーの一覧表示、入力項目の質問、会話中のポリシー生成に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"odedmoshe-policyseed": {
"command": "npx",
"args": [
"-y",
"policyseed"
]
}
}
}
起動コマンドnpx -y policyseed

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmpolicyseed1.1.1

ツール

5

掲載時のツール一覧 · 3 日前に更新

このツールにパラメーターはありません。

詳細

policyseed

npm License: Apache-2.0 MCP Registry

無料でオフライン利用できる SOC 2 ポリシー生成ツールです。policyseed は、小規模なテンプレートエンジンとランタイム依存関係ゼロで、1 つの YAML 入力ファイルから 22 件のガバナンスポリシー文書を生成します。

npx policyseed init    # writes intake.yaml: company, cloud, identity provider, MFA, team size...
npx policyseed build   # renders the 22 policies into ./policies/

ブラウザーで使いたい場合は、同じテンプレートを policyseed.io/generate で実行できます。質問は 23 個で、登録は不要です。アップロードもありません。

  • 無料で Apache-2.0 ライセンスです。 利用、フォーク、変更が可能で、社内や顧客向けに配布できます。
  • 決定論的です。 同じ intake.yaml からは、常に同じ Markdown が生成されます。ランダム性はありません。
  • LLM は使用しません。 テンプレートはプレーンな Markdown と Mustache 形式のタグ構文で記述されており、モデルの出力ではありません。
  • 登録不要です。証拠を収集する場合を除き、ネットワーク通信はありません。 build、check、init、list、mcp はネットワーク通信を行わず、マシンまたは CI ランナー上だけで動作します。evidence は、すでに使用しているクラウド CLI(aws、gcloud、gh)のみを読み取り専用コマンドで呼び出します。実行した場合に限り呼び出されます。

これらのポリシーは、企業が確認して採用するための出発点であり、コンプライアンスを保証するものではありません。このツールが提供しないものをご覧ください。

出力例

各ポリシーには、入力ファイルで指定したツールと担当者が記載されます。以下は、例として AWS、GitHub、Google Workspace を利用し、MFA を有効にしている従業員 11~50 人の企業向けに、npx policyseed build で生成したアクセス制御ポリシーの抜粋です。

4.3 Google Workspace を従業員 ID の唯一の情報源とします。業務アプリケーションはシングルサインオンを利用できるよう連携し、対応している場合はプロビジョニングとプロビジョニング解除も自動化します。フェデレーションに対応できないアプリケーションは、代替レビューを実施する例外記録に記載します。

4.8 GitHub へのアクセスは、Google Workspace によるシングルサインオンで適用される組織メンバーシップを通じて付与します。リポジトリの権限はチーム単位で割り当てます。また、保護されたブランチでは、GitHub Actions によるコードのマージおよびデプロイの前に、作成者以外の担当者によるレビューを必須とします。従業員数の都合でこれが現実的でない場合は、セキュリティ責任者が代替レビューを文書化します。

22 件すべてのポリシーで、目的、適用範囲、役割と責任、番号付きのポリシー規定、手順、例外、適用、レビュー周期、改訂履歴という同じ 9 つのセクションを使用します。規定に番号が付いているため、管理策の根拠となる正確な文を監査担当者に簡単に示せます。

クイックスタート

Node.js 18 以降が必要です。インストールは不要です。npx で実行できます。

npx policyseed init
# edit intake.yaml with your company's details
npx policyseed build
npx policyseed check
  • init は、すべてのフィールド、許可される値、適切なデフォルト値をコメントで記載した intake.yaml を現在のディレクトリに書き込みます。--force を指定しない限り、既存のファイルは上書きしません。
  • build は intake.yaml を読み込み、検証して、会社名を含む見出しを付けた 22 件すべてのポリシーを ./policies/ に NN-<slug>.md ファイルとして書き込みます。
  • check は ./policies/ と intake.yaml を読み込み、ポリシーの最終レビュー日が review_cadence の許容期間を超えて古い場合、ステータス 1 で終了します。付属の GitHub Action はスケジュールに従ってこれを実行するため、期限を過ぎたポリシーがチェック失敗として表示されます。
  • list は、同梱されている 22 件のテンプレートを表示します。
  • evidence は、すでにサインインしている CLI を使用して、AWS、Google Cloud、GitHub から読み取り専用の SOC 2 証拠を収集します。監査証拠の収集をご覧ください。
  • --help と --version は、通常どおり動作します。

依存関係としてインストールする場合は、次のようにします。

npm install --save-dev policyseed
npx policyseed init

テンプレート構文リファレンス

テンプレートは、YAML フロントマターと、lib/render.js で実装されている少数のタグを含む、プレーンな Markdown ファイルです。

タグ動作
{{key}}インテークコンテキストから key の値を出力します。未知のキーは空文字列としてレンダリングされます。
{{#if key}} … {{/if}}key が真の場合にのみブロックをレンダリングします。
{{#unless key}} … {{/unless}}key が偽の場合にのみブロックをレンダリングします。
{{#each list}} … {{/each}}list の各項目につき 1 回ブロックを繰り返します。{{this}} は現在の項目です。

真偽値の判定は JavaScript に準拠しますが、空の配列も偽として扱われます。false、""、0、NaN、 null、undefined、[] は偽で、それ以外はすべて真です。

タグだけが単独で記述されたブロックタグ(前後が空白のみの行)は、その行とともに削除されるため、条件付き段落やループの後に余分な空行が残りません。連続する空行が 3 行以上ある場合は、2 行にまとめられます。

すべてのテンプレートで使用できるコンテキストは、lib/context.js の toTemplateContext() が intake.yaml から構築します。会社名、クラウドプロバイダー、ID プロバイダー、MFA の状態、取り扱うデータの種類などに加え、テンプレートの分岐に使用する has_mdm、has_vendors、scope_availability、small_team(従業員数 1~10 人)などの派生ブール値が含まれます。

22 のポリシー

#タイトル
1情報セキュリティポリシー
2適正利用ポリシー
3アクセス制御ポリシー
4認証およびパスワードポリシー
5資産管理ポリシー
6データ分類および取り扱いポリシー
7データ保持および廃棄ポリシー
8暗号化および鍵管理ポリシー
9変更管理ポリシー
10セキュアなソフトウェア開発ポリシー
11脆弱性およびパッチ管理ポリシー
12ログ記録および監視ポリシー
13インシデント対応ポリシー
14事業継続および災害復旧ポリシー
15バックアップおよび復旧ポリシー
16ベンダーおよびサードパーティリスク管理ポリシー
17リスク評価および管理ポリシー
18人事セキュリティポリシー
19エンドポイントおよびワークステーションセキュリティポリシー
20ネットワークおよびインフラストラクチャセキュリティポリシー
21物理セキュリティおよびリモートワークセキュリティポリシー
22プライバシーおよびデータ保護ポリシー

各ポリシーには、標準の 9 つのセクションがあります。目的、適用範囲、役割と責任、ポリシーの声明、手順、例外、適用、見直しの頻度、改訂履歴です。

CI でポリシーを最新の状態に保つ

intake.yaml と policies/ をバージョン管理しているリポジトリで、GitHub Action を使用します。

- uses: actions/checkout@v4
- uses: odedmoshe/policyseed@v1
  with:
    command: check

ポリシーの見直し期限が過ぎている場合、チェックは失敗します。そのため、古くなったポリシーがひっそり放置されるのではなく、赤い X として表示されます。.github/workflows/policy-review.yml は、コピーして使える週次ワークフローの完成版です。入力と出力については、docs/github-action.md を参照してください。

AI アシスタントから使用する(MCP)

policyseed mcp を実行すると、Model Context Protocol サーバーが起動します。Claude、Cursor などの MCP クライアントは、ポリシーの一覧表示、インテークの質問、会話内での任意のポリシーのレンダリングを行えます。アシスタントに入力した内容以外は、あなたのマシンから外部に送信されません。

claude mcp add policyseed -- npx -y policyseed mcp

Claude Desktop と Cursor の設定、ツール一覧、および会話例については、docs/mcp.md を参照してください。

監査証跡の収集

監査担当者は、ブランチ保護、MFA、保存時の暗号化、ログ記録、管理者アクセス権を持つユーザーなど、制御が設定されていることを示す証拠を求めます。policyseed evidence は、すでにインストールしてサインインしている aws、gcloud、gh の各 CLI を使って情報を収集し、日付入りの JSON ファイルとインデックスとして保存します。

npx policyseed evidence --providers aws,gcp,github \
  --repo acme/app --org acme --project acme-prod
evidence/2026-10-23/
  INDEX.md                                 criterion -> file -> what it shows -> auditor question
  CC6.1-aws-iam-account-summary.json
  CC6.1-aws-iam-credential-report.json
  CC8.1-github-branch-protection.json
  ...

動作の概要:

  • 読み取り専用です。 すべてのコマンドは Describe、Get、または List の呼び出しです(gh api の GET リクエストで、リクエストフィールドはありません)。名前だけが例外なのは aws iam generate-credential-report です。これは IAM に認証情報レポートの作成を依頼するコマンドで、IAM では Read アクションに分類され、設定は変更されません。--dry-run を指定すると、コマンドを実行せず、正確なコマンドを表示します。--list を指定すると、収集処理の一覧を表示します。
  • シェルは使用しません。 各コマンドは Node の execFile と固定の引数配列で実行されます。--repo、--org、--project、バケット名、トレイル ARN はシェル文字列に埋め込まず、それぞれ別の引数として渡します。ページャーと対話型プロンプトは無効化されます。
  • 各ファイルには CLI の JSON 出力に加えて、その出力を生成したコマンド、時刻、CLI のバージョン、終了コードが含まれます。ファイル名は、コレクターが最初に対応する SOC 2 基準に基づく <criterion>-<collector-id>.json です。INDEX.md には、各ファイルが対応するすべての基準が記載されます。
  • 機密情報のマスキング。 書き込みや表示の前に、機密情報と思われるキー(SessionToken、SecretAccessKey、password、token など)の値と、認証情報に見える文字列(GitHub トークン、AWS アクセスキー ID とセッショントークン、Google API キーと OAuth トークン、JWT、PEM 秘密鍵、key=value 形式のシークレット)が置き換えられます。そもそもシークレットが要求されることはありません。監査担当者が通常必要とするため、アカウント ID はそのまま保持されます。--redact-account-ids を指定すると、12 桁の ID は末尾 4 桁を残してマスキングされます。
  • 失敗しても実行は停止しません。 CLI がない、認証情報がない、または権限エラーが発生した場合は、INDEX.md に not collected: <reason> と記録して、次の処理に進みます。終了コードが 1 になるのは、何も収集できなかった場合のみです。
  • 再実行。 同じ日にプロバイダーが以前に作成したファイルは置き換えられ、INDEX.md は書き換えられます。それ以外の日付のフォルダー、他のプロバイダーのファイル、自分で追加したファイル(スクリーンショットなど)は変更されません。
  • 対象範囲。 AWS のリージョン単位のチェック(EBS のデフォルト暗号化、RDS、CloudTrail)には、CLI に設定されたリージョン(AWS_REGION またはプロファイルのリージョン)が使われます。GitHub のチェックは、1 つのリポジトリと 1 つの組織を対象とします。Google Cloud のチェックは、1 つのプロジェクト(--project または gcloud のデフォルト)を対象とします。S3 のバケット単位のチェックは、--max-buckets 個(デフォルトは 50 個)のバケットまで実行します。Windows では、gcloud はシェルなしでは Node が起動できない .cmd スクリプトのため、Google Cloud の収集処理は未収集として報告されます。
収集する内容
収集ツール基準コマンド
github-repo-settingsCC7.1gh api repos/{repo}:デフォルトブランチ、シークレットスキャン、プッシュ保護
github-branch-protectionCC8.1gh api repos/{repo}/branches/{default}/protection
github-branch-rulesCC8.1gh api --paginate repos/{repo}/rules/branches/{default}(ルールセットのルール)
github-dependabot-alertsCC7.1gh api repos/{repo}/vulnerability-alerts
github-org-2faCC6.1gh api orgs/{org}:two_factor_requirement_enabled
github-org-adminsCC6.3gh api --paginate orgs/{org}/members?role=admin
aws-iam-account-summaryCC6.1aws iam get-account-summary:ルートの MFA、ルートのアクセスキー
aws-iam-credential-reportCC6.1、CC6.2aws iam generate-credential-reportを実行し、続いてget-credential-reportを実行して、MFA、パスワード、アクセスキーの経過期間に関する列だけに絞り込みます
aws-iam-password-policyCC6.1aws iam get-account-password-policy
aws-cloudtrailCC7.2aws cloudtrail describe-trailsを実行し、続いて各トレイルに対してget-trail-statusを実行します
aws-ebs-default-encryptionCC6.1aws ec2 get-ebs-encryption-by-default
aws-s3-bucketsCC6.1、CC6.6aws s3api list-bucketsを実行し、続いて各バケットに対してget-bucket-encryptionとget-public-access-blockを実行します
aws-rds-instancesCC6.1、A1.2aws rds describe-db-instances:StorageEncrypted、BackupRetentionPeriodおよび関連フィールド
gcp-project-iam-policyCC6.3gcloud projects get-iam-policy {project}
gcp-logging-sinksCC7.2gcloud logging sinks list
gcp-sql-instancesA1.2、CC6.1gcloud sql instances list(バックアップ構成)
gcp-compute-disksCC6.1gcloud compute disks list(暗号化キー)
gcp-organizationsCC6.1gcloud organizations list

すべてのawsコマンドに--output jsonを、すべてのgcloudコマンドに--format=jsonを追加します。

必要な権限

実行に使用する ID には、読み取り専用アクセス権を付与してください。

AWS。 このポリシーは、すべての AWS 収集ツールを対象とし、それ以外は対象にしません。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PolicyseedEvidenceReadOnly",
      "Effect": "Allow",
      "Action": [
        "iam:GetAccountSummary",
        "iam:GenerateCredentialReport",
        "iam:GetCredentialReport",
        "iam:GetAccountPasswordPolicy",
        "cloudtrail:DescribeTrails",
        "cloudtrail:GetTrailStatus",
        "ec2:GetEbsEncryptionByDefault",
        "s3:ListAllMyBuckets",
        "s3:GetEncryptionConfiguration",
        "s3:GetBucketPublicAccessBlock",
        "rds:DescribeDBInstances"
      ],
      "Resource": "*"
    }
  ]
}

Google Cloud。 プロジェクトに対するroles/viewerでプロジェクトの収集ツールを利用でき、組織に対するroles/resourcemanager.organizationViewerでorganizations listを利用できます。 より細かなアクセス権を設定する場合は、プロジェクトに対してroles/iam.securityReviewer(IAM ポリシー)、roles/logging.viewer(シンク)、roles/cloudsql.viewer(SQL インスタンス)、roles/compute.viewer(ディスク)を付与してください。

GitHub。 ghは、サインインに使用している認証情報(gh auth loginまたはGH_TOKEN)を使用します。従来のブランチ保護、security_and_analysisブロック、Dependabot アラートの設定には、リポジトリの管理者読み取りアクセス権が必要です。ルールセットのルールには読み取りアクセス権だけで足ります。組織については、GitHub がtwo_factor_requirement_enabledを返すのは組織オーナーに限られ、非公開メンバーの一覧を返すのはメンバーに限られます。リポジトリのAdministration: readとMetadata: read、および組織のMembers: readを持つきめ細かなトークンがあれば、残りの情報を取得できます。トークンで読み取れない収集ツールの結果は「合格」ではなく、「未収集」として記録されます。

GitHub の収集ツールをスケジュールに従って実行し、その結果をワークフローのアーティファクトとして保存する方法については、docs/evidence.mdをご覧ください。

実行しないこと

実行した日の構成をそのまま保存します。その構成がポリシーを満たしているかどうかの判定は行わず、監査人が確認するすべての統制を網羅するわけでもありません。また、監査人自身によるテストに代わるものでもありません。監査人は独自にサンプルを選び、実行を見守りながらコマンドを再実行するよう求める場合があり、監査期間全体にわたって統制が運用されていたかどうかもテストします。

ホステッドジェネレーターおよび Audit Kit との関係

このパッケージは、policyseed.io のホステッドジェネレーターを支えるものと同じレンダリングエンジンです。ローカルで実行したい方、CI に組み込んでスクリプトで操作したい方、またはその仕組みを詳しく確認したい方に向けてパッケージ化されています。ホステッドサイトでは、有料の Audit Kit も提供しています。Audit Kit は Claude を使用して Policy Statements と Procedures のセクションをお客様の特定のスタックに合わせて調整し、エクスポート形式を追加します。この CLI には、その調整機能は含まれていません。

これは何ではないか

これらはガバナンス文書のテンプレートであり、法律上の助言でも、コンプライアンスを保証するものでもありません。SOC 2 レポートは独立した CPA 事務所による意見であり、ポリシー文書があるかどうかだけでなく、そこに記載された管理策を実際に運用しているかどうかに左右されます。たとえば、アクセスレビューを予定どおりに実施しているか、インシデントを実際に記録してトリアージしているか、バックアップを実際にテストしているかが重要です。外部に提示する前に、資格のある担当者(法律顧問、監査人、または経験豊富なコンプライアンス実務者)に出力を確認してもらってください。

コントリビューション

github.com/odedmoshe/policyseed で、イシューやプルリクエストを歓迎しています。ポリシーの文言の変更を提案する場合は、テンプレートの文章を直接編集し、テストスイート(node --test test/)を実行してください。レンダラーのパリティテストと CLI のスモークテストが引き続き成功するようにするためです。新しいインテークフィールドを追加する場合は、lib/context.js の DEFAULT_INTAKE、toTemplateContext、validateIntake をまとめて更新してください。これらは常に同期させる必要があります。

ライセンス

Apache License 2.0 — LICENSE を参照してください。Copyright the policyseed contributors.

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。