gnt について
gnt は AI エージェント向けの Git ネイティブなポリシーレイヤーです。ルールはリポジトリ内の Markdown ファイルとして管理され、プルリクエストのマージで承認されます。エージェントは操作前に MCP 経由で check_action を呼び出し、許可・ブロック・人による確認の判定を受け取ります。エージェントの操作に監査証跡を残したいチーム向けです。
主な機能
- 01Git で管理するルールファイルと PR による承認
- 02check_action による allowed・blocked・needs_human の判定
- 03判定に引用ルールと一行の理由を付与
- 04ルールの Git ファイルと承認 PR への追跡
- 05承認済みルールがない場合のフェイルクローズ動作
活用シーン
- 01返金、データ削除、顧客へのメッセージ送信前のルール確認
- 02エージェントの操作に対する追跡可能な根拠の記録
- 03ルールファイルのフロントマターのローカルおよび CI での検証
MCP 対応
gnt は MCP サーバーとして動作し、check_action、search_rules、get_rule、list_skill_packs、get_skill_pack の 5 つのツールを MCP クライアントに提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.gntai.dev/mcpclaude mcp add --transport http gnt-ai-gnt https://api.gntai.dev/mcp{"mcpServers":{"gnt-ai-gnt":{"type":"http","url":"https://api.gntai.dev/mcp"}}}Cursor で開く{"servers":{"gnt-ai-gnt":{"type":"http","url":"https://api.gntai.dev/mcp"}}}VS Code で開く{"mcpServers":{"gnt-ai-gnt":{"type":"http","url":"https://api.gntai.dev/mcp"}}}{"mcpServers":{"gnt-ai-gnt":{"serverUrl":"https://api.gntai.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
以下のセットアップを一度実行するだけで、チームが動かすすべてのエージェントは、行動する前に MCP を介して必ず確認しなければならない git ネイティブなルールブックを持つようになります。それは、すでにコードを承認しているのと同じ方法、つまりマージされたプルリクエストによって承認されます。
- ルールはファイルとしてリポジトリ内に存在し、ダッシュボードのクリックではなく通常の PR を通じて配布されます。
- エージェントは、危険を伴う操作 (返金、削除、顧客へのメッセージ) の前に MCP 経由で
check_actionを呼び出し、許可・ブロック・エスカレーションのいずれかの判定を受け取ります。 - すべてのルールは、それを承認した git ファイルと PR まで遡ることができるため、「なぜエージェントはあのようなことをしたのか」には常に記録が残ります。
こうしたものを自分で動かしたくない場合は、gntai.dev のホスト版が、Postgres インスタンスを立ち上げることなく同じことを実現します。
はじめに (30 秒)
npm install -g @gnt-ai/cli
gnt login
gnt connect github
gnt prebrain
# merge the opened PR on GitHub. that merge is the approval
まず Docker で試す
Node や npm をインストールする前に実際の check_action レスポンスを確認するには、
リポジトリをクローンして Docker のみのデモを実行してください:
./demo.sh
これは隔離された gnt-demo Compose プロジェクト内に完全なローカルスタックを構築し、
承認済みの返金ルールを投入して check_action を呼び出し、再度実行できる curl コマンドを
出力します。Anthropic のキーがない場合、実際のフェイルクローズド経路は
needs_human を返します。モデルによる根拠に基づくポリシー判定を有効にするには
GNT_DEMO_ANTHROPIC_API_KEY=sk-ant-... ./demo.sh を渡してください。デモは決定的なローカル埋め込みと
localhost 専用の使い捨てシークレットを使用するため、ZeroEntropy キーは必要ありません。

