Hexis について
Hexis は、AI エージェントのスキル、ツール、コンテキスト、権限、ID を管理する Git ベースのコントロールプレーンです。セルフホスト可能で、レビューとアクセス制御を伴う AI プラグインとナレッジを集中管理したいチームや企業を対象としています。変更履歴は組織が所有する Git リポジトリに残ります。
主な機能
- 01Git リポジトリで管理するスキルとツールの定義
- 02保護ブランチへの変更にはオーナーの承認が必要
- 03ファイル単位・ロール単位のアクセス制御
- 04エージェントによるスキル修正の提案
- 05自社 SSO と連携するセルフホスト構成
活用シーン
- 01チーム向けのスキルとツールの一元配布
- 02非技術系メンバーによるスキル変更の提案
- 03Claude や Cline への社内コンテキストの提供
MCP 対応
Hexis はリモート MCP サーバーとして動作し、MCP クライアントはユーザーのロールで参照可能なスキル、ツール説明、コンテキストを検出して読み込めます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://demo.bevel.software/api/mcpclaude mcp add --transport http bevel-software-hexis https://demo.bevel.software/api/mcp{"mcpServers":{"bevel-software-hexis":{"type":"http","url":"https://demo.bevel.software/api/mcp"}}}Cursor で開く{"servers":{"bevel-software-hexis":{"type":"http","url":"https://demo.bevel.software/api/mcp"}}}VS Code で開く{"mcpServers":{"bevel-software-hexis":{"type":"http","url":"https://demo.bevel.software/api/mcp"}}}{"mcpServers":{"bevel-software-hexis":{"serverUrl":"https://demo.bevel.software/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
AI エージェントのスキル、ツール、コンテキスト、権限、アイデンティティを管理する、Git ベースのコントロールプレーンです。セルフホスト可能で、MCP ネイティブです。
会社の AI プラグイン、ツール、ナレッジが一か所に集まり、集中管理、レビュー、アクセス制御が可能で、あらゆる AI エージェントから利用できます。Bevel プラットフォームのオープンソースコアです。
Hexis を選ぶ理由
導入チーム
Hexis の開発につながった学びについては、こちらをご覧ください:Medium 記事
チーム向け
エンジニアも技術者以外の人も、プラグインを閲覧して読み込み、提案を出し、アクセスを管理できる場所です。
エンタープライズ向け
すべてのスキル、ツールのマニュアル、権限は、所有する Git リポジトリ内のファイルです。そのため、監査証跡はストレージ層そのものです。誰が、いつ、何を変更し、誰が承認したか、そして変更を元に戻す方法が記録されます。エージェントが実行できるのは、それを実行するユーザーに許可された操作だけです。権限はファイルごとに解決され、エージェントが使用する認証情報を保持することもありません。自社のインフラ上で、自社の SSO の内側で動作します。
MCP ゲートウェイとの違い:
MCP ゲートウェイは一方向です。ユーザーはプラグイン、スキル、ツールを利用できますが、変更を提案したり、新しいスキルや MCP サーバーを共有したりする仕組みはありません。裏側で GitHub を使えば可能ですが、技術者以外のユーザーには利用しにくく、閲覧やレビューのプロセスに対するきめ細かなアクセス制御もありません。
Hexis は、配布に必要な上記の機能をすべて備え、管理に必要な双方向性も実現します。
Hexis では、スキルとツールのマニュアルがレビュー可能なファイルです。誰でも変更を提案でき、保護されたブランチでは、変更の影響を受けるファイルの所有者に提案が届き、承認後にのみ反映されます。エージェントも提案できます。タスクの途中で動作しないスキルに遭遇したエージェントが修正を提案し、それを取り込むかどうかは人が判断できます。
目次
- Hexis の動作を見る
- Hexis を Cline に接続する
- ライブデモを試す
- マネージドホスティング
- Docker でデプロイする
- ナレッジページ内のリンクと画像
- ローカル開発
- 設定リファレンス
- Cowork と claude.ai のスキル
- トラブルシューティング
- リポジトリの構成
- FAQ
エージェントの接続、社内コンテキストの利用、変更提案の確認、チームアクセスの管理を紹介する、デモ全編をご覧ください。
Hexis の動作を見る
スキルの変更を提案して承認する
誰でも新しいスキルを提案したり、既存のスキルを改善したりできます。保護されたブランチでは、オーナーが変更内容を確認して承認すると、チームのエージェントが利用できるようになります。

