ALM X++ MCP Server について
ALM X++ MCP Serverは、D365 Finance & Operations向けにコードや関連ワークフローを扱う90個のMCPツールを提供します。バージョン管理されたコードインデックスを検索でき、設定したカスタムメタデータ、ライブ環境、テレメトリ、Azure DevOpsも扱えます。
主な機能
- 01D365コードとラベルの検索・確認
- 02参照、関連、変更影響の追跡
- 03品質、セキュリティ、性能の分析
- 04X++コードや関連成果物の生成
- 05ライブデータとAzure DevOpsの操作
活用シーン
- 01標準D365コード内のオブジェクトや参照の検索
- 02カスタマイズへのアップグレード影響の評価
- 03Application Insightsで性能低下を調査
- 04Azure DevOpsの作業項目やプルリクエストの分析
MCP 対応
ホスト型Cloud MCPはHTTPエンドポイントで90個のMCPツールを公開し、APIトークンを必要とします。付属のnpxランチャーはstdioクライアントを接続し、任意のヘッダーでカスタムメタデータ、ライブ環境、テレメトリ、DevOpsへのアクセスを設定できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.almxpp.com/mcpclaude mcp add --transport http alimbenhelal-pro-alm-xpp https://api.almxpp.com/mcp{"mcpServers":{"alimbenhelal-pro-alm-xpp":{"type":"http","url":"https://api.almxpp.com/mcp"}}}Cursor で開く{"servers":{"alimbenhelal-pro-alm-xpp":{"type":"http","url":"https://api.almxpp.com/mcp"}}}VS Code で開く{"mcpServers":{"alimbenhelal-pro-alm-xpp":{"type":"http","url":"https://api.almxpp.com/mcp"}}}{"mcpServers":{"alimbenhelal-pro-alm-xpp":{"serverUrl":"https://api.almxpp.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
90| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| methodName | string|null | いいえ | 任意:検証する特定のメソッド。指定しない場合はすべてのメソッドを検証します。 |
| objectName | string | はい | 検証するオブジェクト名。例:'SalesTable'、'CustInvoiceJour'。 |
| minSeverity | string | いいえ | 最低重大度:'Info'、'Warning'、'Critical'(デフォルト:'Warning') |
詳細
almxppmcp
ALM XPP の Cloud MCP 用 npx ランチャーです。MCP 経由で 90 個のツールを公開する、Dynamics 365 Finance & Operations 向け AI エージェントです。
公式 MCP レジストリに
io.github.alimbenhelal-pro/alm-xpp-mcp として公開されています。
このサーバーは、標準 D365 F&O コードベースの事前構築済みインデックスを使って回答します。 200K 以上の AOT オブジェクト、130 万以上のコードチャンク、2,500 万以上の相互参照、 2,400 万以上のラベル翻訳を収録し、74 言語にわたる 392K 件のラベル ID を表示します。
汎用モデルではなくインデックスを使う理由
汎用モデルは、トレーニング中に記憶した情報をもとに X++ の質問に回答します。このサーバーは、バージョン管理された特定の D365 コードベースのコピーをもとに回答します。
| 実際の動作 | |
|---|---|
| 既知のリリース | Cloud MCP は、お客様の環境ではなく、サーバーがインデックス化したリリースをもとに回答します。現在読み込まれているリリースは GET /mcp で確認できます。バージョンに左右される回答を信頼する前に確認してください |
| お客様独自のバージョン | お客様の環境の正確なビルドをインデックス化するのは、Local MCP の役割です。D365 SDK の隣で実行され、そのマシン上の PackagesLocalDirectory をインデックス化します。Cloud MCP ではこれを行えません。プラットフォームのバイナリを参照することはありません |
| 追跡可能 | 各結果には、元となる AOT オブジェクトとモデルが含まれるため、Visual Studio で開いて確認できます |
| お客様の拡張機能 | D365-Custom-Model-Path をお客様のメタデータに設定するか、Azure DevOps リポジトリをインデックス化すれば、標準コードとともにお客様独自のコードも検索されます |
| お客様のコードをトレーニングに使用しない | お客様のメタデータはセッションごとにインデックス化され、お客様からの呼び出しへの回答に使われます。トレーニングに使われることはありません |
3つのサーバー、それぞれの役割
D365 F&O では、3種類の MCP サーバーが使われます。この README では、常に以下の名前で呼びます。
| 名前 | 内容 | 入手方法 |
|---|---|---|
| Cloud MCP | ホスト型の ALM XPP サーバーです。インデックス化された D365 コードベースを対象に、90 個のツールを提供します | このパッケージです -- npx almxppmcp |
| Local MCP | D365 SDK とともに、開発用マシン上で実行されます。121 個のツールがあり、そのうち 36 個は AOT ファイルの書き込み、X++ のコンパイル、データベースの同期を行います。また、そのマシン上の PackagesLocalDirectory を読み取って、お使いのプラットフォームの正確なビルドをインデックス化できるのは、このサーバーだけです | 別途ライセンスが必要なコンポーネントです。[email protected] までお問い合わせください |
| Environment MCP | Microsoft 独自の Dynamics 365 ERP MCP サーバー です。F&O 環境自体から提供され、ライブデータを扱います | D365FO 内で有効にし、VS Code から直接接続します |
この npm パッケージの対象は Cloud MCP のみです。Local MCP は別途ライセンスが必要で、Environment MCP は Microsoft のものです。クライアントは独自に接続します。
要件
- API トークン。 ダッシュボードで取得してください
- Node.js >= 18。後述の
npxランチャーを使用する場合にのみ必要です
MCP クライアントの設定
Cloud MCP は https://api.almxpp.com/mcp にあるストリーミング可能な HTTP MCP サーバーで、X-API-Key ヘッダーで認証します。HTTP に対応したクライアントであれば、Node.js やランチャーを使わずに直接接続できます。
ツール呼び出しを受け付けるのは
api.almxpp.comのみです。almxpp.comとwww.almxpp.comはウェブサイトをホストしています。これらのホストに送信された JSON-RPC POST は拒否され、正しい URL を示すメッセージが返されます。変更されるのはホストのみです。API キーとヘッダーはそのままです。
VS Code / GitHub Copilot -- .vscode/mcp.json
{
"servers": {
"almxppmcp": {
"type": "http",
"url": "https://api.almxpp.com/mcp",
"headers": {
"X-API-Key": "YOUR_TOKEN"
}
}
}
}
ヘッダー
必須のヘッダーは X-API-Key のみです。その他のヘッダーを設定すると、独自のコンテキストを必要とするツールが使えるようになります。設定されていない場合、それらのツールは未設定であることを報告します。
| ヘッダー | 使用可能になる機能 |
|---|---|
X-API-Key | 必須です。 API トークンです。Authorization: Bearer <token> も使用できます。 |
D365-Custom-Model-Path | 呼び出し元のマシン上にある、独自の拡張機能/ISV メタデータの絶対パスです。分析ツールはここから読み取ります |
D365-Standard-Model-Path | PackagesLocalDirectory への絶対パスです。標準オブジェクトの読み取り専用リファレンスとして使用されます |
DEVOPS_ORG_URL | Azure DevOps の組織です。例:https://dev.azure.com/MyOrg |
DEVOPS_PROJECT | Azure DevOps のプロジェクト名です。DEVOPS_ORG_URL と併せて設定する必要があります。 |
DEVOPS_PAT | Azure DevOps トークンです。リポジトリから独自の X++ メタデータをインデックス化し、作業項目を読み取ります。 |
DEVOPS_REPO | プロジェクトに複数のリポジトリがある場合に、メタデータを格納しているリポジトリ |
DEVOPS_BRANCH | インデックス化するブランチです。既定値は main です |
DEVOPS_METADATA_PATH | AOT XML が格納されている、リポジトリ内のフォルダーです。既定値は Metadata です |
D365FO-Url | ライブ環境のベース URL です。odata_* および dmf_* ツールで使用します |
D365FO-Tenant-Id | その環境の Entra テナント |
D365FO-Client-Id | D365FO の Microsoft Entra アプリケーション に登録された Entra アプリ |
D365FO-Client-Secret | そのアプリのシークレット |
AppInsights-Workspace-Id | Log Analytics ワークスペースです。appinsights_* ツールで使用します |
AppInsights-Tenant-Id | そのワークスペースの Entra テナント |
AppInsights-Client-Id | ワークスペースで Log Analytics Reader ロールを持つ Entra アプリ |
AppInsights-Client-Secret | そのアプリのシークレット |
ライブ環境とテレメトリの認証情報は、d365fo_set_connection と appinsights_set_connection を使用してセッションごとに設定することもできるため、設定ファイルに保存する必要はありません。
examples/vscode-mcp.full-headers.json には、これらすべての設定例がまとめられています。シークレットは VS Code の inputs で入力するため、ファイルに残りません。
npx ランチャー
stdio のみを使用するクライアント向けに、almxppmcp コマンドが用意されています。トークンを読み取り、X-API-Key ヘッダーとして送信し、stdio 経由で Cloud MCP にトラフィックを中継します。依存関係はありません。Node 18 に標準で含まれるものに加えて必要なのは、このファイルだけです。
npx almxppmcp --api-key YOUR_TOKEN
または、環境変数を設定します。
export ALMXPPMCP_API_KEY=YOUR_TOKEN
npx almxppmcp
--api-keyとALMXPPMCP_API_KEYは、ランチャーにトークンを渡す 2 つの方法です。 どちらの場合も、HTTP ヘッダーX-API-Keyとして送信されます。同じトークンでも、渡す層が異なります。
ランチャーを使う場合の VS Code -- .vscode/mcp.json
{
"servers": {
"almxppmcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
}
}
}
Cursor -- .cursor/mcp.json
{
"mcpServers": {
"almxppmcp": {
"command": "npx",
"args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
}
}
}
Claude Desktop -- claude_desktop_config.json
{
"mcpServers": {
"almxppmcp": {
"command": "npx",
"args": ["-y", "almxppmcp", "--api-key", "YOUR_TOKEN"]
}
}
}
ヒント: ダッシュボードに表示されているトークンに置き換えてください。トークンをハードコードしないよう、環境変数として設定してください (Cursor と Claude Desktop ではルートキーが
mcpServers、VS Code ではserversです)。{ "mcpServers": { "almxppmcp": { "command": "npx", "args": ["-y", "almxppmcp"], "env": { "ALMXPPMCP_API_KEY": "YOUR_TOKEN" } } } }
環境変数
| 変数 | 説明 |
|---|---|
ALMXPPMCP_API_KEY | API トークン(--api-key の代替) |
ALMXPPMCP_SERVER_URL | MCP エンドポイントの上書き(デフォルト:https://api.almxpp.com/mcp) |
利用可能なツール
Cloud MCP は、以下に示す14カテゴリにわたる 90 個のツール を公開します。
Local MCP には、クラウドインデックスに依存しない85個のツールに加えて、D365 環境の隣で実行する必要があるツール(ビルド、デプロイ、データベース同期、ワークスペースへの書き込み)が 36 個 含まれています。こちら側には合計121個のツールがあります。
両方のサーバーを合わせると、ツールボックスには 126 個の異なるツール があります。
| カテゴリ | ツール数 | 名前 |
|---|---|---|
| 検索 | 5 | search_d365_code、search_labels、batch_search、federated_search、search_context_docs |
| 取得 | 6 | get_object_details、list_objects、list_custom_model_objects、get_object_context、compare_objects、get_menu_item_info |
| 関連性と影響 | 11 | find_related_objects、find_references、find_extensions、get_relation_graph、find_entity_for_table、find_callers、find_change_impact、find_event_handlers、find_relation_path、find_similar_implementations、trace_field_lineage |
| 品質と分析 | 7 | validate_best_practices、detect_performance_issues、find_error_patterns、fix_best_practice_violations、recommend_extension_strategy、suggest_edt、validate_object_naming |
| セキュリティとライセンス | 4 | trace_security_chain、trace_role_license_tree、get_security_coverage_for_object、generate_security_report |
| コード生成 | 8 | generate_unit_test、suggest_refactoring、generate_diagram、generate_query、create_aot_object、generate_data_entity、generate_xpp_form、generate_xpp_template |
| 機能ドメイン | 2 | generate_fdd、explain_workflow |
| 差別化機能 | 2 | analyze_upgrade_impact、map_business_process |
| アップグレードとリリースノート | 6 | resolve_client_profile、save_client_profile、list_release_note_inputs、prepare_release_note_context、generate_release_note_document、diff_model_versions |
| ライブ環境 | 5 | d365fo_set_connection、d365fo_clear_connection、odata_export_entity、odata_upsert_rows、get_data_entity_info |
| データ移行 | 7 | dmf、dmf_create_data_project、dmf_apply_entity_filter、dmf_import_file、dmf_export_package、dmf_get_job_status、dmf_transform_excel |
| パフォーマンス診断 | 4 | appinsights_set_connection、appinsights_clear_connection、appinsights_query、appinsights_diagnose_slowness |
| オーケストレーションとレポート | 6 | plan_and_execute、summarize_for_stakeholder、resolve_workspace_roots、resync_devops_index、healthcheck、get_output_page |
| Azure DevOps | 17 | ado_query_workitems、ado_analyze_workitem、ado_list_prs、ado_analyze_pr_impact、ado_gap_fit_analysis、ado_estimate_effort、ado_post_comment、ado_post_pr_comment、ado_create_task、ado_read_attachment、ado_update_workitem、ado_review_xpp_pr、ado_pr_dependency_map、ado_wiki_list、ado_wiki_get_page、ado_wiki_create_or_update_page、ado_wiki_delete_page |
コード検索以外の主な機能は次のとおりです。
- アップグレードの影響 - 2つの D365 バージョンを お客様独自の カスタマイズと比較し、回帰レポートを Word および PowerPoint 形式で作成します。
- ライブ環境 - 実行中の環境に接続し、OData 経由で実際のレコードを読み書きし、データ管理プロジェクトを実行します。
- パフォーマンス診断 - Application Insights のテレメトリをクエリし、実際に遅い処理を優先度順に診断します。
- Azure DevOps - 作業項目、プルリクエスト、Wiki を、分析からレビューまで扱います。
パラメーターとプロンプト例を含むリファレンス全文はこちらです:https://www.almxpp.com/docs
このリポジトリの内容
このリポジトリに含まれるのはクライアント側のみです。npm に almxppmcp として公開されている npx ランチャーです。
| パス | 用途 |
|---|---|
bin/almxppmcp.js | API キーとサーバー URL を解決し、サードパーティ製パッケージを使わずに、クライアントの標準入出力を HTTP 経由で Cloud MCP に中継します |
server.json | MCP レジストリマニフェスト |
Cloud MCP 自体(インデックス、検索、90 個のツール、ライセンスレイヤー)はクローズドソースで、https://api.almxpp.com/mcp で稼働します。ランチャーがコードを見ることはありません。指定したトークンを使って、HTTPS 経由でリクエストを転送します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。