gnt prebrainがまだスキャンするものがない場合は、まずgnt initを実行してください — ローカルにrules/を、実際に確認して編集できるいくつかのサンプルルールファイルとともに スキャフォールドし、代わりに出発点となる厳選されたパックについてgnt prebrain --starter-packsを 案内します。
そのマージにより、接続されたリポジトリに次のような形のルールファイルが配置されます:
your-repo/
└── rules/
├── refund-approval-threshold.md
└── contract-legal-cc.md
各ファイルは YAML フロントマター付きのプレーンな markdown です:
---
title: Never refund over $500 without a manager
status: approved
confidence: 0.91
owner_id: finance-team
source_citations: [...]
source: slack
tags: [refunds, finance]
last_validated_at: 2026-07-20
version: 1
superseded_by: null
approved_by: [email protected]
approved_at: 2026-07-21T14:03:00Z
created_at: 2026-07-18T09:12:00Z
pr_number: 142
pr_url: https://github.com/your-org/your-repo/pull/142
---
Refunds over $500 need manager sign-off before they go out...
実際の動作を見る
まだ表示できる記録されたトランスクリプトはありません (この README の末尾に記載されているギャップを参照してください)。
以下は、check_action 呼び出しが返す実際のレスポンス形状を、ツールの
コントラクトからそのまま示したものです:
{
"verdict": "blocked",
"reason": "Refund exceeds the $500 threshold without manager sign-off (rules/refund-approval-threshold.md)",
"cited_rules": [
{ "id": "refund-approval-threshold", "title": "Never refund over $500 without a manager" }
],
"rules_retrieved": 3
}
verdict は allowed、blocked、needs_human のいずれかです。needs_human はフェイルクローズドの
デフォルトです。承認済みのルールがその操作をカバーしていない、検索が失敗した、またはチェックを完了できなかった場合です。
決して推測はしません。
できること
1 つの MCP エンドポイント、5 つのツール:
| ツール | できること |
|---|---|
check_action | エージェントが操作を行う前に、記述された操作を承認済みルールに照らしてチェックします。allowed、blocked、needs_human のいずれかを、引用されたルールと 1 行の理由とともに返します。 |
search_rules | 組織の承認済みルールに対するセマンティック検索で、オプションでタグによる絞り込みが可能です。空のリストは、そのクエリをカバーする承認済みルールがないことを意味します。 |
get_rule | 承認済みルールを id で 1 つ取得し、その来歴 (誰が、いつ承認したか、何から引用されたか) とともに返します。 |
list_skill_packs | 組織のコンパイル済みスキルパックのすべてのバージョンを、新しい順に一覧表示します。 |
get_skill_pack | コンパイル済みスキルパックのマニフェストとファイル一覧を id で取得します。 |
前提条件
| 要件 | 確認 | 入手 |
|---|---|---|
| Node >=22.13 | node --version | nodejs.org |
インストール
| 方法 | コマンド |
|---|---|
| curl | curl -fsSL gntai.dev/install.sh | sh |
| npm | npm install -g @gnt-ai/cli |
gnt には Node >=22.13 が必要です。CLI がバージョンエラーで起動しない場合は、まず Node を更新し、
node --versionで確認してください。
よく使うコマンド
gnt login # sign in, store an API key locally
gnt init # scaffold a local rules/ dir with example rule files
gnt connect github # connect the repo your rules PRs open against
gnt prebrain # scan sources, extract candidate rules, open PRs
gnt review # review rules awaiting approval
gnt status # show brain status
gnt pull # download the latest skill pack
gnt gaps # list uncovered queries with no approved rule
設定
| 変数 | デフォルト | 制御する内容 |
|---|---|---|
GNT_API_URL | https://api.gntai.dev | CLI と MCP の呼び出しがアクセスする API エンドポイント |
GNT_WEB_URL | https://gntai.dev | gnt login のブラウザステップで使用される Web アプリ |
GNT_CONFIG_DIR | ~/.gnt | credentials.json とローカル設定が置かれる場所 |
プライバシー
- CLI にも Web アプリにも、分析やテレメトリーへの依存はありません。
gnt prebrainのデフォルトの抽出モードはオンデバイスではなくクラウドです。ソーステキストは Anthropic の API(または設定すればゼロデータ保持の Vercel AI Gateway)に直接送信され、gnt 自身のサーバーには決して送信されません。完全なオンデバイス抽出には、ローカルの Ollama デーモンに対して--mode localを指定する必要があります。- 抽出されたルール候補は、PR を作成するために引き続き gnt API に送信されます。クラウドモードでは生のソーステキストは gnt のサーバーに残りませんが、生成されたルールテキストは残ります。
- ルールは接続された GitHub リポジトリと gnt 自身のデータベースに存在します。MCP ツールは、呼び出しのたびにリポジトリをクローンするのではなく、gnt のストアから読み取ります。
- セルフホスト:
apps/apiは、SENTRY_DSNを自分で設定した場合にのみエラーデータを Sentry に送信します。未設定のままにすれば何も送信されません。
チームでのセットアップ
- ルールを書く人: 接続されたリポジトリにアクセスできる人なら誰でも、
gnt prebrain(実際のソースからバッチ抽出)またはgnt review(手動で提案)を通じて作成できます。 - 承認の仕組み: PR をマージすることが承認です。別途の公開ステップはありません。
- コミットされるもの: 上記のフロントマターとプレーンな Markdown 本文を持つ
rules/<rule-id>.mdファイルです。 - レビュー前に不正なルールを検出する:
gnt rules lintはルールファイルのフロントマターをローカルでチェックし、gnt-ai/gnt/.github/actions/lint-rulesは同じチェックをルールリポジトリ自身の PR に対する CI ステップとして実行するため、不正なフロントマターはレビューではなく PR の時点で失敗します。
トラブルシューティング
セルフホスト:
gnt loginのブラウザステップに着地する場所がありません。gnt loginはブラウザで/cli-loginページを開き、結果として得られるキーを API にポーリングします。このページはホスト型製品の Web アプリによって提供されるもので、このリポジトリには含まれていません。現時点では CLI のみのログインフロー(デバイスコードなど)はなく、キーを手動で設定するgntコマンドもありません。このスタックをセルフホストするには、現在のところその 1 つのルート用に独自の薄いフロントエンドを構築する必要があります(サインインフローを完了し、CLI にキーを渡すだけで十分です)。これは設定の問題ではなく、セルフホストの経路に実在する未解決のギャップであり、適切に解消するには CLI のみのログインフローを追加する必要があります。
ValueError: refusing to start: these settings still have their .env.example placeholder value...change-me-...という文字列がapps/api/.envにまだ残っています。このエラーは問題のあるすべてのフィールドを列挙します。それぞれに実際の値を生成して再試行してください。
storeがGNT_STORE_INTERNAL_API_SECRET is not setで起動に失敗します。apps/store/.envが埋められていないか、読み込まれていません。ファイルがまさにそのパスに存在し、.env.exampleという名前のままになっていないことを確認してください。
両方のサービスが稼働しているのに、store から api へのすべての呼び出しが 401 または 403 で拒否されます。
apps/api/.envのSTORE_INTERNAL_API_SECRET/APPROVAL_SIGNING_SECRETが、apps/store/.envのGNT_STORE_INTERNAL_API_SECRET/GNT_APPROVAL_SIGNING_SECRETとバイト単位で一致していません。これは設計上、フェイルクローズになります。両方のペアを再生成して、2 つのファイルが一致するようにしてください。
ルールが埋め込みまたはリランクのエラーで保存に失敗します。
apps/store/.envにZEROENTROPY_API_KEYがないか、まだ空です。zeroentropy.dev から実際のキーを取得してください。
コマンドリファレンス全文
gnt login
gnt logout
gnt init scaffold a local rules/ dir with example rule files (--dir <path>)
gnt connect <app> github, slack, notion-mcp, monday-mcp, linear-mcp, jira-mcp,
sentry-mcp, granola-mcp, zoom-mcp, figma, datadog,
gitlab-threads, hubspot, airtable, openclaw, hermes
gnt disconnect <app>
gnt status
gnt billing
gnt review
gnt pull
gnt gaps
gnt prebrain scan local sources, extract candidate rules, open batched draft
PRs (~60 flags for source paths and extraction mode, see
`gnt prebrain --help`; --mode cloud|local, cloud is the default)
gnt stale
gnt keys list|create|revoke|rotate
gnt webhook list|create|revoke
gnt org show|rename|invite|remove
シェル補完
# bash, add to ~/.bashrc
eval "$(gnt completion bash)"
# zsh, add to ~/.zshrc
eval "$(gnt completion zsh)"
# fish, add to ~/.config/fish/config.fish
gnt completion fish | source
詳細を見る
- 本番環境向けの堅牢化手順を含むセルフホストのチュートリアル:
docs/self-hosting/README.md - セキュリティポリシー:
SECURITY.md
セルフホストは第一級の、完全にサポートされた選択肢です。初日から Apache-2.0 で、ご自身のインフラ上でご自身のキーを使って実行することも、gntai.dev のホスト版を利用することもできます。ホームページの FAQ とセルフホストのドキュメントはどちらもこの同じ選択肢について説明しており、「今は無理」といった但し書きはありません。
ライセンス
Copyright © 2026 gnt.ai. Apache-2.0 の下でライセンスされています。条件については LICENSE を、フォークにおける商標ルールについては NOTICE をご覧ください。
なぜ無料なのですか?
gnt のセルフホストには永遠に費用がかかりません。クローンして docker compose up を実行し、ご自身のキーを持ち込むだけです。私たちが販売しているのは、セルフホストでは得られない部分です。つまり、gntai.dev でのホスティング、マネージド OAuth コネクタ (GitHub、Slack、Linear、Notion、Zendesk — お客様側でのアプリ承認プロセスは不要)、そして従量制の AI 機能です。ご自身で実行したい場合、それは完全にサポートされた、完全に無料の選択肢であり、本物の機能を制限したトライアル版ではありません。
コントリビューション
開発環境のセットアップと PR の作成方法については CONTRIBUTING.md をご覧ください。すべてのコミットには Signed-off-by トレーラー (git commit -s) が必要で、CLA の代わりに Developer Certificate of Origin を用います。別途フォームはなく、フラグを付けるだけです。
PR を送ってくださった皆さんに感謝します:
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。