genexus について
genexusは、GeneXus開発者やAIエージェント向けに、ナレッジベースのオブジェクトを読み取り、編集、分析、リファクタリングするMCPサーバーです。GeneXus 16〜18のネイティブSDKに対応し、旧バージョンには機能を限定した互換ドライバーを提供します。
主な機能
- 01ナレッジベースオブジェクトの読み取り、編集、分析
- 02GeneXus 16〜18のネイティブSDK対応
- 03旧バージョン向け互換ドライバー
- 04ナレッジベースごとのSDK・ドライバー設定
- 05実験的なgx-engineビルドバックエンド
活用シーン
- 01指定した属性を含むトランザクションの検索
- 02トランザクションへの検証ルール追加
- 03新しいSDTを使うようプロシージャをリファクタリング
MCP 対応
GeneXusのナレッジベース操作をMCPクライアントに公開します。旧バージョン向け互換ドライバーの範囲は限定され、一部ツールは非対応バージョンのエラーを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
GeneXus MCP Server — Claude、Cursor、AI エージェント向けの複数バージョンの GeneXus
スペイン語でお読みになりますか? → スペイン語のスタートガイド ポルトガル語でお読みになりますか? → ポルトガル語のスタートガイド お困りですか? → トラブルシューティングガイド すべてのドキュメント → ドキュメント一覧
GeneXus MCP Server を使うと、AI エージェント(Claude Desktop、Claude Code、Cursor、Antigravity、および MCP 互換クライアント)が、選択したネイティブ SDK またはレガシー互換ドライバーでサポートされるナレッジベース内のオブジェクトを読み取り、編集、分析、リファクタリングできます。ネイティブ SDK の経路では 実際の GeneXus SDK を使用し、レガシーの経路では明示的なリフレクション/COM アダプターを使用します。どちらの経路も、KB の解析済みコピーには依存しません。
実際の使い方は、MCP を KB に接続してから、AI アシスタントに 「CustomerId 属性を持つすべてのトランザクションを一覧表示して」、「Order トランザクションに合計を検証するルールを追加して」、「このプロシージャをリファクタリングして、新しい SDT を使うようにして」 といった指示をするだけです。あとは MCP が実行します。
複数バージョンの GeneXus サポート
同じ MCP ディストリビューションは、生成された互換性ドキュメントに記載されている公式ネイティブ SDK のメジャーバージョンをサポートします。また、別個のドライバーを通じて、同ドキュメントに記載されているレガシーバージョンとの基本的なベストエフォートの互換性も提供しますが、この方法はネイティブ SDK の完全なサポートと同等ではありません。プロセスでは、宣言された各 KB を個別の SDK/ドライバーに割り当てられます。単一のメジャーバージョンで構成する場合は、--gx が便利なグローバル既定値として引き続き使えます。以下のコマンドは、既存の構成を切り替える例です。
npx genexus-mcp@latest init --kb "C:\KBs\KBTeste17" --gx "C:\Program Files (x86)\GeneXus\GeneXus17Trial"
# To switch this MCP configuration to GX18:
npx genexus-mcp@latest init --kb "C:\KBs\MyGX18KB" --gx "C:\Program Files (x86)\GeneXus\GeneXus18"
SDK または KB を切り替えた後は、AI クライアントを完全に再起動して、MCP プロセスとそのツールスキーマを再読み込みしてください。GX17 と GX18 を同時に実行する必要がある場合は、MCP の構成とポートを分けてください。
クラシック GX8/GX9 の KB は、KB ごとにドライバーとインストール先を宣言すれば、グローバルな GX18 の既定値を変更せずに開けます(Gateway はリスト形式とオブジェクト形式の両方のカタログを受け付けます)。
{
"Environment": {
"KBs": {
"SECT80": {
"Path": "D:\\GX80\\SECT",
"Driver": "com-gxpublic",
"InstallationPath": "C:\\Program Files (x86)\\ARTech\\GeneXus\\gxw80",
"Major": "8"
}
}
}
}
同等の単発リクエストは、path、alias、driver: "com-gxpublic"、installationPath、major: "8" を指定する genexus_kb action=open です。GX8 は登録済みの 32 ビット GXPublic プロバイダーを使用します。ドキュメントに記載されている .4 ProgID と、インストール時に登録される GXPubGXX.GXPublic(.5) 互換登録の両方が認識されます。クラシック DAT KB のルートは、レガシーのマーカー(DATA001、GXSPC001、kbdata、ATTRIBUT.DAT、ATT.XPW)から識別されます。
init は KB の .gxw のメジャーバージョンと、選択された GeneXus.exe のメタデータも読み取ります。メジャーバージョンが一致しない場合、または自動選択を検証できない場合は、config.json に書き込む前に処理を中止します。複数のインストール先が KB のメジャーバージョンに一致する場合、自動選択では最も新しいものよりも、.gxw のバージョンに更新番号が一致するインストール先(例:18.0.7.x の KB には U7)が優先されます。genexus-mcp doctor の kb_sdk_compatibility チェックでも同じ結果を確認できます。使い捨てのフィクスチャでは、ライブ KB テストハーネスに、公開済みの 1 つのアーティファクトに対してサポート対象の全メジャーバージョンを検査する、カタログ駆動型のマトリックスが含まれています。
Gateway は genexus_whoami を通じて、検出した SDK を報告します。
geneXus.supportedMajors:バージョンカタログに記載された、明示的に検証済みのネイティブ SDK メジャーバージョンgeneXus.legacyMajors:互換性ドライバーで処理される、カタログに記載されたレガシーメジャーバージョンgeneXus.sdkCompatibility.supportLevel:検出されたインストールのnative-sdkまたはbasic-legacygeneXus.matchedMajor:構成されたインストール先で検出されたメジャーバージョンgeneXus.versionMatches:検出されたインストール先がそのカタログに含まれているかどうかgeneXus.supportedMajor:カタログのプライマリメジャーバージョンを示す、従来の単一メジャーバージョン用エイリアスとして維持
Worker は、バージョン依存の SDK メンバーを互換性アダプターで隔離します。たとえば、SDK のメジャーバージョンによって異なる Design System のヘルパーメソッドは、必要に応じてネイティブの Tokens および Styles パーツを解析することで、フィールドごとに置き換えられます。既存のツール名、引数、MCP クライアント構成形式に変更はありません。
サポート対象の SDK メジャーバージョン:GeneXus 16、GeneXus 17、GeneXus 18(ネイティブ SDK)。
基本的なレガシー互換性:com-gxpublic および dotnet-reflection による GeneXus Evolution 3、GeneXus Evolution 2、GeneXus Evolution 1、GeneXus 15、GeneXus 9.0、GeneXus 8.0(ネイティブ SDK ビルドではありません)。
プライマリ SDK:GeneXus 18。
信頼できる唯一の情報源:config/gx-versions.json。
将来、新たなネイティブ SDK メジャーバージョンを追加する場合は、その SDK で Worker をコンパイルし、対象を絞ったテストとライブ KB のスモークテストに合格した後にのみ、明示的な supportedMajors カタログに追加してください。これにより、バージョン文字列だけを根拠にサーバーがネイティブ SDK との互換性を主張することを防げます。
基本的な旧バージョン互換性(ネイティブ SDK サポートではありません)
現在 legacyMajors で宣言されているすべての旧バージョンでは、ネイティブ SDK ビルドではなく、ベストエフォート型のドライバーを使用します。
- GeneXus Evolution 1(10.1)、Evolution 2(10.2)、Evolution 3(10.3)、GeneXus 15:ランタイムリフレクション(
dotnet-reflection)を介して動作し、型の欠落や構造の違い(QualifiedNameを持たないモジュールなしの KB など)に動的に適応します。 - GeneXus 8.0 および GeneXus 9.0:クラシック GXPublic サーフェス(
com-gxpublic)を介して動作します。gxw32.exe/gx.exe/gxdl32.dllおよびクラシックな.gxiナレッジベースを検出します。GXPublic はメタデータ指向の OLE DB サーフェスです。この経路は基本的なメタデータ/コア操作に意図的に限定されており、ネイティブ SDK と同等のソース/編集機能を保証するものではありません。 - グレースフルデグラデーション:新しい GeneXus バージョンで導入された機能(
genexus_api、genexus_gam、genexus_moduleなど)を必要とする最新のツールは、適切に処理できずに失敗するのではなく、必要な最小バージョンを示す構造化されたUNSUPPORTED_IN_GENEXUS_VERSIONエラーを返します。
この旧バージョン向けの経路は、実装されている基本的なコア操作を目的としており、 GeneXus 16、17、18 向けのネイティブ SDK 契約と同等の機能を保証するものではありません。
実験的な gx-engine(Rust SDK 置き換えプロジェクト)
src/gx-engine は、プロプライエタリな GeneXus SDK を完全に置き換え、従来の 32 ビット STA ワーカーを廃止し、20 秒未満のビルドを実現するために設計された、独立した高性能 Rust コンパイラー兼ランタイムです(Plan 130、Plan 129)。
🎮 逆コンパイル/互換性の進捗
ビデオゲームの逆コンパイルプロジェクトと同様に、クリーンなナレッジベースで GeneXus 公式 SDK を使用して検証済みの差分実行を行い、機能ごとに進捗を測定します。
Overall SDK Replacement: [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% weighted (60/60 core areas completed)
| サブシステム | 進捗 | 状態 | 対応済み/合計 |
|---|---|---|---|
| 言語とランタイムのコア(数学、10 進数、テキスト、日付、カレンダー) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等 | 8 / 8 領域 |
制御フローとプロシージャーパイプライン(If、Iif、For、For In、Exit、Case、Sub/Do、Call/.UDP、IsEmpty/SetEmpty/Nullvalue) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等 | 6 / 6 領域 |
構造化データとコレクション(SDT、Add、Remove、Clear、IndexOf、Item、ToJson、FromJson、ToXml、FromXml) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等 | 5 / 5 領域 |
ポータブル KB カタログと XML 投影(ExportFile XML およびポータブルカタログ内のプロシージャー、SDT、ドメイン、属性、トランザクション、ルール) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等 | 6 / 6 領域 |
スペシファイアーと SQL ナビゲーション(物理テーブル、DDL、スコープ付きスレッドナビゲーション、For Each) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等 | 8 / 8 領域 |
| ネイティブ KB データベースストレージ(UDM)(TDS SQL Server/LocalDB、11 バイトのエンベロープ、GZip 解凍機能、状態ロック) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等(Plan 130) | 10 / 10 領域 |
C#(.NET)ジェネレーターと Rebuild All パイプライン(.cs/.csproj/.sln の出力、20 秒未満の並列ビルド) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等(Plan 130) | 10 / 10 領域 |
| GeneXus の全サーフェス(WebPanels、トランザクション、レポート、イベント、BC) | [🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩] 100.0% | ネイティブ同等(Plan 130) | 18 / 18 領域 |
ゲートウェイ機能レジストリーのゲート
MCP ゲートウェイは厳密な機能ゲート(EngineCapabilityRegistry)を公開しており、トラフィックのルーティングを開始する前に、測定された同等性に基づいて操作を分類します。
| 機能 | 状態 | 根拠とパフォーマンス |
|---|---|---|
str_format | 🟩 同等 | Str() の数値書式ルール:ネイティブの 36,246 行を検証し、差異は 0 件です。実測で約 121 ns/行、SDK は約 280 ns/行(約 2.3 倍高速)です。 |
numeric_render | 🟩 同等 | &var.ToString()/Print():ネイティブの境界ケース 120 件を検証済みです(精度 1..18、スケールの境界値、パディング)。 |
date_display | 🟩 同等 | 日付/DateTime の描画:ネイティブの境界ケース 18 件を検証済みです(MM/dd/yy、12 時間制の AM/PM、空のセンチネル値)。 |
text_functions | 🟩 同等 | Substr/Upper/Lower/StrReplace:ネイティブの KBTeste ケース 63 件を検証済みです(1 始まり、大文字小文字の拡張、完全一致の置換)。 |
text_extended_functions | 🟩 同等 | LTrim/RTrim/PadL/PadR/Space/Concat/StartsWith/EndsWith/Contains/StrSearch:ネイティブの StringUtil オラクル行 95 件を検証済みです(ASCII の半角スペースのみをトリム、左右のパディング切り詰め、片側のみの連結トリム、序数比較、1 始まりのインデックスのクランプ)。 |
numeric_math_functions | 🟩 同等 | Int/Round/Trunc/Val/Left/Right/Asc/Chr/NotNumeric/LTrimStr:ネイティブの NumberUtil および StringUtil オラクル行 107 件を検証済みです(Math.Floor、負の桁数に対応した AwayFromZero、ゼロ方向への切り捨て、数値文字列の解析、ASCII 文字変換)。 |
collection_operations | 🟩 同等 | Add/Remove/Clear/IndexOf、For In による反復と Exit:ネイティブの GxSimpleCollection および GXBaseCollection オラクル行 24 件を検証済みです(1 始まりのインデックス、挿入、範囲外の要素の無言での削除、ループ内での要素エイリアシング、ループ終了)。 |
calendar_operations | 🟩 同等 | Day/Month/Year/Hour/Minute/Sec/Dow、AddYr/AddMth/DAdd/TAdd、DDiff/TDiff、Age、EndOfMonth、ResetTime、CToD/DToC/TToC、および .ToString():ネイティブの DateTimeUtil オラクル行 133 件を検証済みです(DOW の 1 は日曜日、うるう日のクランプ、秒の繰り上げ、日単位で切り捨てられる DDiff、完了した年数による Age、環境の 2 桁年のウィンドウを含む CToD の解析文法を実測、ISO yyyy-MM-dd および yyyy-MM-ddTHH:mm:ss の交換用書式)。 |
subroutine_control_flow | 🟩 同等 | Sub 'Name' ... EndSub および Do 'Name':ネイティブで検証済みのテスト 13 件(プロシージャースコープの変数変更、大文字小文字を区別しない解決、引用符のスタイル、入れ子のサブルーチン呼び出し、returnInSub のセマンティクスによる早期 Return の伝播、深さ制限 128)。 |
conditional_and_state_operations | 🟩 同等 | Iif(cond, trueExpr, falseExpr) の短絡条件判定、すべての型での汎用 .IsEmpty()/IsEmpty() および .SetEmpty()、Nullvalue(&var)、.UDP(...) 呼び出し、Format/NewLine/Replicate/CharAt/StrSearchRev/.LastIndexOf/BoolToStr/ToBoolean/StrToBool:ネイティブの StringUtil および状態オラクル行 57 件を検証済みです。 |
sdt_and_collection_json | 🟩 同等 | &sdt.ToJson()、&sdt.FromJson()、&col.ToJson()、&col.FromJson():ネイティブの GxUserType および GXBaseCollection<T> オラクル行 32 件を検証済みです(コンパクトな表現、エスケープされた文字列、空の日付 "0000-00-00"、大文字小文字を区別しないキー、部分更新、安全な配列の再設定)。 |
sdt_and_collection_xml | 🟩 同等 | &sdt.ToXml([root])、&sdt.FromXml(xml, [root])、&col.ToXml([root])、&col.FromXml(xml, [root]):ネイティブの GxUserType および GXBaseCollection<T> XML オラクル行 40 件を検証済みです(インデント、自己終了タグ <Tag />、XML エンティティのエスケープ、ISO yyyy-MM-ddT00:00:00 の日付/時刻、ブール値、大文字小文字を区別しない要素の解析、空へのリセット、フェイルクローズ方式のエラー返却)。 |
domain_attribute_projection | 🟩 同等 | ポータブルカタログおよび SDK ExportFile XML における Domain (00972a17-9975-449e-aab1-d26165d51393) と Attribute (adbb33c9-0906-4971-833c-998de27e0676) の投影および BasedOn の解決:ネイティブで検証済みの統合テスト 10 件(プロシージャー変数、連鎖するドメイン、SDT 項目、循環検出、属性を基にしたドメインの定義禁止の強制、エンドツーエンドの xml-run)。 |
transaction_structure_projection | 🟩 同等 | ポータブルカタログおよび ExportFile XML における Transaction (1db606f2-af09-4cf9-a3b5-b481519d28f6) の構造、キー、複数レベルの階層の投影:ネイティブで検証済みの統合テスト 10 件(入れ子レベル、ルートと子の主キーの強制、属性参照、再帰の深さ制限 16、Business Component の RecordType スキーマの引き下げ、プロシージャーとの相互運用)。 |
rules_and_parm_parity | 🟩 同等 | ポータブルカタログおよび SDK ExportFile XML における GeneXus Rules 部分 (9b0a32a3-de6d-4be1-a4dd-1b85d3741534) のパーサーと AST、および Parm インターフェイスの同等性:ネイティブで検証済みの統合テスト 10 件(Parm、Error、Msg、Default、NoAccept、Accept、Order、Prompt、Serial、Hidden`、単一行/複数行コメント、セミコロン/エスケープされた引用符を含む文字列、フェイルクローズ方式の診断、プロシージャースコープの強制、カタログおよび XML 交換の統合)。 |
transaction_control | 🟩 同等 | データベーストランザクション制御の手続きステートメント(Commit および Rollback。単独のキーワード、または任意のセミコロンを伴う呼び出し構文 Commit()、Rollback()):ネイティブで検証済みの統合テスト 7 件(条件分岐、ループ、サブルーチン、while ループ、format_version 1 のフェイルクローズ方式の拒否、コンパイル済み実行可能ファイルの実行、ExportFile XML 交換)。 |
physical_table_ddl | 🟩 同等 | 物理テーブルスキーマの正規化と複数方言の SQL DDL 生成(CREATE TABLE、主キー、親子およびトランザクション間の外部キー、インデックス、ANSI/SQL Server/PostgreSQL/Oracle のデータ型):データベースへの書き込みなしで、ネイティブの統合テスト 9 件を検証済みです。 |
sql_navigation | 🟩 同等 | 指定子、基底テーブルの推論、For Each ナビゲーション、拡張テーブルの結合、複数方言の SQL クエリ計画(ANSI、SQL Server、PostgreSQL、Oracle):ネイティブの統合テスト 10 件、フロントエンドテスト 13 件、フェイルクローズ方式の診断(spc0004、spc0005)、SQL への書き込み 0 件。 |
numeric_core、text_core、calendar_values、records_collections、procedure_pipeline、xml_projection、kb_catalog | 🟩 同等 | 上記 4 つのネイティブ同等性サブシステムを支える基盤となるランタイム機能です。各 EngineCapabilityRegistry エントリーには、ネイティブ差分テストコーパスまたは範囲を限定したポータブルフィクスチャ(decimal_oracle、numeric_math、text_extended、calendar_ops、date_conversions、collection_ops、subroutines、exchange、sdt_xml、catalog)が記載されています。 |
udm_storage_access | 🟩 同等 | COM/STA Worker を介さないネイティブ UDM ストレージへの直接アクセス(読み取り/書き込み/State ロック)(knowledgebase.connection、SQL Server、LocalDB):統合テスト 10 件、ライブ LocalDB の KBTeste 読み取りは 0.91 秒で完了(genexus_read、genexus_query、genexus_edit)。 |
csharp_emitter | 🟩 同等 | Procedures、WebPanels、Transactions、BCs、および Visual Studio Solutions(.sln)用の .NET(C# 10/12、net8.0/net9.0)クラスを出力する完全な C# コードジェネレーター:統合テスト 26 件、Roslyn dotnet build で検証済みです。 |
parallel_rebuild_all | 🟩 同等 | マルチコアでの仕様生成と Roslyn コンパイルを 20 秒未満で実行するネイティブ並列 Rebuild All エンジン(複数オブジェクトのカタログでのベンチマークは 1.25 秒):利用元は genexus_lifecycle.build、genexus_lifecycle.rebuild です。 |
⚡ パフォーマンスベンチマーク(gx-engine と GeneXus SDK の比較)
パフォーマンスを比較する場合は、測定前に必ず出力が完全に一致することを検証します(一致しない箇所がゼロで、ハッシュ/バイト出力が同一)。以下は、ローカルの Windows x86_64 ハードウェアで測定した差分ベンチマークです。
| ベンチマークのワークロード | GeneXus SDK(.NET / MSBuild) | gx-engine(Rust) | 高速化率/向上幅 | 検証およびオラクル |
|---|---|---|---|---|
Str() 数値ピクチャ形式の書式設定(マイクロベンチマーク) | 274 – 286 ns / 行 (1.75 ms / パス) | 121 – 130 ns / 行 (0.75 ms / パス) | 約 2.25 倍高速 | 6,152 行(str_matrix.tsv)、80,235 文字、FNV-1a UTF-16 ハッシュが一致(0xb9e1b48fb72067b0)。公式の GeneXus.Classes.Core ランタイムとの不一致は 0 件です。 |
| ライブ KB メタデータとパートのハイドレーション | 12,000 – 18,000 ms (シリアル COM STA) | 320 ms (直接 TDS クエリ) | 35 倍超高速 | ライブ LocalDB GX_KB_KBTeste で検証済み(test_udm_real_kb_live_read_procedure)。 |
| 全オブジェクトの完全再ビルド(マルチオブジェクトカタログ) | 約 480,000 ms(約 8 分) (IDE) | 1,250 ms (仕様の並列処理 + Roslyn) | 380 倍超高速 | スコープ付きスレッドによる仕様の並列処理 + C# 出力 + Roslyn コンパイル(test_rebuild_pipeline)。 |
| プロシージャのエンドツーエンドのコンパイルとビルド | 10,930 ms (SDK の各ステージ) 16,366 ms (MSBuild 合計) | 223 ms (Rust による解析 + 出力 + rustc リンク) | 約 49 倍高速 | 承認済みの KBTeste における合成 RustTimingProbe(21 * 2 = 42)。終了コード 0 と標準出力 42 が一致します。 |
| 生成された成果物の起動と実行 | 123.06 ms (CLR の起動処理 + 実行) | 5.75 ms (ネイティブバイナリの起動処理) | 約 21 倍高速 | コンパイル済み算術プロシージャ成果物の、コールドプロセス起動とコンソール出力。 |
📈 ベンチマークの手順と改善の記録方法
新しい機能が同等性に達し、追加の最適化が導入されたら、以下の手順に従ってこの台帳を更新してください。
- 最初に同等性を検証する: 公式 SDK または記録済みのネイティブ差分フィクスチャとの差分がゼロでない限り、ベンチマークは有効ではありません。
python src/gx-engine/scripts/benchmark.py --iterations 100 - 環境を標準化する: コンパイラーフラグ、ハードウェア仕様、反復回数を明記します(src/gx-engine/VALIDATION.md を参照)。
- 台帳に記録する: この表と plans/129-implementation-progress.md を更新し、ワークロードの説明、GeneXus SDK のベースライン、gx-engine の計測時間、観測された高速化率、コミット済みの証拠フィクスチャを記載します。
有効化フラグと安全性の境界
重要
自動ルーティングは行いません: デフォルトでは
Engine.Backendは"sdk"です。Gateway はすべてのツール呼び出しを公式 GeneXus SDK 経由で処理します。gxengineが有効な場合でも、ルーターはフェイルクローズで動作します。測定済みのParityがあり、明示的に登録されたコンシューマーがある機能だけがエンジンにルーティングされ、それ以外はすべて SDK に留まります。
ソースのチェックアウトからエンジンをテストまたはベンチマークするには、config.json を設定します。
{
"Engine": {
"Backend": "gxengine",
"Fallback": "sdk",
"TimeoutSeconds": 120
}
}
Engine.Backend:"sdk"(デフォルト)または"gxengine"(オプトイン)。Engine.Fallback:"sdk"(同等性がない場合に GeneXus SDK にフォールバック)または"error"``(厳密な検証のため、EngineCapabilityNotParity` でフェイルクローズ)。- 診断:
genexus_doctorは--versionハンドシェイクを使用してエンジンを検査し、backend、available、version、capabilities、routedOperationsを含むengineステータスブロックを報告します。
チェックアウトからコンパイラーテストまたはスタンドアロンプロジェクトを実行するには:
cargo test --manifest-path src/gx-engine/Cargo.toml
cargo run --manifest-path src/gx-engine/Cargo.toml -- check src/gx-engine/fixtures/demo.json
アーキテクチャと証拠の台帳について詳しくは、docs/engine_backend.md、エンジンガイド、機能マトリックスを参照してください。
MCP クライアント間で 1 つの Worker を共有する
Gateway と GeneXus SDK Worker は異なる役割を担います。デフォルトでは、Server.WorkerSharingMode は "isolated" です。この場合、各 Gateway がそれぞれ独自の Worker プロセスを所有します。エージェントが意図的に複数の独立した Worker を必要とする場合は、このモードを維持してください。
2 つ以上の独立した MCP クライアントが同じ物理 KB で作業する必要がある場合は、stdio-isolated 構成で WorkerSharingMode を "shared-host" に設定します。
{
"ConfigSchemaVersion": 2,
"GatewayMode": "stdio-isolated",
"GeneXus": {
"InstallationPath": "C:\\Program Files (x86)\\GeneXus\\GeneXus18",
"WorkerExecutable": "C:\\path\\to\\GxMcp.Worker.exe"
},
"Server": {
"HttpPort": 0,
"McpStdio": true,
"WorkerSharingMode": "shared-host"
},
"Environment": {
"ResolutionPolicy": "strict",
"KBs": [
{ "alias": "main", "path": "C:\\KBs\\YourKB" }
]
}
}
shared-host は、バインドされたローカルの名前付きパイプ接続を介して、KB ごとにブローカーが所有する SDK Worker のみを共有します。Gateway は独立したままです。MCP セッション、認可、KB の選択、キャッシュ、リクエスト追跡、キャンセル、進捗、通知、生成されたアーティファクトがプロセス境界を越えることはありません。共有が許可されるのは、物理 KB、Worker 実行ファイル、GeneXus のインストール、ドライバー、ターゲットのメジャーバージョンに互換性がある場合のみです。不一致がある場合は、誤った SDK プロセスへの接続を避けるため、接続を拒否します。
書き込みでは、Gateway ローカルの所有者情報を Worker に渡します。同じオブジェクト/パーツを、接続された 2 つのクライアントが同時に書き込むことはできません。一方、異なるオブジェクトへの書き込みは、共有 SDK 境界を介して独立して進められます。Worker 自体は単一の STA プロセスであるため、同じ SDK に到達する呼び出しは GeneXus の要件に従って引き続き直列化されます。
共有接続が正常な場合、genexus_whoami と genexus_doctor は、モード、識別キー、パイプ、ホスト/Worker の PID、世代、接続 ID、接続状態、最新の起動/障害診断を報告します。問題が発生した場合は、ローカル状態を再起動または削除する前に、worker.diagnostics と workerHealth を確認してください。これらのフィールドでは、構成/識別情報、ミューテックスまたはレジストリ、パイプ/ハンドシェイク、起動、子プロセスの終了/再生成、TTL、フレームに関する障害を区別できます。
ライフサイクルの契約についてはWorker の所有権を、2 クライアントでのスモークテストとバックプレッシャーの測定結果については共有 Worker のベンチマークを参照してください。
できること
60 個のツールを使って、実際の KB に対してエージェントができることを簡単に紹介します(詳細はツール一覧をご覧ください)。
| 領域 | エージェントができること |
|---|---|
| 🔎 探索 | オブジェクトの検索と一覧表示、任意の部分(ソース、ルール、イベント、構造、ドキュメント、パターン XML)の読み取り、メタデータと呼び出し元の確認、ソースの正規表現検索、ナビゲーションレポートの表示 |
| 🧭 把握と追跡 | タスクで触れるオブジェクトのランク付け、直接および推移的な呼び出し元の一覧表示、2 つのオブジェクト間の最短呼び出し経路の追跡、影響範囲と安全な削除の確認、1 つの変数のデータフローの追跡。エクスポートされたソースを genexus_wire 経由で読み取り専用で処理します(トークン予算あり)。 |
| ✏️ コードの編集 | 任意のオブジェクト部分の編集(full/patch/ops モード)、変数の CRUD、フォーマット、オブジェクトの作成と削除、curl コマンドからの Procedure のスキャフォールド作成、呼び出し元の編集と再ビルドを一度に実行 |
| 🗄️ データモデルの作成 | Transaction 構造(DSL)、一意/非一意インデックス(作成と削除)、属性の数式とサブタイプ、レベル Description/Image 属性、Domain の列挙値、フォルダーとモジュール、テーブルと Transaction の関係、冗長属性の検出 |
| 🧩 その他のオブジェクトの作成 | External Object のメソッドとプロパティ、Menu オプション、REST API オブジェクト、WorkWithPlus/WorkWith パターン、型指定された .NET ジェネレーター参照 |
| 🎨 UI と WorkWithPlus | パターン XML の完全な読み書き(コントロール、アクション、グリッド、順序、グループ)、テーマクラスとスタイル設定、ネイティブ WebForm/レイアウトの編集、コントロールカタログとデザインシステムのトークン/クラス/画像、ヘッドレスブラウザーによる検証 |
| 🔬 分析 | 影響/依存関係の分析、複雑度とコードメトリクス、命名、処理内容の説明、KB のアクティビティ/鮮度、再編成/DDL の影響プレビュー、ネイティブセキュリティスキャン、スキーマ差分の確認 |
| 🛠️ ビルド、テスト、デプロイ | ビルド(フルまたは高速な compile_check)、検証、再編成、インデックス作成、ネイティブ GXtest テストの実行、アプリケーションのデプロイ(ターゲットとデプロイ) |
| 🔀 リファクタリングと比較 | KB 全体での名前変更、Procedure の抽出、オブジェクトの比較とマージ(IDE と同等) |
| 🌿 バージョン管理、転送、チーム | KB モデルのバージョン/ブランチ、実際の XPZ エクスポート/インポート(依存関係を考慮)、GXserver(Team Development)の同期とCI パイプライン、git 形式の履歴、複数 KB での並行作業 |
| 🔐 セキュリティ | GAM/統合セキュリティのプロビジョニング、KB セキュリティ監査とネイティブ Security Scanner |
ネイティブ SDK のサポートでは、IDE と同じコードパスを使うネイティブ GeneXus SDKを利用します。そのため、編集は KB ファイルへのテキストハックではなく、実際に適用され検証されます。 レガシーサポートでは、カタログに記載されたリフレクションまたは COM ドライバーを使用し、未対応の最新ツールは明示的に機能を制限します。
前提条件
始める前に、次のものがそろっていることを確認してください。
- ✅ Windows(GeneXus は Windows 専用です)
- ✅ サポート対象の GeneXus がローカルにインストールされていること:ネイティブ SDK のサポートには GeneXus 16、17、または 18、基本的な互換性にはカタログに登録されたレガシーインストールが必要です(
docs/generated/supported-versions.mdを参照してください。必要に応じて、別のインストールパスを明示的に指定します)。 - ✅ プライマリのネイティブ SDK パスには GeneXus 18 がローカルにインストールされていること。ほかのカタログ登録済みネイティブバージョンとレガシーバージョンも、記載されたドライバーに応じてサポートされます。
- ✅ サポート対象のネイティブまたはレガシー GeneXus メジャーバージョンで作成され、IDE で少なくとも一度開いて初期化された Knowledge Base
- ✅ Node.js 22 以降 — ターミナルで
node --versionを実行して確認してください。インストールされていない場合は、nodejs.orgからインストールしてください。 - ✅ MCP 対応の AI クライアント — Claude Desktop、Claude Code、Cursor、Antigravity など
このリポジトリをクローンしたり、何かをグローバルにインストールしたりする必要はありません。npx が処理します。
ターミナルを使ったことがありませんか? Win+R を押して、powershell と入力し、Enter キーを押してください。これでターミナルが開きます。
クイックスタート(3 ステップ、約 5 分)
まず2つのパスを確認します
インストーラーを実行する前に、次のパスを控えておいてください。
- GeneXus のインストールフォルダー —
GeneXus.exeがある場所です。通常はC:\Program Files (x86)\GeneXus\GeneXus18です。 - KB フォルダー — ナレッジベースのルートフォルダーです(
.gxファイルとModel/、WebSpa/などのサブフォルダーが含まれます)。
KB の場所がわからない場合は、GeneXus で開いてタイトルバーを確認するか、File → Recent を確認してください。
ステップ 1 — インストーラーを実行する
ターミナルを開き、パスをご自身の KB フォルダーと GeneXus のインストール先に置き換えて実行します。
npx genexus-mcp@latest init --kb "C:\KBs\YourKB" --gx "C:\Program Files (x86)\GeneXus\GeneXus18"
ウィザードを使う場合は、
npx genexus-mcp@latest init --interactiveを実行して、表示されるプロンプトに回答してください。
実行すると、次のようになります(初回は約30秒かかりますが、再実行時は短縮されます)。
npxがパッケージをダウンロードします。- インストーラーがパスの存在と GeneXus の有無を確認します。
- インストール済みの AI クライアントを自動検出し、それぞれに MCP の設定を追加します。
- 最後に JSON のスニペットが表示されます。クライアントを手動で設定する必要がある場合に備えて、保存しておいてください。
🎉 You are all set!と表示されて完了します。
Windows では、利用可能な場合、現在の npm パッケージに同梱されたゲートウェイ実行ファイルを使って Antigravity が登録されます。そのため、MCP のハンドシェイクごとに npx のブートストラップ処理を行う必要はありません。この方法では npx キャッシュ内のパッケージが使われます。アップグレード後に genexus-mcp clients が古いランチャーを報告した場合は、npx genexus-mcp@latest clients add --clients antigravity を再実行してください。以下の固定パスを使うインストーラーを使用しない限り、ほかのクライアントでは npx genexus-mcp@latest ランチャーが引き続き使われます。
ステップ 2 — AI クライアントに MCP を登録する
ステップ 1 では、Claude Desktop、Claude Code、Cursor、Antigravity、Gemini CLI、OpenCode、Codex CLI、VS Code を含む、検出されたすべての対応クライアントが自動登録されます。お使いのクライアントが検出されなかった場合は、ステップ 1 で表示された JSON スニペットをクライアントの MCP 設定に手動でコピーしてください。設定ファイルの場所がわからない場合は、クライアント設定ガイドを参照してください。
ステップ 3 — AI クライアントを再起動してテストする
ここでつまずく人が多くいます。AI クライアントを完全に終了してから、もう一度開いてください。ウィンドウを閉じるだけではなく、プロセス全体を終了します。
- Claude Desktop:システムトレイのアイコンを右クリックして、Quit を選択します。その後、もう一度起動してください。(ウィンドウを閉じるだけでは不十分です。)
- Claude Code:セッションを終了して、新しいセッションを開始します。
- Cursor / Antigravity:すべてのウィンドウを閉じて、再度開きます。
- OpenCode:
opencode.json/opencode.jsoncを再読み込みするため、完全に終了してから再度開きます。 - Gemini CLI / Codex CLI:新しいプロセスまたはセッションを開始します。
次のプロンプトを貼り付けます。
「GeneXus MCP を使って、KB 内の最初の5つのオブジェクトを一覧表示し、名前と種類を表示してください。」
期待される動作:
- AI が
genexus_list_objectsツールを呼び出します(UI に「ツールを呼び出し中…」などと表示される場合があります)。 - 数秒後、KB 内のオブジェクトの一覧が表示されます。
一覧が表示されたら、設定は完了です。AI に何を頼めますか?に進んで、アイデアを確認してください。
AI が GeneXus ツールを利用できないと言う場合や、何も起こらない場合は、トラブルシューティングを確認してください。ほとんどの問題はそこで解決できます。
🤖 AI にインストールを任せる
ターミナルで自分でコマンドを実行したくない場合は、次の内容を AI チャットに貼り付けてください。
GeneXus MCP サーバーを設定してください。ターミナルで
npx genexus-mcp@latest init --kb "<MY_KB_PATH>" --gx "<MY_GENEXUS_PATH>"を実行してください。GeneXus のパスと KB のパスをまだ伝えていない場合は、先に尋ねてください。成功したら、出力された JSON ブロックを読み取り、MCP クライアントの設定に追加してください。GeneXus ツールを使い始めるために、クライアントを再起動するタイミングも教えてください。
プレースホルダーを置き換えるか、AI に尋ねてもらってください。
企業向けインストール(固定パス、ASR 対応)
お使いのマシンで Microsoft Defender ASR、SmartScreen、または署名のないバイナリをブロックする別のエンドポイントポリシーが有効になっている場合、デフォルトの npx フローは煩雑です。npx はパッケージを %LOCALAPPDATA%\npm-cache\_npx\<hash>\... の下にキャッシュし、<hash> はバージョンごとに変わるため、IT 部門は npm キャッシュ全体への広範なワイルドカード指定なしに、安定したパスを許可リストに登録できません。
代わりに、企業向けインストーラーを使用してください。バイナリを固定ディレクトリに展開し、AI クライアントがそこからゲートウェイを直接起動するように登録するため、実行時に npx が介在することはありません。
# One-liner — installs latest release, registers AI clients
iex (irm https://raw.githubusercontent.com/lennix1337/Genexus18MCP/main/scripts/install.ps1)
# With explicit KB and GeneXus paths
$s = irm https://raw.githubusercontent.com/lennix1337/Genexus18MCP/main/scripts/install.ps1
& ([scriptblock]::Create($s)) -Kb "C:\KBs\MyKB" -Gx "C:\Program Files (x86)\GeneXus\GeneXus18"
インストール先:
- 管理者シェル →
C:\Tools\GenexusMCP\ - 非管理者シェル →
%LOCALAPPDATA%\Programs\GenexusMCP\
ASR/Defender の除外リストに登録するパスを IT 部門に伝えてください:
<InstallDir>\GxMcp.Gateway.exe
<InstallDir>\worker\GxMcp.Worker.exe
後日、同じワンライナーを再実行するとアップグレードできます。インストール済みのバージョン(インストールディレクトリ内の version.txt)を検出し、より新しいリリースがある場合にのみダウンロードします。同じバージョンを再インストールするには -Force を、特定のタグに固定するには -Version v2.3.0 を、AI クライアントの登録を省略するには -NoClient を使用してください。クライアントの登録には Node.js 22 以降が必要です。Node.js がない場合でもスクリプトはバイナリを展開しますが、クライアント設定(claude_desktop_config.json など)は手動で編集する必要があります。
AI に何を尋ねられますか?
インストールすると、次のことができるようになります。最初のプロンプトとして試してみてください。
探索
- 「KB 内の Procedure 型のすべてのオブジェクトを一覧表示してください。」
- 「Procedure CalculateInvoiceTotal のソースを表示してください。」
- 「属性 CustomerId を参照しているすべてのトランザクションを検索してください。」
編集
- 「Order トランザクションに、Total < 0 の場合は error('Total must be positive') を実行するルールを追加してください。」
- 「Customer トランザクションに、DateTime 型の新しい属性 CreatedAt を追加してください。」
- 「Procedure CreateOrder 内の変数 &qty を &quantity に変更してください。」
データモデルの作成(IDE との往復は不要)
- 「Customer トランザクションの CustomerEmail を一意にしてください。」(一意インデックスを作成します)
- 「CustomerBalance を formula: sum(InvoiceAmount) にしてください。」
- 「Status ドメインに列挙値 Active/Inactive/Pending を追加してください。」
- 「PaymentGateway 外部オブジェクトにプロパティ apiKey とメソッド Connect(url) を追加してください。」
- 「MainMenu に、CustomerWW を開くメニューオプション 'Customers' を追加してください。」
WorkWithPlus パターンの編集(構造とテーマを全面的に制御)
- 「WorkWithPlus WebPanel に、変数、アクション、ネストされたレスポンシブテーブルを含む、型付きタブを追加してください。」
- 「WorkWithPlusOrder のトランザクションビューに、Save/Cancel/Delete と並べて 'Duplicate' ボタンを追加してください。」
- 「Customer トランザクションの属性を、テーマクラス GroupTelaResp を使った 'Contact Info' セクションにまとめてください。」
- 「WorkWithPlusInvoice の一覧に、InvoiceDate の降順による並べ替えを追加してください。」
- 「WorkWithPlusOrder の Save ボタンに buttonClass='btn ButtonGreen' を設定し、フォームヘッダーに BigTitle を適用してください。」
- 「WorkWithPlusReport の Selection グリッドから Export アクションを削除してください。」
- 「Customer トランザクションの Documentation パートを読み取り、Markdown に書き換えてください。」
アーキテクチャ、呼び出しグラフ、影響範囲(genexus_wire)
- 「CliSaldo を変更する前に、影響範囲を教えてください。どのプロシージャが書き込みを行いますか?」
- 「PValidaCreditoLive を直接呼び出しているのは誰ですか?また、他のプロシージャ経由ではどうですか?」
- 「PEmiteFaturaLive から PValidaCreditoLive までの呼び出し経路を表示してください。」
- 「請求書の利息計算を変更する必要があります。どこから始めればよいですか?」
分析
- 「Procedure ProcessShipment の処理内容を説明してください。」 —
genexus_analyze mode=explainは互換性専用のエンベロープであり、NotImplementedを返します。サポートされている分析とソースには、mode=summary、mode=context、またはgenexus_readを使用してください。 - 「WebPanel CustomerList のクエリが生成する SQL を教えてください。」
- 「Sales モジュールの構造を要約してください。」
ビルドとライフサイクル
- 「KB をビルドして、エラーがあれば報告してください。」
- 「単体テストを実行して、失敗したものを表示してください。」
エージェントは、MCP が公開する 60 個のツール(読み取り、編集、リファクタリング、分析、ビルド、データモデル作成、レイアウト自動化、DB/DDL、バージョン管理、セキュリティ、SQL プレビューなど)から適切なツールを選びます。ツールの全一覧は、以下のツール一覧を参照してください。
対応 AI クライアント
インストーラーが自動検出し、自動設定します。
| クライアント | 自動設定 | 備考 |
|---|---|---|
| Claude Desktop | ✅ | インストール後に再起動が必要です |
| Claude Code (CLI) | ✅ | セッションを再読み込みしてください |
| Cursor | ✅ | 再起動が必要です |
| Antigravity | ✅ | パッケージ済みゲートウェイに直接接続します。再起動が必要です。MCP 設定が存在する前でも検出されます |
| Gemini CLI | ✅ | — |
| OpenCode (CLI) | ✅ | 直接形式とネスト形式の両方の MCP レイアウトを読み取ります。再起動が必要です |
| Codex CLI | ✅ | ~/.codex/config.toml に書き込みます |
| VS Code / VS Code Insiders | ✅ | ネイティブ MCP(User/mcp.json)。再起動が必要です |
| OpenCode Desktop | ✅ | OpenCode CLI と opencode.jsonc を共有します。再起動が必要です |
| 任意の MCP クライアント | 手動 | init が出力する JSON スニペットを使用してください |
いつでも npx genexus-mcp clients を実行して、インストール済みのエージェント、genexus が登録されているエージェント、古いゲートウェイ exe を参照しているものがあるかを確認できます。特定のクライアントを登録(または再登録)するには、npx genexus-mcp clients add --clients antigravity,vscode を実行してください。
OpenCode Desktop
OpenCode Desktop は、OpenCode CLI と MCP 設定ファイル(opencode.jsonc または opencode.json)を共有します。genexus-mcp init --write-clients または genexus-mcp clients add --clients opencode-desktop を実行すると、共有設定に genexus18mcp が自動登録されます。登録後、OpenCode Desktop を完全に再起動して、MCP 設定を再読み込みしてください。
トラブルシューティング
「エージェントに GeneXus が認識されない」という問題が発生した場合は、まず npx genexus-mcp clients(登録されているか、存在するゲートウェイ exe を指しているか)と npx genexus-mcp doctor --mcp-smoke を確認してください。
インストールの問題は、主にいくつかの種類に分けられます。解決方法については TROUBLESHOOTING.md を参照してください。
- インストーラーが GeneXus または KB を見つけられない
- 再起動後も AI クライアントに GeneXus ツールが表示されない
- 「Worker failed to start」/.NET 4.8 のエラー
- KB のビルドエラー/成果物がロックされている
- ポート 5000 がすでに使用されている
%LOCALAPPDATA%\GenexusMCP\のアクセス許可- Antigravity に有用な stderr がなく、
exit status 1/0xffffffffだけが表示される
stdio ランチャーが失敗し、クライアントが stderr を保持できない場合、ラッパーは最後の失敗を %LOCALAPPDATA%\GenexusMCP\logs\last-stdio-error.txt に書き込みます。このファイルには UTC タイムスタンプ、終了コード、上限付きの stderr 末尾部分が含まれます。以前の失敗がある場合、genexus-mcp doctor は同じパスを報告します。インストールを変更したり、グローバル npm インストールを使用したりする前に、このファイルを確認してください。Antigravity ランチャーが古い場合は、npx genexus-mcp@latest clients add --clients antigravity で再登録してください。
共有 Worker の失敗を診断する
shared-host が接続できない場合や Worker が再起動される場合は、問題が発生しているクライアントから genexus_whoami と genexus_doctor を実行し、構造化された worker.diagnostics/workerHealth ブロックを保存してください。有用な証拠は、モード、ID、ホスト/Worker PID、世代、接続状態、接続エラー、失敗診断です。最終的な no_worker または startup_failed の概要だけでは不十分です。一致するホストがまだ実行中の間は、共有 Worker のレジストリファイルを削除しないでください。ライフサイクルはブローカーが管理し、PID/開始時刻の検証後に古い記録が回復されます。
まだ解決しませんか? npx genexus-mcp doctor --mcp-smoke の出力と、上記の上限付き診断フィールドを添えてイシューを作成してください。認証情報、トークン、接続文字列、その他の機密情報は伏せてください。
ツール一覧
Worker は、機能別に以下の 60 個のツールを MCP ルーターに公開します。大半は action を指定する包括的なツールです(例:genexus_db action=sql_ddl)。詳細なスキーマは src/GxMcp.Gateway/tool_definitions.json にあります。K2B Designer ブリッジ、空の WebPanel での WorkWithPlus、テキスト形式の Variables の編集、External Object メソッドなどの機能ガイドは、ドキュメント一覧に掲載されています。
概要と状態
genexus_whoami— KB コンテキスト、バージョン、Worker/インデックス/データベースの状態、自己更新の確認、次の手順のヒントgenexus_doctor— 接続、インストール、キャッシュの状態チェックgenexus_recipe— 名前付きプレイブック/自己拡張マクロgenexus_telemetry— 可観測性(メトリクス、レイテンシ、エラー)
アーキテクチャの探索と呼び出しグラフ
genexus_wire— 読み取り専用でトークン予算に対応した呼び出しグラフエンジン(同梱のgxwire.exe)。アクション:pack_task(デフォルト。タスク向けの一括概要を一度に生成)、for(fat→faturamentoなど、ドメインの類義語を使った意図のランキング)、status(グラフのサイズと主要ハブ)、callers(直接および推移的な呼び出し元)、impact(影響範囲、書き込み元、読み取り元)、path(fromからtoへの最短呼び出し経路)、slice(1 つの変数の定義と使用箇所。target=Object:Variable)、safe_delete(シンボル削除前の阻害要因)、index(キャッシュの再構築)、doctor(エンジンとキャッシュの診断)genexus_wireは Worker や GeneXus SDK を経由しません。Gateway は対象フォルダー(dir、kb、またはアクティブな KB パス)でgxwire.exeを実行し、その出力を返します。エクスポートされたソーステキスト(.prc、.trn、.wp、.sdp、.xml、.txt、.gx、.gxd)を正規表現ヒューリスティックで読み取るため、回答はライブ KB ではなくエクスポートされたファイルを反映します。空のフォルダーではempty="true"が返されます。どこを調べるか、変更がどこに影響するかを判断するために使用してください。ライブオブジェクトの検索にはgenexus_query、各オブジェクトのパーツを読むにはgenexus_readを使用してください。パラメーター:task(pack_task、for)、target(callers、impact、slice、safe_delete)、from/to(path)、format、token_budget(デフォルトは 1200)、full、kb/dir。formatはtoon(コンパクトで推奨)、xml(デフォルト)、json、mermaidのいずれかです。mermaid はstatus、callers、impact、path、pack_taskを描画し、その他のアクションは XML を返します。書き込まれるファイルは、indexの実行時およびキャッシュが古くなった場合に対象フォルダーへ作成される.gxwire_cache.binのみです。
検索と探索
genexus_query— オブジェクト検索(name:、type:、usedby:、parent:、…のプレフィックス)genexus_list_objects— 集計情報付きのページネーション対応オブジェクト一覧genexus_read— オブジェクトの任意のパーツを読み取り(ソース、構造、ルール、イベント、ドキュメント、パターン XML、…)genexus_inspect— オブジェクトのスナップショットを一度に取得(メタデータ、変数、構造、シグネチャ、呼び出し元)genexus_search_source— Procedure/DataProvider/WebPanel/Transaction のソース全体を対象とした正規表現/セマンティック検索genexus_navigation— IDE の「View Navigation」レポート
GeneXus 18 U16 の Data Selector では、genexus_read type=DataSelector は parameters、conditions、orders、definedBy、baseTransaction、baseTable、structure も受け付けます。SDK の順序と完全な式を保持し、versionToken を返します。また、ライフサイクル操作は実行しません。公開 U16 SDK は、このオブジェクトタイプの投影属性コレクションや解決済みの結合を公開していないため、誤解を招く空配列を返す代わりに、技術的な理由とともに projection と joins を unsupportedParts に返します。基底オブジェクトと宣言済みインデックスは、Specify を使わずに解決できる場合にのみ報告されます。structure.expression は semanticProjection として識別されます。これは型付きの公開 SDK 要素を組み合わせたもので、U16 の DataSelectorStructurePart.ToString() が生成する内部コレクション型名は公開しません。
Data Selector の条件を変更するには、genexus_edit type=DataSelector part=Conditions mode=full を使い、条件を 1 行に 1 つずつ指定します(genexus_read parts=["conditions"] も、そのテキストを source として返します)。リストは全体が置き換えられ、パラメーター、順序、Defined By はそのまま保持されます。保存された条件は再読み込みされ、検証されます。条件がネストされた AND/OR グループ内にある Data Selector では、DataSelectorConditionsNestedGroupsUnsupported が返され、何も保存されません。1 行に 1 つずつ指定する形式ではグループ化を表現できないため、リストを置き換えるとグループ構造が黙って平坦化されてしまうためです。まず GeneXus でこれらのレベルを平坦化してください。
編集
genexus_edit— 任意のオブジェクトパーツを編集します。モードはfull/patch/opsですgenexus_edit_and_build— 編集とオプションの仕様設定を行い、1回の呼び出しで呼び出し元を再ビルドします。検証に失敗した場合は補償ロールバックを実行しますgenexus_edit_form— WebForm を意味的に編集しますgenexus_variable— Variables パーツの CRUD 操作genexus_create— 作成処理をまとめたツール(Transaction、Procedure、Domain、SDT、API、Folder、Module、curl_procedure= curl コマンドから Procedure のひな形を作成、…)。object_atomicは事前チェック/読み戻し/ロールバックを行いながら、定義、変数、Rules、プロパティ、Source を作成しますgenexus_data_view— ネイティブ Data View を介して既存の物理テーブルにマッピングされた、ルートのみの Business Component Transaction をアトミックに作成/検査/更新/削除します。先に属性/キーを検証し、オプティミスティックバージョンと変更を一切行わない真のドライランをサポートします。破壊的な削除にはconfirm=trueが必要で、コミット状態と検証状態を個別に報告しますgenexus_delete_object— ネイティブ SDK の識別情報を使ってオブジェクトを削除します。confirm=trueを指定する前に、dryRun=trueを使って参照元を確認してくださいgenexus_format— ワーカーのルールに従ってコードスニペットをフォーマットします
データモデルと構造の作成
genexus_structure— データモデルを読み取り/書き込みします。get_visual/get_logic、update_visual(構造 DSL)、create_index/drop_index(一意/非一意インデックス — GeneXus 方式で一意性を適用)、set_attribute(Formula、サブタイプ、Title / ColumnTitle、IsCollection、basedOnDomain)、set_level(レベルの Description / Image 属性)、set_domain(既存 Domain の列挙値/基本型を編集)を使用できます。create_indexでは、dryRun:trueによって検証を行い、保存せずに適用予定の差分を返します。同時実行を保護するため、get_indexesのversionTokenをbaseVersionとして使用してください。実際の書き込み後は再読み込みして完全一致を検証し、失敗時にはスナップショットからロールバックします。Specify、Generate、Build、Rebuild、コンパイル、再編成、実行、テストは一切実行しませんgenexus_authoring— 構造 DSL では対応していないオブジェクト型のメンバーを作成します。add_external_method/add_external_property(External Objects)、add_menu_option(Menus)genexus_properties— オブジェクトレベルのプロパティを読み取り/更新しますgenexus_generator_reference— ネイティブ .NET ジェネレーター参照を一覧表示/プレビュー/追加/削除します。マネージドアセンブリの検証、オプティミスティック同時実行制御、保存後の再読み込みによる検証、完全なスナップショットからの厳密なロールバックを行い、ライフサイクル処理を暗黙的に実行することはありません
リファクタリング、パターン、比較
genexus_refactor— 名前変更、Procedure の抽出、WWP 条件セットgenexus_apply_pattern— GeneXus パターン(WorkWith、WorkWithPlus、…)を適用します。mode=actionsは型付き WorkWithPlus グリッドアクションと Action Groups を管理しますgenexus_wwp— 型付き WorkWithPlus 編集:Action Groups、アトミックなネイティブadd_grid_attribute、WebPanel のタブと型付き子要素向けのadd_tab、move_tab、remove_tabgenexus_workwith— 標準 WorkWith(WorkWith for Web)パターンのタブ(Generalなど)、Procedure 呼び出し、条件、パラメーターに対する型付きオーサリングgenexus_compare— IDE の「Compare Objects」と同等の機能(IComparerService)genexus_merge— オブジェクトの2方向または3方向マージ(IMergeService) 分析、ドキュメント、APIgenexus_analyze— オブジェクトを横断したセマンティック分析(影響範囲、依存関係、複雑さ、命名、code_metrics、summary、kb_stats= KB のアクティビティ/鮮度、table_relations= テーブル↔トランザクションの関係+冗長な属性など)。mode=explainは互換性のためだけに用意されています。従来のレスポンス形式を維持し、NotImplementedを返します。代わりにmode=summary、mode=context、またはgenexus_readを使用してください。genexus_dfd- Transaction/Table の読み取り専用 ER 図(extends/subordinatesエッジ+MermaiderDiagram)。SDK のテーブルリレーションのみを使って構築しますgenexus_impact- 呼び出し元グラフにおけるオブジェクトの影響範囲を読み取り専用で取得します。タイプ別の件数、依存関係順の再構築order、循環参照、および結果を切り詰めた上限を返します(リスクスコアなし)genexus_object_context- 1 つのオブジェクトの読み取り専用の識別情報+呼び出し元/呼び出し先(カバレッジを含む)+データモデル。同じ名前を持つオブジェクトが複数ある場合は、それらの GUID とパスを示して拒否しますgenexus_doc— Wiki/依存関係グラフ/健全性レポートを生成しますgenexus_api— HTTP プロシージャが公開する REST エンドポイントを調査しますgenexus_security— KB のセキュリティを監査します。audit_gam(環境/GAM プロパティ)、scan_secrets(Source に対する正規表現スキャン)、scan_native(SDK 独自の Security Scanner、ISecurityScannerService)
ライフサイクル、ビルド、テスト、DB
genexus_lifecycle— 指定ビルド(compile_checkを含む)、増分グローバルbuild_all、強制グローバルrebuild、検証、インデックス作成、再編成、ステータスのポーリングgenexus_test— ネイティブの GXtest テストを実行しますgenexus_db— DB 統合ツール:スキーマの差分検出、sql_ddl/sql_navigation、静的インデックスアドバイザー、sample_data、dry-run、楽観的バージョニング、再読み込み、検証済みロールバックに対応した、型付き Transaction レコードのクエリ/挿入/更新、Domain/SDT の型調査、翻訳のインポート、reorg_impact、および現在の Impact Analysis アーティファクトからのみ正確な DDL を取得する、変更を伴わないreorg_previewgenexus_deploy— アプリケーションをデプロイします(IDeploymentService):list_targets(読み取り)/deploy(破壊的操作、confirm=true)genexus_run_object/genexus_browser— 実行時 URL の解決とヘッドレスブラウザーによる検証
ネイティブのレイアウト/UI
genexus_layout— SDK のレイアウト/WebForm 操作(get_tree、find_controls、set_property、add_printblock、get_preview、list_controls= コントロール/テーマクラスのカタログ、design_system= DSO トークン/クラス/画像など)
KB プール、バージョニング、チーム開発
genexus_kb— 複数 KB のプール(list/open/close/set_default)genexus_module— Module Manager(IModuleManagerService)genexus_kb_version— モデルのバージョン/ブランチ管理(Create/Activate/Revert)genexus_versioning— バージョニングの統合ツール(KB の git 形式の履歴)genexus_gxserver— GXserver/Team Development の同期。pipeline_*(IContinuousIntegrationServiceを介した CI パイプライン)を含みますgenexus_transfer— 実際の XPZ エクスポート/インポート(依存関係を考慮したIKnowledgeManagerService):export/inspect/import(importはデフォルトでプレビューします。実際にインポートするにはdryRun:falseとconfirm:trueを指定してください)genexus_memory— エージェント用の KB ごとのファクトストア
セキュリティのプロビジョニング、IO、メタ情報
genexus_gam— GAM/統合セキュリティのプロビジョニング(IIntegratedSecurityService)genexus_io— アセット、パートテキストの交換、スクリーンショット、OCRgenexus_sdk_probe— 機能の調査用に、実行中の SDK のサーフェス(型/メソッド/プロパティ)をダンプしますgenexus_worker_reload— クライアントを再起動せずにワーカーをホットスワップします
複数 KB(v2.3.0+): メタツール以外のすべてのツールは、オプションの
kb引数(エイリアスまたは絶対パス)を受け取ります。ゲートウェイは最大Server.MaxOpenKbs(デフォルトは 3)個の KB を同時に開くことができ、それぞれが独自の Worker プロセスで実行されます。異なる KB への呼び出しは真に並列で実行されます。KBs[]スキーマについては、高度な設定を参照してください。
WorkWithPlus とテーマ設定(genexus_read / genexus_edit 経由)
PatternInstance/PatternVirtualXML を完全に読み書きできます。コンテナー(<table>、グループ)、コントロール(<textBlock>、<attribute>、<gridAttribute>、<filterAttribute>、<errorViewer>)、アクション(<standardAction>、<userAction>)、グリッド、並べ替え、ルール、イベントブロックに対応しています。Transaction ビューと Selection ビューは、それぞれ個別に指定できます。Documentation(Markdown)とHelp(HTML)は、第一級の書き込み対象です。- 実際の ThemeClass 値(
themeClass、buttonClass、groupThemeClassなど)を適用できます。genexus_list_objects --typeFilter ThemeClassで確認できます。
編集モード(genexus_edit):full(全体を置換。デフォルト)、patch(コンテキストアンカーを基点に Replace/Insert_After/Append を実行。ソースコードとパターン XML の両方で動作)、ops(ソースを含むパートに対して set_attribute、add_rule などの型付きセマンティック操作を実行)。
パターン XML の自動調整:WorkWithPlus は、IDE の描画順を親ごとの childrenOrderedList 属性に記録します。MCP は書き込みのたびに、実際の XML 子要素の順序からすべてのリストを再構築し(未作成の場合は作成も行い)、呼び出し側が要素をツリー内のどこに配置するかを指定するだけで、MCP が IDE 上でもその位置に描画されるようにします。レスポンスには、書き換えられた親要素と、安全に推測できなかった構造要素を一覧表示する childrenOrderedListReconciliation ブロックが含まれます。
デフォルトで安全:すべての書き込みツールは、dryRun: true(KB を変更せずにプレビューを返します)と idempotencyKey(安全な再試行。並行呼び出しは集約され、結果は 15 分間キャッシュされます)を受け付けます。
WorkWithPlus のパターン編集 — 実際にできること
WorkWithPlus のパターンは、Transaction と Selection の画面を制御する XML ドキュメントです。MCP は機能全体を公開しているため、エージェントは IDE を開かずに画面を設計または再構成できます。
| 機能 | ツール/パターン | 状態 |
|---|---|---|
PatternInstance / PatternVirtual XML の読み取り | genexus_read --part PatternInstance | ✅ |
パターン全体の置換(mode: full) | genexus_edit --mode full --part PatternInstance | ✅ 実機で検証済み |
テキスト形式のパッチによる検索/置換(mode: patch) | genexus_edit --mode patch --part PatternInstance --operation Replace | ✅ 実機で検証済み |
| 構造要素(textBlock、attribute、standardAction、グループとしての table、order、filterAttribute、gridAttribute、eventBlock など)の追加/削除/並べ替え | XML 編集+自動調整 | ✅ 実機で検証済み |
テーマクラス(themeClass、buttonClass、groupThemeClass、cellThemeClass、format="HTML") | 要素の XML 属性 | ✅ 実機で検証済み |
| Transaction ビューの再構成(フォームレイアウト、アクション行) | /instance/transaction/... 以下を編集 | ✅ 実機で検証済み |
| Selection ビューの再構成(リスト/グリッド、フィルター、並べ替え) | /instance/level/selection/... 以下を編集 | ✅ 実機で検証済み |
XML の順序から childrenOrderedList を自動再構築 | すべての書き込み時に暗黙的に実行。childrenOrderedListReconciliation に報告 | ✅ 実機で検証済み |
| WebPanel のタブと型付きコントロールの追加/移動/削除 | genexus_wwp の add_tab / move_tab / remove_tab | ✅ ネイティブの Pattern SDK コマンド。スナップショット+再読み込み+WebForm 投影の検証 |
| グリッド Attribute のキャプションを 1 つ追加または調整 | genexus_wwp の add_grid_attribute | ✅ 独立したドライラン、完全な PatternInstance/WebForm スナップショット、正確なロールバック。暗黙的なライフサイクル処理なし |
画面を再設計する際の推奨ワークフロー:
genexus_list_objects --typeFilter ThemeClass --nameFilter Button— この KB で利用できる実際のボタンクラス(ButtonGreen、ButtonBlue、ButtonRedなど。名前は KB によって異なります)を確認します。genexus_read --name WorkWithPlus<Object> --part PatternInstance— 現在の XML を取得します。- XML をメモリ上で編集します(LLM):属性を
<table isGroup="True" title="…" groupThemeClass="GroupTelaResp">で囲む、ボタンの順序を変更する、新しい<standardAction>を追加する、buttonClass="btn ButtonGreen"を設定するなど。 genexus_edit --mode full --part PatternInstance --content "<new xml>"— MCP がパートを書き換え、すべてのコンテナーのchildrenOrderedListを調整し、ラウンドトリップを検証します。- 読み戻して確認し、GeneXus IDE を更新して結果を確認します。
カスタムボタンには <standardAction> ではなく <userAction> を使用します。 Trn_Enter/Trn_Cancel/Trn_Delete は WorkWithPlus トランザクションに登録されている唯一の標準アクションです。カスタムボタン(Duplicate、Audit、Export など)はすべて、<userAction caption="…" name="…" buttonClass="btn ButtonGreen" confirm="False" /> にする必要があります。MCP の調整機能は <userAction> を <standardAction> と同等の要素(コンテキストに応じて同じ typeCode 17/18)として扱うため、同じ TableActions 行に共存し、IDE では横並びで表示されます。
WebPanel のタブには、XML 全体の置換ではなく、ネイティブの型付き操作を優先してください。
{
"action": "add_tab",
"name": "SamplePanel",
"controlName": "IntegrationV3",
"title": "Integration API V3",
"position": 5,
"children": [
{ "type": "variable", "name": "Operation", "basicType": "VarChar", "length": 40 },
{ "type": "userAction", "name": "SendIntegration", "caption": "Send" }
],
"dryRun": true
}
ドライランでは、型付きの差分と versionToken が返されます。保存時の呼び出しでは、これを baseVersion として渡してください。書き込みには Pattern SDK の要素コマンドを使用し、PatternInstance/WebForm の正確なスナップショットを要求し、保存時適用の設定を維持し、PatternInstance を再読み込みして、親 WebForm に反映したうえで再読み込みします。確認に失敗した場合は、両方のパートをロールバックします。ライフサイクル操作は実行しません。
知っておくべきこと(注意事項ではなく、概要):
- WorkWithPlus は保存後に一部の属性を正規化します。 特定のフィールドは基になるトランザクションにバインドされています(例:トップレベルグループの
titleは、トランザクションの表示名から決まります)。WorkWithPlus オブジェクトで「Apply this pattern on save」が有効になっていると、エンジンがこれらのフィールドを再計算します。これは IDE で編集する場合も MCP 経由で編集する場合も同じです。上書きを維持するには、MCP 経由でこのフラグを切り替えてください。{ "tool": "genexus_properties", "arguments": { "action": "set", "name": "WorkWithPlus<Object>", "propertyName": "SDPlus_Editor_Apply_On_Save", "value": "False" } }"True"|"False"|"Default"を指定できます(Default は KB レベルの設定を継承します)。エンジンによる再計算を再び有効にするには"Default"に戻します。このリポジトリで実際に検証済みです。 - 構造上の安全性は SDK によって確保されます。 パターンの不変条件に違反する XML(例:
<level>のない<transaction>、またはnameが登録済みアクションではない<standardAction>)を送信すると、SDK が保存を拒否し、MCP は入力を修正できるよう正確なエラーを返します。KB が中途半端な状態になることはありません。 - IDE の Pattern プレビューは、スタイルを適用した表示ではなく、構造を示すモックアップです。 テーマ CSS(
buttonClass、themeClass、フォント、色)はプレビューキャンバスではなく実行時に解決されるため、MCP による書き込みが成功しても、プレビューペインには一般的な表示がされます。スタイルを確認するには、IDE ツリーで要素を開いて右側の Properties パネルを確認してください(適用されたクラスが表示されます)。または Run / Live Editing を実行して、実際の CSS を確認してください。これは GeneXus IDE の動作であり、パターンの編集方法とは関係ありません。
AXI CLI(エージェントと自動化向け)
genexus-mcp コマンド自体も、トークン効率に最適化された出力を備えたエージェント向け CLI です。
genexus-mcp status # gateway/worker state
genexus-mcp doctor --mcp-smoke # health check + protocol probe
genexus-mcp tools list # list available tools
genexus-mcp config show # current resolved config
genexus-mcp layout status # native layout automation state
グローバルフラグ:--format toon|json|text · --fields f1,f2,... · --limit N · --query <text> · --quiet · --no-color。
例外は genexus-mcp wire です。引数を変更せずに同梱の gxwire.exe に転送します(終了コードも含みます)。そのため、--format は GxWire のものです。
genexus-mcp wire --dir ./exports/KBTeste --pack-task "invoice interest" --format toon
genexus-mcp wire --dir ./exports/KBTeste --callers PValidaCreditoLive
genexus-mcp wire --dir ./exports/KBTeste --path PEmiteFaturaLive:PValidaCreditoLive
genexus-mcp wire --help
仕様全文:docs/axi_cli_contract.md。ベストプラクティスガイド:docs/llm_cli_mcp_playbook.md。
高度な設定
インストーラーによって config.json が作成されます。ネットワーク、タイムアウト、シャドウパスをカスタマイズするには、次のようにします。
{
"Server": {
"HttpPort": 5000,
"BindAddress": "127.0.0.1",
"SessionIdleTimeoutMinutes": 10,
"WorkerIdleTimeoutMinutes": 60,
"MaxOpenKbs": 3,
"ArtifactOutputDirectory": "C:\\GenexusMCP\\Artifacts"
},
"GeneXus": {
"InstallationPath": "C:\\Program Files (x86)\\GeneXus\\GeneXus18",
"WorkerExecutable": "worker\\GxMcp.Worker.exe"
},
"Environment": {
"DefaultKb": "main",
"KBs": [
{ "alias": "main", "path": "C:\\KBs\\YourKB" },
{ "alias": "legacy", "path": "C:\\KBs\\OtherKB" }
]
}
}
後方互換性:
Environment.KBPathだけを含む古い設定も引き続き動作します。ゲートウェイは読み込み時に、自動的にKBs[]とDefaultKbに移行します。
生成されたドキュメントの成果物
genexus_doc は、Worker の更新時にインストールバックアップ内に取り残されないよう、生成ファイルを Worker のインストール先の外部に保存します。デフォルトのルートは %LOCALAPPDATA%\GxMcp\Artifacts です。各 KB には、docs と html を子ディレクトリに持つ、安定した kb-<identity> ディレクトリが割り当てられます。別のルートを選択するには Server.ArtifactOutputDirectory を設定します。KB ごとの子ディレクトリは引き続き追加されます。Worker を直接起動する場合は、同等の設定として GXMCP_ARTIFACT_OUTPUT_DIR を指定できます。Wiki の応答では result.file が、ビジュアライザーの応答では result.url が報告され、どちらの応答でも result.outputDirectory も報告されます。ビジュアライザーとヘルスチェックは、共有のインストール先相対キャッシュではなく、アクティブな KB の正規の IndexCacheService スナップショットを使用します。
複数の KB の使用
Environment.KBs[] に複数の KB を宣言すると、すべてのツールでオプションの kb 引数を使用できます。
// LLM example: list procedures in two KBs in parallel
{ "tool": "genexus_list_objects", "arguments": { "kb": "main", "type": "Procedure" } }
{ "tool": "genexus_list_objects", "arguments": { "kb": "legacy", "type": "Transaction" } }
kb を省略した場合の解決ルール:
- 明示的に指定した
kbが常に優先されます。並行作業を行う場合や、プロンプトが複数の KB に関係する場合に使用してください。 - 各 MCP セッションは、
initialize時点で設定済みのDefaultKbをスナップショットとして保持します。set_defaultは現在のセッションを変更し、今後のセッションで使用する起動時のフォールバックも永続化します。 openは Worker の起動と登録だけを行い、別のセッションの対象を暗黙的に変更することはありません。set_defaultで選択するか、kbを明示的に渡してください。- 開いている KB がちょうど 1 つの場合 → セッションで選択されていなければ、その KB が使用されます。
- セッションで KB が選択されておらず、開いている KB が 2 つ以上の場合 → サーバーは
KB_AMBIGUOUSを返します。set_defaultで選択するか、kbを明示的に渡してください。
実行時にプールを管理します。
{ "tool": "genexus_kb", "arguments": { "action": "list" } }
// → { selectedKb, activeKb, openKbs: [{alias, path, pid, workingSetMB, idleSeconds}], knownKbs, maxOpenKbs, defaultKb, declaredKbs }
{ "tool": "genexus_kb", "arguments": { "action": "open", "alias": "adhoc", "path": "C:/KBs/ScratchKB" } }
{ "tool": "genexus_kb", "arguments": { "action": "close", "alias": "legacy" } }
{ "tool": "genexus_kb", "arguments": { "action": "set_default", "alias": "main" } } // persists to config.json
OpenCode では、セッション開始時に genexus_whoami を 1 回呼び出してください。
対象を把握するには kb.selected、kb.default、kb.openKbs、kb.knownKbs、kb.declaredKbs を確認し、通常作業で使用する KB を genexus_kb action=set_default で選択してください。KB に関連付けられたすべての応答には、JSON ペイロードに kbAlias も含まれます。これにより、OpenCode はテキストのみの応答も照合できます。別の KB を意図的に比較または更新する呼び出しでは、kb=<alias> を指定してください。
インストーラーは、OpenCode 1.x で使用される従来の直接指定形式 mcp.genexus と、現在の mcp.servers.genexus 形式の両方で OpenCode の設定を登録します。インストール後にクライアントを修復または明示的に再登録する場合にのみ、clients add --clients opencode が必要です。通常は init によって、検出されたクライアントが自動的に処理されます。登録後は OpenCode を再起動して、MCP 設定を再読み込みしてください。
プールがいっぱいでアイドル状態の Worker がない場合、サーバーは KB_POOL_FULL を返します。Worker を明示的に 1 つ閉じるか、Server.MaxOpenKbs を増やしてください。各 Worker は SDK を自身のプロセス内で実行するため(アイドル時は約 200~400 MB、負荷の高い KB では最大 1~2 GB)、使用可能な RAM に合わせてプールのサイズを決めてください。
アーキテクチャ
graph LR
A[AI Client / Nexus-IDE] -->|MCP stdio or HTTP /mcp| B[Independent Gateway .NET 10]
B -->|isolated stdio: direct child| C[Worker .NET Framework 4.8]
B -->|shared-host: named-pipe attachment| H[Per-KB WorkerHost broker]
H -->|one compatible child| C
C -->|Native SDK| D[GeneXus KB]
- ワーカープール(v2.3.0+):分離モードでは、各 Gateway で開いている KB ごとに .NET 4.8 Worker プロセスを 1 つ起動し、
MaxOpenKbs(デフォルトは 3)で上限を設定します。shared-hostでは、互換性のある Gateway は重複した SDK プロセスを起動せず、物理 KB ごとにブローカーが所有する 1 つの Worker に接続します。Worker は必要に応じて起動され、WorkerIdleTimeoutMinutesによって再起動されます。また、プールが満杯の場合は LRU 方式で退避されます。 - KB 間の並列処理:異なる KB へのツール呼び出しは別々の Worker プロセスで実行され、互いにブロックされることはありません。同じ KB への呼び出しは、GeneXus SDK の STA 要件により引き続き直列化されます。
- Gateway の分離:
shared-hostによって、ある Gateway が別の Gateway のマスターやプロキシになることはありません。各クライアントは独自の MCP 状態を維持し、共有されるのは SDK Worker のみです。 - Gateway の再利用:複数の IDE インスタンスは、
%LOCALAPPDATA%\GenexusMCP\gateway-leasesにあるリースファイルを介して、1 つの Gateway を共有します。 - HTTP モード:SSE を使用する
http://127.0.0.1:5000/mcpも利用できます。ヘッダー:MCP-Protocol-Version: 2025-11-25。
ソースからの開発とビルド
コントリビュートする、またはローカル開発ビルドを実行しますか?
- Windows でこのリポジトリをクローンします。
.\build.ps1を実行して C# コンポーネントを復元・ビルドし、ローカルの成果物をパッケージ化します。このスクリプトは、必要な .NET SDK と GeneXus 18 のインストールを確認します。- GeneXus がデフォルトのパス以外にインストールされている場合は、ビルドを実行する前に
$env:GX_PATHにインストールフォルダーを設定します。実行時のテストには Knowledge Base のみが必要です。 - GxWire(
genexus_wireおよびgenexus-mcp wireに必要)は、src/gxwireにある Rust エンジンです。Rust ツールチェーン(cargo)をインストールしてください。build.ps1はリリースモードでビルドし、gxwire.exeをpublish/にコピーします。cargoがない場合、この手順はメッセージなしでスキップされ、ツールはGxwireNotFoundを返します。Gateway は、同じフォルダー、publish/、src/gxwire/target/release/、およびPATHからgxwire.exeを探します。CLI ではGENEXUS_MCP_GXWIRE_EXEも使用されます。
同梱の AI スキル(.gemini/skills/)
このリポジトリには、GeneXus に関する推論を支援するために、スキルに対応するあらゆる MCP 互換クライアント(Gemini CLI、プラグイン経由の Claude Code など)が読み込める エージェントスキル が .gemini/skills/ に含まれています。
| スキル | エージェントに提供する内容 |
|---|---|
genexus-mastery | このリポジトリで推奨される MCP ワークフローと、複数 KB の使用方法 |
genexus18-guidelines | Nexa に追加するローカルのエンジニアリングルール |
nexa | 主要な GeneXus SDK の完全なリファレンス一式:すべてのオブジェクトタイプ、コマンド、型、プロパティ。公式の genexuslabs/genexus-skills からインポートされています |
frontend/chameleon-controls-library | 58 個の Chameleon UI コンポーネント仕様 |
frontend/mercury-design-system | Mercury のトークン、バンドル、テーマ設定 |
frontend/design-system-builder | カスタムデザインシステムの作成 |
frontend/ui-creator | Panel/画面の生成テンプレート |
サードパーティ製スキルは Apache 2.0 ライセンスです(.gemini/skills/NOTICE.md を参照)。上流の内容に更新するには、NOTICE.md の手順に従ってください。
Nexus-IDE(VS Code 拡張機能 — オプション、自動インストールなし)
src/nexus-ide は、このリポジトリに含まれる軽量で実験的な VS Code 拡張機能です。インストーラーではパッケージ化もインストールもされなくなりました。代わりに、VS Code はネイティブの MCP クライアントとして接続されます(サポート対象の AI クライアントを参照)。この拡張機能を使用する場合は、手動でビルドしてインストールしてください。
cd src/nexus-ide; npm ci; npm run compile
npx --yes @vscode/vsce package --out nexus-ide.vsix
code --install-extension nexus-ide.vsix --force
仮想ファイルシステム(genexus:// スキーム)、複数パート編集に対応した KB エクスプローラー、および MCP 検出コマンドを提供します。
自動リリース
リリースは release.ps1 を通じて公開されます。プロトコルの詳細は docs/release_protocol.md をご覧ください。
- エントリーポイント:
./release.ps1 -Version <X.Y.Z>を実行すると、成果物をビルドし、v<version>タグと GitHub リリースを作成します(publish.zip、そのチェックサム、Nexus VSIX が添付されます)。mainへのプッシュでは何も公開されません。 - ワークフロー: リリースを作成すると、
release: [published]イベントによって.github/workflows/release.ymlが実行されます。tagを指定してworkflow_dispatchを手動で実行すると、すでに存在するリリースに対して再実行できます。このワークフローはリリースのアセットを検証し、パッケージを npm に公開します。タグやリリースの作成は行いません。 - npm 認証: OIDC Trusted Publishing を使用します。設定が必要な npm トークンシークレットはありません。また、ワークフローは公開前に、見つかったトークンをすべて解除します。
ライセンス
MIT — LICENSE をご覧ください。
検索キーワード: GeneXus MCP · GeneXus 18 MCP · GeneXus AI · GeneXus Claude · Model Context Protocol GeneXus · GeneXus ローコード AI エージェント · GeneXus Cursor · GeneXus Antigravity
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。