MCP (Model Context Protocol) は、AI アシスタントを外部サービスに接続するための標準規格です。 raxel は公式 MCP サーバーを内蔵しており、Claude などの MCP 対応 AI から、 アプリのレコード閲覧・作成・更新、コメント投稿、ワークフローのステータス変更を安全に行えます。
たとえば「報告受付アプリ」を作っておけば、あなたのチームの AI エージェントが報告を読み取り、 対応し、結果を記録してステータスを進める — という運用を、コードを書かずに構築できます。
AI クライアントの種類に応じて、接続方法は 2 つあります。
| 接続方法 | 対象クライアント | 動作する権限 |
|---|---|---|
| API トークン | 認証ヘッダーを設定できるクライアント (Claude Code、各種 CLI/IDE 系) | トークン発行者の権限 |
| OAuth (画面で許可) | OAuth 対応クライアント (claude.ai の Web 画面のコネクタなど) | 許可したユーザー本人の権限 |
API トークンは 2 種類あり、目的で使い分けます。
| トークン | できること | 発行場所 |
|---|---|---|
| アプリ API トークン | そのアプリのレコード操作 (閲覧・作成・更新・コメント・ステータス変更) | 各アプリの設定 → 「APIトークン」 |
| AI エージェント連携トークン | 新しいアプリの作成 (後述)。発行時に選択すれば、対象アプリのレコード操作 (閲覧 / 書き込み / 削除)、そのトークンが作成したアプリの設定編集 (後述の「AI によるアプリの作り込み」)、および複数アプリをまとめる「パッケージ」の管理 (後述の「AI によるアプリのグループ管理」) も追加で許可できます | システム管理 → 「AI エージェント連携」 |
「AI にアプリを作らせて、そのまま運用させる」場合は、AI エージェント連携トークンの発行時に「データの操作」を許可します。そのトークンで作成したアプリのレコードを、 同じ接続のまま操作できます (アプリごとに API トークンを発行し直す必要はありません)。 既存のアプリを操作させたい場合は、発行時または発行後に「対象アプリ」へ追加します。 アプリ API トークンは、外部システム連携のように「1 つのアプリだけを渡したい」場合に使います。
認証にはアプリの API トークンを使います。 接続したいアプリの設定 → 「API トークン」から発行してください (発行には再認証が必要です)。 AI に許可したい操作に応じて権限を選びます:
トークン発行画面では「閲覧」「書き込み」「削除」を個別に選べますが、AI 連携には必ず「閲覧」を含めてください。 フィールド構成を取得するツール (get_app_overview) が閲覧権限を必要とするため、 「書き込み」だけのトークンでは AI がどの項目に何を書けばよいか分からず、実質的に何もできません (項目名を把握したうえで REST API から書き込むだけであれば、「書き込み」だけのトークンでも使えます)。
トークンはアプリ単位です。AI が扱えるのはそのアプリだけで、他のアプリ・メンバー管理・アプリ設定には一切アクセスできません。 トークンはいつでも失効でき、最終使用日時も確認できます。
MCP サーバーの URL は次のとおりです (お使いのサブドメインに読み替えてください):
https://<あなたのサブドメイン>.raxel.jp/api/mcp認証は HTTP ヘッダーで API トークンを渡します。Authorization: Bearer <トークン> と X-API-Token: <トークン> のどちらでも使えます。
claude mcp add raxel \
--transport http \
https://<サブドメイン>.raxel.jp/api/mcp \
--header "Authorization: Bearer <APIトークン>"接続後は「アプリの概要を見せて」「未対応のレコードを一覧して」「この 3 件を対応済みにして」のように、 自然言語で指示するだけで AI がツールを呼び出します。
claude.ai のコネクタ機能のように OAuth を前提とするクライアントは、トークンの貼り付けではなく画面での許可で接続します。手順:
/api/mcp) を登録しますStreamable HTTP transport に対応した MCP クライアントであれば接続できます。 認証ヘッダーを設定できるクライアントは「サーバー URL + API トークン」、 OAuth (Dynamic Client Registration + PKCE) に対応したクライアントは「サーバー URL のみ」で接続できます。
アプリの API トークン、または OAuth の「特定アプリのレコード操作」で使えるツールです。 アプリの新規作成は次の節、アプリ設定の作り込みはさらにその次の節を参照してください。
| ツール | 内容 | 必要な権限 |
|---|---|---|
| get_app_overview | アプリ情報とフィールド定義の取得 (最初に呼ぶ) | 閲覧 |
| list_records | レコード一覧 (検索・フィルタ・並び替え・ページネーション) | 閲覧 |
| get_record | レコード 1 件の取得 | 閲覧 |
| create_record | レコード作成 | 書き込み |
| update_record | レコードの部分更新 | 書き込み |
| delete_record | レコードをゴミ箱へ移動 (論理削除) | 削除 |
| bulk_update_records | 複数レコードの一括更新 (最大 100 件・全件成功か全件失敗) | 書き込み |
| get_records_summary | 数値フィールドの集計 (合計・平均など) | 閲覧 |
| get_records_grouped_summary | 分類ごとの集計 (費目ごとの合計、担当者ごとの件数など) | 閲覧 |
| list_users | 利用者の検索 (id と表示名のみ。利用者選択フィールドに書く id の取得用) | 閲覧 |
| list_organizations | 組織の検索 (id・名前・組織コード・親組織。組織選択フィールドに書く id の取得用) | 閲覧 |
| list_groups | グループの検索 (id と名前。グループ選択フィールドに書く id の取得用) | 閲覧 |
| list_comments | コメント一覧 | 閲覧 |
| add_comment | コメント投稿 (メンション可) | 書き込み |
| get_workflow_state | ワークフロー状態と、そのステータスから撃てる遷移の確認 (いま条件を満たしていない遷移も、満たしていない条件つきで返ります) | 閲覧 |
| get_workflow_history | ステータス変更の履歴 (差し戻し理由などのコメント込み) | 閲覧 |
| transition_status | ステータスの遷移実行 | 書き込み |
| bulk_transition_status | 複数レコードの一括ステータス変更 (一括承認・最大 200 件) | 閲覧 + 書き込み |
list_users が返すのは id と表示名だけです (メールアドレス・権限・在籍状況は返しません)。 見える範囲は画面の「ユーザー選択」と同じで、トークンを発行した利用者が選べる相手に限られます。 利用者選択フィールドに値を書くときや、担当者を指名するときの id を得るために使います。
ツールはトークンの権限に応じて出し分けられます。「読み取り」だけを付けたトークンでは書き込み系・削除系のツールがそもそも AI に見えません。 削除を任せたくない場合はトークンに「削除」を付けないでください (削除ツールが必要になったら、トークンを発行し直します)。
なお、OAuth (サーバー URL だけで接続する方式) では削除の権限が発行されません。 削除ツールを使えるのは、アプリ設定で「削除」を付けて発行した API トークンで接続した場合だけです。
削除はゴミ箱への移動 (論理削除) で、アプリのゴミ箱から復元できます。 他のアプリから参照されているレコードは既定で削除されず、参照元の一覧が返ります。 参照を無視して削除することもできますが、その場合は参照が外れ、 ルックアップの設定によっては参照している側のレコードの値が空になります(この操作は元に戻せません — 空になった参照元の値はゴミ箱から復元できません)。 AI がうっかり実行しないよう、参照している件数を AI に申告させ、 一致した場合だけ実行する仕組みにしてあります。
ここまでのツールは「既存アプリのレコード操作」でした。これとは別に、AI に新しいアプリそのものを作らせることもできます。 「顧客からの問い合わせを受け付けるアプリを作って。件名・内容・優先度・対応状況が欲しい」のように指示すると、 AI がフィールド構成とビューを設計してアプリを作成します。
/api/mcp) に、 発行した AI エージェント連携トークンで接続します。接続すると create_app ツールが使えるようになりますpublish_app を呼ばせても構いません (どちらも同じ処理・同じ権限です)参考: AI が create_app に渡すアプリ定義のイメージ (実際は AI が自動で組み立てます):
{
"name": "問い合わせ受付",
"icon": "📮",
"sections": [
{
"label": "基本情報",
"fields": [
{ "code": "title", "label": "件名", "type": "text", "required": true },
{ "code": "detail", "label": "内容", "type": "multi_line_text" },
{ "code": "priority", "label": "優先度", "type": "dropdown",
"settings": { "options": [
{ "value": "high", "label": "高" },
{ "value": "low", "label": "低" }
] } }
]
}
],
"defaultView": { "name": "すべて", "columns": ["title", "priority"] },
"views": [
{ "type": "kanban", "name": "優先度ボード", "config": { "groupField": "priority" } }
]
}camelCase・ハイフン・空白は _ に統一)。 そのため taskStatus と task_status のように送った時点では違って見えるコードも重複扱いになりますdelete_app でゴミ箱へ移動できます。最初の呼び出しでは削除されず、残っているレコード件数・参照しているアプリ・止まるデータパイプラインが返るので、それを確認してから件数を添えて再送する形です (復元は画面のゴミ箱から)create_record /list_records などが使えるようになります。 対象アプリは既定で「このトークンで作成したアプリ」で、既存アプリは管理画面から追加できます。 レコード系ツールは appId を必須の引数に取り、対象外のアプリを指定すると拒否されます。そのアプリが参照している他のアプリ (ルックアップの参照先・集計の集計元・転記アクションの転記先) も対象アプリに入っている必要があります — 参照先の値はレコードの読み書きでそのまま出入りするためで、入っていない場合は「参照先を対象に追加してください」というエラーになります。 実際にできることはトークンを発行した人がそのアプリに対して今持っている権限の範囲に限られ、権限を失えばその時点で使えなくなります。 なお OAuth 接続 (claude.ai のコネクタ等) にはこの拡張は及びません — レコード操作は許可画面で選んだ「特定アプリのレコード操作」の範囲だけです複数のアプリ・パイプライン・ポータル等をひとまとめに追跡・管理する仕組みがパッケージです (画面での使い方はアプリストア・パッケージマニュアルの 「導入済みパッケージ」を参照)。AI エージェント連携トークン、または OAuth の 「アプリの新規作成」で接続した AI にも、この管理を任せられます。
componentAttached (true/false) で所属できたかどうかを確認してください| ツール | 内容 | 権限 |
|---|---|---|
| create_component | 複数のアプリ・パイプライン・ポータル等をひとまとめに追跡・管理する新しいパッケージを作成する | パッケージ管理のみ |
| add_to_component | アプリ・パイプライン・ポータル等をパッケージに所属させる (1 リソース = 最大 1 パッケージ。既に別のパッケージに所属している場合は失敗し、現在の所属先の名前が返る。追加先のパッケージに同名のアプリがあれば、追加したアプリは自動で「名前 (2)」に改名され、応答の renamedApps で返る) | パッケージ管理 + 下記 |
| remove_from_component | パッケージからリソースを除外する (対象の実体は削除しない。ただしアプリを外すとパッケージ無しの名前空間へ移り、そこに同名のアプリがあれば自動で「名前 (2)」に改名され、応答の renamedApps で返る。既に外れているものへの再要求は成功扱い) | パッケージ管理 + 下記 |
| list_component_members | パッケージの詳細 (名前・由来・現在のメンバー一覧) を取得する | パッケージ管理のみ |
add_to_component でアプリを追加する場合は、 (管理者またはパッケージ作成者本人) かつ 対象アプリの管理権限の 両方が必要です。アプリ以外 (パイプライン・ポータル・ポータルウィジェット・グループ・スペース) を追加する場合は 管理者限定です (パッケージ作成者であっても、対象がアプリでなければ追加できません)。remove_from_component は対象の種類によらず、 管理者またはパッケージ作成者本人が実行できます。
アプリを作った後の「作り込み」— フォームのフィールド構成、ワークフロー、条件付き書式、入力ルール、通知、権限、ビュー、帳票、転記アクション、 公開フォーム、公開ビュー、スケジュール起票、残高設定 — についても、許可した範囲内で AI に任せられます。対話的に「この項目を必須にして」「承認ステータスを追加して」のように 指示しながら、アプリを育てていく使い方を想定しています。
tools/list の応答にunavailableTools (提供されていないツールの名前と必要な capability) が入るので、 AI は「この製品にその機能が無い」のか「自分のトークンに権限が無い」のかを区別でき、利用者に何を発行し直せばよいか伝えられますbaseType (日付・日時・時刻・数値。作成後は変更不可)、preventOverlap (重複を禁止する)、overlapScopeFieldCodes (重複を判定する単位。フィールドコードの配列で最大 3 件) です。 単位を省略するとアプリ全体で 1 グループ = どの会議室でも同じ時間帯を取れない、という設定になります (範囲フィールドの解説も参照)confirmSelfPermissionChange にその行の変更前 → 変更後を書き写した場合だけ通ります (現在値を読まないと書けません)。 アプリ権限・レコード権限・フィールド権限の 3 種類で同じ扱いです領域ごとにツールが 2 つ (get_* = 現在の設定の取得、set_* = 全量置換) あります。 トークンに付いていない領域のツールは AI のツール一覧に出ませんが、名前と必要な capability はtools/list のunavailableTools で確認できます。
| 設定領域 | capability | ツール |
|---|---|---|
| フォーム (フィールド定義・レイアウト) | settings:form | get_form / update_form / apply_form / list_lookup_sources / preview_form |
| ワークフロー (ステータス・遷移) | settings:workflow | get_workflow / set_workflow |
| 条件付き書式 (行の色分け) | settings:row_color | get_row_color_rules / set_row_color_rules |
| 入力ルール (自動計算・必須化等) | settings:input_rules | get_input_rules / set_input_rules |
| 通知ルール・リマインダー | settings:notifications | get_notification_rules / set_notification_rules / get_reminders / set_reminders / preview_reminders / preview_notifications |
| 未登録チェック (あるはずのレコードが登録されていないことを検知して通知) | settings:notifications | get_absence_rules / set_absence_rules |
| スケジュール起票 (その日が来たらレコードを自動作成) | settings:scheduled_rules | get_scheduled_rules / set_scheduled_rules |
| 残高設定 (付与で増え消化で減る残数と、期限による失効) | settings:balances | get_balance_settings / set_balance_settings |
| アプリ権限 | settings:permissions | get_permissions / set_permissions / preview_record_as |
| ビュー (一覧・カレンダー・カンバン・ガント・グラフ・クロス集計・マトリクス・リソースタイムライン) | settings:views | get_views / set_views / preview_view |
| 帳票 (印刷テンプレート) | settings:print_templates | get_print_templates / set_print_templates |
| 転記アクション | settings:actions | get_actions / set_actions |
| 公開フォーム (ログイン不要の URL で外部から投稿を受け付ける) | settings:public_forms | get_public_forms / set_public_forms |
| 公開ビュー (ログイン不要の URL でレコードを外部へ公開する) | settings:public_views | get_public_views / set_public_views |
| アプリ定数 (数式から CONST("コード") で参照できる名前つきの数値) | settings:constants | get_app_constants / set_app_constants |
| ポータル (トップ画面のレイアウト。管理者の接続のみ) | settings:portals | get_portal_layouts / set_portal_layouts |
| マニュアル (アプリ横断の説明書 — 構築した業務の運用手順を製品内に書き残す) | settings:manuals | get_manuals / set_manuals |
| 起点つき集計 (レコードの日付を起点にした期間で、別アプリの行を集計して書き戻す) | settings:anchored_windows | get_anchored_window_settings / set_anchored_window_settings |
| 拡張アプリ (基本アプリのレコード 1 件につき、別アプリのレコードを 1 件だけ結びつける宣言) | settings:extensions | get_extensions / set_extensions |
公開フォームと公開ビューは、 画面だけでなく MCP からも設定できます(settings:public_forms /settings:public_views を付けたトークンが必要です)。 この 2 領域だけは認証なしで社外から到達できる面を作るので、他の設定領域とは別の関門を置いています。
enabled の既定は false です (画面の新規作成モーダルは既定 ON ですが、あちらは人が公開フィールドのチェックリストを見ながら決めています)。 気付かないうちに無防備な公開ページができることはありませんenabled: true にする呼び出しはconfirmPublicExposure を要求します。 「この呼び出しの後にログイン不要で到達できるもの」を、名前・公開されるフィールドコード・ レコードの範囲 (all = 絞り込み条件が 1 つも無い /filtered)・配信される選択肢まで含めて申告し、サーバーの計算と完全に一致しないと書き込みません。 一致しない場合は 400 とともに正しい申告値そのものが返るので、読めば必ず通せますconfirmPublicExposure のnotifyEmails に書き写す必要があります。 応答の publicExposure[].outbound には、 転送先のほか自動返信・外部ホストのロゴ・アクセス解析・送信後のリダイレクト先など 「データや訪問者が外部へ出る経路」がすべて並ぶので、設定した本人以外にも何が起きるかが分かりますfieldOptions)、公開する前に必ず AI の目を通ります。 社外に出せない選択肢がある場合は、その項目を公開対象から外すか、選択肢そのものを整理してくださいenabled: true にできません (enabled: false で設定だけ先に保存しておくことは可能です)。 公開中のアプリをメンテナンス中に切り替えると、既に公開している URL の配信も止まりますpublicExposure が空配列になり、 「認証なしで到達できるものはありません」と返るので、画面を見に行かなくても止まったことが分かりますここまでの設定は、どれも何かが起きたことに反応する仕組みでした — レコードが作られた、ステータスが変わった、条件に当てはまった。 ところが現場の困りごとの多くは逆側にあります。 「返却予定日を過ぎているのに、返却の記録が無いことに誰も気づかない」 「点検の予定日が来たのに、点検レコードがそもそも起きていない」 「付与した残日数の期限が切れたのに、残ったままになっている」。レコードが 1 件も無いので、何のきっかけにもなりません。 こうした要望に対して、一覧ビューを作って人が毎朝見に行く運用しか組めない、という形になりがちです。
この面も AI に任せられます。次の 3 つは「いつ・誰について、何かが存在するはずか」という 同じ考え方を共有していて、気づく → 起票する → 期限で消すまでを一続きに組めます。
| 設定 | 何をするか | たとえば |
|---|---|---|
| 未登録チェック | あるはずのレコードが無いことを検知して通知する (レコードは作りません) | 返却予定日を過ぎても返却の記録が無い / 今日の日報が出ていない / 担当者のうち何人かが提出していない |
| スケジュール起票 | その日が来たらレコードを自動で作る (同じアプリにも、別のアプリにも) | 毎月 1 日に請求のレコードを起こす / 契約日の 12 か月後に更新手続きのレコードを起こす |
| 残高設定 | 付与で増え、消化で減る残数を管理し、期限が来たぶんを失効させる | 有給休暇の残日数 / ポイント / 前払いの残額 |
get_scheduled_rules では読み取り専用 (owned_by_balance_setting) で返り、 AI が直接書き換えることはできません。正本は残高設定側なので、二重に管理して食い違う状態を作りませんAI が組んだ設定 (ルックアップのコピー、関連レコード集計、入力ルール、フィールド権限など) が本当に効くかは、 レコードを 1 件通してみないと分かりません。そのために、本番データに混ざらないテストレコードを MCP から作成・照会できます。
create_record /list_records にisTest: true を付けます。 アプリの作り込みを許可した接続 (フォーム設定の capability を持つ AI エージェント連携トークン) と、アプリ管理者の接続で使えますlist_records に isTest: true を付けたときだけ返ります| 接続方法 | 設定を編集できる対象アプリ |
|---|---|
| OAuth「特定アプリの管理」 | 許可画面で選んだ 1 アプリのみ |
| OAuth「アプリの新規作成」+ 設定編集を追加許可 | その接続で作成したアプリのみ |
| AI エージェント連携トークン + 設定編集を追加許可 | そのトークンで作成したアプリのみ |
| アプリ API トークン | 対象外 (レコード操作専用。設定編集の許可は付与できません) |
つまり、すでに運用中の既存アプリの設定を AI に触らせられるのは「特定アプリの管理」で 本人が明示的に選んだ場合だけです。共有して使う AI エージェント連携トークンでは、そのトークン自身が作ったアプリ 以外は編集できません。
この「触れるアプリ」の範囲は、書き込む先だけでなく読み取る先にも効きます。前項の 3 つの設定は他のアプリを指せる数少ない設定で、 起票先 (レコードを作る先)・起算日の参照元・発生日の参照元・対象者の参照元の 4 か所がそれに当たります。 いずれも範囲外のアプリを指定すると拒否されます。
書き込みだけを止めて読み取りを許す、という扱いにはしていません。 「アプリ B に 15 日のレコードがありません」という通知はB の中身についての情報だからです。 アプリ A だけを任せたトークンが、通知を経由して B のレコードの有無を知れる状態を作りません。
editable: false と理由つきで返り、 全量置換の対象から外れます (AI が送らなくても消えませんし、送ると差し止められます)。 そのとき、範囲外のアプリを指している部分 (起票先や発生の定義) は応答から伏せられます —アプリの id も名前も出ません。「読めない範囲の設定がここにある」ことだけが伝わります| ツール | 許可領域 | 内容 |
|---|---|---|
| get_form | フォーム | フィールド定義とレイアウトを取得 (下書きがあればそちら) |
| update_form | フォーム | フォーム全体を全量置換で更新 (下書きに保存。反映は apply_form) |
| apply_form | フォーム | 下書きを本番に反映 (項目が消える場合は件数の申告が必要) |
| preview_form | フォーム | フォーム画面の見え方を評価 — 各項目が入力可/読み取り専用/非表示のどれか・決めた仕組み・初期値 (指定した利用者の目でも評価可)。seedData にルックアップのキーを入れると、コピー先と参照値も実際の作成と同じ評価器で埋まる |
| list_lookup_sources | フォーム | ルックアップの参照先候補アプリとキーフィールドの一覧 |
| get_workflow | ワークフロー | ステータスと遷移ルールを取得 |
| set_workflow | ワークフロー | ステータスと遷移ルールを全量置換で更新 |
| get_row_color_rules | 条件付き書式 | アプリ既定の行色ルールを取得 |
| set_row_color_rules | 条件付き書式 | アプリ既定の行色ルールを全量置換で更新 |
| get_input_rules | 入力ルール | 自動セット・カスタム検証・表示条件をまとめて取得 |
| set_input_rules | 入力ルール | 上記 3 種をまとめて全量置換で更新 (3 種すべて必須) |
| get_notification_rules | 通知 | 通知ルールを取得 |
| set_notification_rules | 通知 | 通知ルールを全量置換で更新 |
| get_reminders | 通知 | リマインダー (日付基準の事前・事後通知) の一覧 |
| set_reminders | 通知 | リマインダーを全量置換で更新 (例: 返却予定日の 3 日前に担当者へ通知) |
| preview_reminders | 通知 | リマインダーの乾式実行 — 通知を発生させずに「いつ・どのレコードで・誰に届くか」を評価 (asOf で時刻の差し替え、テストレコードの世界も評価可) |
| preview_scheduled_rules | スケジュール起票 | スケジュール起票の乾式実行 — 起票せずに「いつ・どの主体に・どんなデータで作られる予定か」を評価 (asOf / テスト世界対応。既起票の台帳抑制も本実行と同じ) |
| preview_absence_check | 未登録チェック | 未登録チェックの乾式実行 — 通知を作らずに「誰が未登録と判定され、誰に届く予定か」を評価 (asOf / テスト世界対応) |
| preview_action | アクション | 転記アクションの乾式実行 — 転記せずに「新規作成か既存更新か・どんなデータになるか」を評価 (テストレコードを転記元にできる) |
| preview_print_layout | 帳票 | 帳票の検算 — PDF を作らずに、用紙からのはみ出し・空欄になる差し込み・要素の重なりを mm 単位で報告 |
| get_absence_rules | 通知 | 未登録チェックを取得 (ルールごとに編集可否と理由、項目一覧も返す) |
| set_absence_rules | 通知 | 編集可能な未登録チェックを全量置換で更新 (読み取り専用のものは対象外なので消えません) |
| get_scheduled_rules | スケジュール起票 | 起票ルールを取得 (ルールごとに編集可否と理由、起票先アプリの項目一覧も返す) |
| set_scheduled_rules | スケジュール起票 | 編集可能な起票ルールを全量置換で更新 (読み取り専用のものは対象外なので消えません) |
| get_balance_settings | 残高設定 | 残高設定を取得 (設定ごとに編集可否と理由、項目一覧も返す) |
| set_balance_settings | 残高設定 | 残高設定を全量置換で更新 (期限つき残高の失効ぶんを起票するルールは自動で追従します) |
| get_app_constants | アプリ定数 | アプリ定数 (CONST("コード") で数式から参照する名前つきの数値) を取得 |
| set_app_constants | アプリ定数 | アプリ定数を全量置換で更新 (数式から参照中の code を外すと 400) |
| get_anchored_window_settings | 起点つき集計 | 起点つき集計の設定を取得 (設定ごとに編集可否と理由、項目一覧も返す) |
| set_anchored_window_settings | 起点つき集計 | 起点つき集計の設定を全量置換で更新 (削除・件数が減る変更は confirmRemovals の申告が必要) |
| get_permissions | 権限 | アプリ・レコード・フィールド権限のいずれかを取得 (kind 引数で指定) |
| set_permissions | 権限 | 同上を全量置換で更新 (自分を狙って対象にしている行は変更不可 / 全員向けの行は変更内容の書き写しが必要) |
| preview_record_as | 権限 | 指定した利用者の目でテストレコードがどう見えるかを評価 (権限検証の肯定形の証拠 — 見える値・見えないフィールドと理由) |
| get_views | ビュー | すべての種別のビューを取得 (種別ごとに編集可否も返す) |
| set_views | ビュー | 一覧・カレンダー・カンバン・ガント・グラフを全量置換で更新 (その他の種別は対象外なので消えません。グラフは集計方法・分類・絞り込みまで設定可) |
| get_print_templates | 帳票 | 帳票 (印刷テンプレート) を取得 (帳票ごとに編集可否と理由、用紙寸法も返す) |
| set_print_templates | 帳票 | 編集可能な帳票を全量置換で更新 (読み取り専用の帳票は対象外なので消えません) |
| get_actions | 転記アクション | 転記アクションを取得 (転記先候補アプリ・フィールド一覧・ワークフローステータスも返す) |
| set_actions | 転記アクション | 編集可能な転記アクションを全量置換で更新 (読み取り専用のものは対象外なので消えません) |
すべての更新ツールは全量置換です — 送った内容がその設定全体を置き換えます。 各ツールの説明に「必ず先に対応する get_* で現在の内容を取得し、それに変更を加えた全体を送る」ことを 明記してあり、AI はそれを読んだうえで呼び出します。利用者が毎回指示する必要はありません。
そのうえで、既存の項目が失われる更新はサーバーが一度差し止めます。送信内容から既存の項目 (フォームのフィールド、ワークフローのステータスや遷移、通知ルール、権限の対象など) が欠けている場合、 または項目数が減っている場合に、何がいくつ消えるのかを応答で返して保存を止めます。意図した削除であれば AI がその件数を添えて送り直し、意図しない部分送信であれば AI はその時点で気付いて現在の内容を取得し 直します。設定をまるごと失う事故は、AI の遵守ではなくこの仕組みで防いでいます。
なお、項目数が変わらない全面的な差し替え (例: 3 件のルールを別の 3 件に入れ替える) は「消えた」ではなく 「書き換えた」として扱われ、差し止めの対象にはなりません。設定変更の履歴は アプリの設定変更履歴に残るため、誰がいつ何を変えたかは後から確認できます。
「アプリの新規作成」に加えて設定編集も許可した接続では、create_app_from_blueprint が使えます。アプリ定義 (フィールド・フォーム) と、ワークフロー・ビュー・権限・通知・転記アクション・ 帳票・入力ルール・条件付き書式をまとめて 1 回で作れるツールです。中身は上記の設定ツールを 依存順に呼んでいるだけなので、検証・削除の差し止め・設定変更履歴はすべて同じように働きます。
raxel のマニュアルをキーワード検索するツールです。許可設定に関わらずすべての接続で常に使えます(読み取り専用・LLM 呼び出しなし)。「この機能はどう設定するのか分からない」場面で、AI が設計・実装の前に 自分で調べるために使います。
| エラー | 意味 | 対処 |
|---|---|---|
| 401 Unauthorized | トークンが無効 (失効済み・入力ミス・発行者アカウントの無効化)。OAuth 接続では接続解除後もこのエラーになる | トークンを再発行して AI クライアントの設定を更新する。OAuth 接続はクライアント側から再接続 (再許可) する |
| 403 Forbidden | トークン発行者がアプリへのアクセス権 (またはアプリ作成権限) を失っている | 権限を確認するか、権限のある管理者がトークンを再発行する |
| 429 Too Many Requests | API レート制限に到達 (REST API と共通の制限枠) | レスポンスの Retry-After 秒数だけ待って再試行する。上限は「APIレート制限」マニュアルを参照 |
| ツールエラー (isError) | 入力の検証エラーや権限不足など、操作単位の失敗。エラー詳細が本文に入る | 通常は AI が内容を読んで自動で修正・再試行します |