Claude でチームのスキルを使う
MCP 経由で Claude を Hexis に接続し、通常どおりに質問します。Claude は、ツール間でプロンプトをコピーすることなく、自分のロールでアクセスできる承認済みのスキルの指示と社内コンテキストを見つけて読み込めます。

Hexis を Cline に接続する
Cline は、リモートの Streamable HTTP MCP サーバーとして Hexis に直接接続できます。Cline CLI から公開デモ接続をインストールします。
cline mcp install hexis --transport http https://demo.bevel.software/api/mcp --yes
プロンプトが表示されたら、ブラウザーで OAuth サインインを完了します。Cline は、Hexis のロールでアクセスできるスキル、ツール、コンテキストを検出します。独自の Hexis をデプロイする場合は、demo.bevel.software をデプロイ先のホストに置き換えてください。
適切なメンバーとスキルを共有する
チームメイトをロールに追加するか、必要に応じて直接アクセス権を付与します。全員が同じワークスペースに接続しながら、各メンバーとそのエージェントには、読み取りを許可された情報だけが表示されます。

まずはライブデモを試す
demo.bevel.software は、 Google アカウントでサインインできる公開インスタンスです。架空の会社のナレッジ、スキル、ツールが登録されています。Start here ページでは、一連の流れを紹介します。MCP 経由で自分のエージェントを接続し、スキルを使って営業資料を作成させ、改善提案が変更リクエストとして届く様子を確認できます。このデモは共有型で、主に閲覧用です(訪問者が提案し、オーナーが承認します)。以下の手順では、制限のない同じ環境を利用できます。
マネージドインスタンスを利用しますか?
ホスティング、アップグレード、バックアップ、SSO をこちらで運用するため、チームはサインインするだけで利用できます。[email protected] までご連絡ください。
5分でデプロイ(Docker)
必要なもの:DockerとComposeがインストールされたサーバー(またはノートパソコン。以下に追加の手順があります)、およびナレッジベースの保存先となる任意のホスト(GitHub、GitLab、Bitbucket、Azure DevOps、セルフホスト可能な環境)上の空のGitリポジトリです。アプリは初回起動時に、スターターテンプレートをリポジトリに追加します。
デプロイ用の2つのファイルを取得します。クローンは不要です。
mkdir hexis && cd hexis
# v0.15.1 below = the release this page was written against; replace with the latest release tag
wget https://raw.githubusercontent.com/Bevel-Software/Hexis/v0.15.1/docker-compose.yml
wget -O .env https://raw.githubusercontent.com/Bevel-Software/Hexis/v0.15.1/.env.example
(Gitクローンから作業しても同じです。どちらのファイルもリポジトリのルートにあります。cp .env.example .envを実行してください。)
.envを開き、必須の4つの値を設定します(ほかの項目は後で設定できます)。
[email protected] # the deployment owner, always an admin
ADMIN_PASSWORD=pick-something # sign-in password; only with password login (SSO-only deployments drop it)
JWT_SECRET=… # generate with the command below
SECRETS_ENC_KEY=… # generate with the command below
2つのシークレットを生成します(コマンドを2回実行し、結果をそれぞれ1つずつ貼り付けます)。
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
# no Node installed? docker run --rm node:22-slim node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
同梱のプロキシ経由でHTTPSを使って公開デプロイする場合は、ドメインも設定します。これにより、公開に必要なほかの設定(オリジン、プロキシホップ数)もすべて自動的に導出されます。
DOMAIN=bevel.your-domain.com
続いて、すべてを起動します。デプロイ時には、CIがリリースのたびに公開するイメージをプルするため、サーバー上でコンパイルは行いません。小規模なインスタンスで十分です。後からのpullで予期しないアップグレードが行われないよう、.envでバージョンを固定してください(HEXIS_VERSION=0.15.1)。アップグレードとバックアップについてはUPGRADING.mdをご覧ください。代わりにソースからビルドする場合(ブランチを追跡するステージングサーバーやフォークなど)は、deployment/docker-compose.build.ymlを使用してください(deployment/で説明しています)。
独自のプロキシなしでHTTPSを公開する場合(EC2インスタンスや通常のVPSなど):httpsプロファイルを使うと、Caddyがアプリの前段で起動し、DOMAIN用のLet's Encrypt証明書を自動取得して、HTTPからHTTPSへのリダイレクトも設定します。事前に、ドメインのDNS Aレコード(またはAAAAレコード)をサーバーに向け、ポート80と443をインターネットに公開してください(証明書のチャレンジとリダイレクトの両方でポート80を使うため、ポート80の公開は必須です)。
docker compose -f docker-compose.yml --profile https up -d
独自のリバースプロキシの背後で運用する場合(Coolify、Traefik、nginxなど):1つのアプリに対してTLSを終端する場所が2つあるのは過剰なので、プロファイルは使いません。.envでDOMAINの代わりにオリジンの値とプロキシホップ数を設定してください。これにより、OAuthリダイレクトが正しく構築され、レート制限でプロキシではなく実際のクライアントIPアドレスが認識されます。
PUBLIC_BACKEND_URL=https://bevel.your-domain.com # public origin; OAuth redirects are built from it
PUBLIC_FRONTEND_URL=https://bevel.your-domain.com # same origin: the backend serves the SPA
TRUST_PROXY=1 # your proxy hop count
docker compose -f docker-compose.yml up -d
クローンで明示的に-fを指定することが重要です。これによりdocker-compose.override.ymlがスキップされ、アプリはホストのポートを公開しません。プロキシはComposeネットワーク経由でポート3001に接続します。これは意図的な仕様です。固定のポートを公開すると、置き換え用コンテナが起動する時点で終了予定のコンテナがまだそのポートを使用しているため、再デプロイのたびにport is already allocatedエラーが発生します。
ドメインを開き、ADMIN_EMAIL / ADMIN_PASSWORDでサインインしてください。
ノートパソコンで試すだけの場合:DOMAINとオリジンの値を省き、ファイルを1つ追加する以外は同じ手順です。docker-compose.ymlだけではホストのポートは公開されません(上記参照)。アプリをlocalhostで公開するのはdocker-compose.override.ymlです。クローンにはすでに含まれています。wgetで取得したファイルと一緒に、次のコマンドで取得してください。
wget https://raw.githubusercontent.com/Bevel-Software/Hexis/v0.15.1/docker-compose.override.yml
docker compose up -d
続いて**http://localhost:3001**を開きます(別のポートを使う場合は、`APP_PORT=8080 docker compose up -dを実行します)。ここではTRUST_PROXY`を設定しないでください。前段にプロキシがない状態で転送ヘッダーを信頼すると、クライアントが自分のアドレスを偽装できてしまいます。
初回サインイン:セットアップ画面
アプリは、推測できなかった項目を尋ね、保存する前に実際のホストでテストします:
- ナレッジベースのリポジトリ:空のリポジトリの https クローン URL。
- Git 認証情報:そのリポジトリへの読み書きアクセス権を持つトークン(GitHub の場合は、対象のリポジトリ 1 つに対する Contents: read & write 権限を持つきめ細かな個人用アクセストークンで十分です)。
- ブランチモデル:デフォルトにするブランチと、保護するブランチを指定します(保護されたブランチへの変更は、承認済みの変更リクエストを通じてのみ反映されます)。
リポジトリの実際のブランチが候補として表示されます。空のリポジトリの場合は、デフォルト(
main)で問題ありません。
リポジトリは空なので、アプリは同梱のテンプレートから初期化し、最初の管理者としてあなたを登録した roles.yaml を書き込みます。これでワークスペースに入れます。Skills & Tools に移動して最初のプラグインとスキルを作成し、アプリメニューの Connect から MCP 経由でエージェントを接続してください。
本番環境に移行しますか?Configuration reference では、シングルサインオン、バックアップが必要な状態、ヘルスチェック、セットアップ画面の代わりに環境変数で設定する方法について説明しています。
ナレッジページ内のリンクと画像
ページは Markdown 形式です。別のページへのリンクには相対パスを使用すると、Hexis がアプリ内で開きます:
See the [approval process](../Processes/Approval.md#steps).
画像も同じように使えます。画像を使用するページの隣にある assets/ フォルダーに保存し、相対パスでリンクしてください:

アクセス権はフォルダーに従うため、ページを読める人はそのスクリーンショットも閲覧でき、フォルダーを移動してもすべてのリンクが有効なままです。共有の Uploads/ フォルダーでは、この両方が損なわれます。Microsoft Loop などから .assets/ フォルダーが隣接した状態でエクスポートされたファイルは、そのままナレッジベースに配置でき、リンクも変更せずに解決されます。Base64 形式の画像の貼り付けには対応していません。ファイルを保存してリンクしてください。
ローカル開発(ソースから実行)
必要なもの:Node 22.13 以降(.nvmrc。エンジンの範囲は >=22.13 <23)、pnpm 10、git ≥ 2.41、および Postgres 17(同梱のものでも問題ありません):
docker compose up -d db # just the database
pnpm install
pnpm build # builds the packages the apps import
cp .env.example .env # fill the same four required values;
# the default DATABASE_URL already points at the bundled db
pnpm dev # backend on :3001, Vite dev server on :5173
http://localhost:5173 を開きます(開発サーバーはバックエンドにプロキシします)。便利なコマンド:pnpm test、pnpm typecheck、pnpm lint。
マイグレーションは起動時に自動実行されます。開発環境でも本番環境でも、別途マイグレーションを実行する手順はありません。
リファレンス
- 設定:すべての環境変数、SSO の設定、シークレットの生成、バックアップ、ヘルスチェック。
- 1 つのプロセスで複数のナレッジベースを運用:テナントファイル、分離される内容、テナントを独自のデプロイメントに移行する方法。
- トラブルシューティング:遭遇する可能性が高い問題と、その原因。
リポジトリの構成
| パス | 内容 |
|---|---|
packages/shared | @bevel-software/platform-shared:共有型と純粋なドメインユーティリティ |
packages/core-backend | @bevel-software/platform-core-backend:コアバックエンド(migrations/ と kb-template/ を同梱) |
packages/core-frontend | @bevel-software/platform-core-frontend:コア UI。未加工の TS/TSX ソースとして公開 |
apps/server | スタンドアロンのコアバックエンドシェル |
apps/web | スタンドアロンのコア SPA シェル(Vite) |
よくある質問
エージェントのスキルとツールの一元管理されたバージョン管理カタログとして Hexis を評価するチームから寄せられる質問です。
エージェントはコンテキストウィンドウを圧迫せずに、どのようにスキルを見つけますか?
すべてを読み込むのではなく、検索して見つけます。list_skills と search で候補を絞り込み、get_skill で呼び出し時に1つのスキルを取得します。
エージェントはナレッジベースに何が含まれているか、どのように把握しますか?
すべての MCP セッションは、指示から始まります。まず、Hexis の概要と、記憶に基づいて回答する前にナレッジベースを検索するよう伝える固定のプラットフォームヘッダーがあり、続いてリポジトリのルートにある mcp-description.md が読み込まれます。ここには、ナレッジベースの内容と、いつ参照すべきかを管理者が記述します。ハンドシェイクを読み取るクライアント(Claude Code、Claude Desktop、Cursor)では、この内容がシステムプロンプトに追加されます。読み取らないクライアントでは、最初の行が4つのコアツールにも表示されます。「外部エージェントアクセス」ページでは、エージェントが受け取る内容を詳しく確認できます。
どのエージェントが接続できますか?
Claude Code、Codex、Cursor、Cline、ChatGPT など、MCP 対応のクライアントならどれでも接続できます。それぞれのユーザーのロールで許可されている内容のみが表示されます。
ご利用のマシン上で動作するエージェントの場合は、代わりにワークスペースをローカル MCP サーバー(npx -y @bevel-software/hexis-mcp)として起動できます。これにより、ホスト型エンドポイントが提供するすべてのものに、プラグインのローカル限定ツールが追加されます。このコマンドには、サンドボックスにビルド済みバイナリが用意されているバージョンである Node 22.13+ または 24 が必要です。また、Dock やデスクトップアイコンから起動したクライアントでは、PATH 上の npx が認識されないことがあります。which npx(Windows では where npx)を実行し、表示されたフルパスを "command" として指定してください。トラブルシューティングを参照してください。
カタログはどのようにバージョン管理されますか?
git で管理されます。保存するたびにコミットが作成されるため、履歴の確認、変更者の特定、変更の取り消しをコードと同じように行えます。また、保護されたブランチへの変更は、レビュー可能な変更リクエストとして反映されます。
どのようなガバナンス機能を利用できますか?
ファイル単位のアクセス制御、レビュー必須の変更リクエスト、誰が何を変更し、誰が承認したかを記録する git 監査証跡を利用できます。
ライセンス:Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。