mcpField
M
Matrix42

Matrix42

ローカル
github.comビジネス・マーケティング01 週間前に更新

Matrix42 について

Matrix42は、Matrix42インスタンスにAIアシスタントを接続し、APIの探索、実データモデルの確認、レコード照会、サービスデスクチケット検索を行うMCPサーバーです。標準では読み取り専用で、書き込みを有効にした場合も事前プレビューと確認が必要です。

主な機能

  1. 01API操作とリクエスト仕様を探索
  2. 02実データモデルとフィールドを確認
  3. 03レコード、添付ファイル、保存済みビューを照会
  4. 04チケットとサービスデータを検索
  5. 05書き込みは標準で無効、操作を事前表示

活用シーン

  1. 01Matrix42のAPIエンドポイントとパラメーターを調べる
  2. 02有効なフィルターでレコードを読み取る
  3. 03チケットを検索しサービスレベルを確認
  4. 04チケット操作をプレビューしてから確定

MCP 対応

MCPサーバーとして、API・スキーマ探索、データ照会、サービスデスク検索、任意のチケット書き込みツールを提供し、ガイドをリソースとして公開します。認証情報はサーバー側で保持し、書き込みツールは標準では登録されません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sus-tech-gmbh-matrix42": {
"command": "npx",
"args": [
"-y",
"matrix42-mcp"
],
"env": {
"M42_HOST": "<M42_HOST>",
"M42_API_TOKEN": "<M42_API_TOKEN>",
"M42_ALLOW_WRITES": "<M42_ALLOW_WRITES>",
"M42_LANGUAGE": "<M42_LANGUAGE>",
"M42_TOOLS": "<M42_TOOLS>",
"M42_AUDIT_NOTE": "<M42_AUDIT_NOTE>",
"M42_AGENT_LABEL": "<M42_AGENT_LABEL>",
"M42_UI_URL": "<M42_UI_URL>",
"M42_ALLOW_INSECURE_TLS": "<M42_ALLOW_INSECURE_TLS>",
"M42_TIMEOUT_MS": "<M42_TIMEOUT_MS>"
}
}
}
}
起動コマンドnpx -y matrix42-mcp
設定が必要な環境変数
M42_HOSTBase URL of the Matrix42 instance
M42_API_TOKENシークレットAPI token created in the Matrix42 Administration application
M42_ALLOW_WRITESExpose the tools that modify tickets. Off by default, which keeps the server read-only
M42_LANGUAGEResponse language, sent as the Explicit-Language header
M42_TOOLSComma-separated tool ids to expose. Left unset, all tools are exposed
M42_AUDIT_NOTEMark created tickets with an internal note saying they were raised through this server
M42_AGENT_LABELHow the assistant is named in that note
M42_UI_URLOrigin of the web interface, for deep links. Discovered from the instance when unset
M42_ALLOW_INSECURE_TLSSkip TLS certificate verification. Only for self-signed development instances
M42_TIMEOUT_MSPer-request timeout in milliseconds

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmatrix42-mcp0.1.6

ツール

5

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Matrix42 MCP サーバー

CI npm version node License: MIT MCP PRs welcome

AI アシスタントに、Matrix42 を安全に、デフォルトでは読み取り専用で利用できるようにします。

Model Context Protocol サーバーです。経験豊富なコンサルタントのように、アシスタントが Matrix42 インスタンスを調べられるようにします。適切な Web サービスを見つけ、実際のデータモデルを読み込み、有効なフィルターでレコードを検索し、サービスデスクを検索できます。そして、有効にした場合に限り、チケットに対して操作を行います。

このサーバーは認証情報を保持し、アシスタントに代わって Matrix42 と通信します。API トークンの交換を実行し、Explicit-Language ヘッダーを設定し、TLS を処理します。アシスタントが認証情報を見ることはありません。

AI アシスタントに質問すると、アシスタントは MCP 経由で matrix42-mcp と通信し、matrix42-mcp は REST 経由でお使いの Matrix42 インスタンスと通信します。認証情報はサーバー内に保持され、アシスタントに渡ることはありません。

npx matrix42-mcp --help

重要

これは独立したコミュニティプロジェクトです。 Matrix42 AG と提携、推奨、後援、支援のいずれも受けていません。「Matrix42」はそれぞれの所有者の商標であり、このソフトウェアが連携する対象を説明する目的でのみ使用しています。サポートはGitHub の課題を通じてコミュニティから提供されます。**このプロジェクトについて Matrix42 サポートに問い合わせないでください。**また、いかなるサービスレベル契約も期待しないでください。本ソフトウェアはMIT ライセンスに基づき「現状のまま」提供されます。

メモ

ステータス:初期リリース。 このサーバーはデフォルトで読み取り専用です。M42_ALLOW_WRITES=1 を設定しない限り、書き込みツールは一覧にも表示されません。

主な特長

  • デフォルトで読み取り専用です。 明示的に有効にしない限り、書き込みツールはツール一覧に表示されません。
  • 推測はしません。 クエリの実行前にすべての列をお使いのインスタンスのライブスキーマと照合するため、インスタンスに存在しないフィールドは、不透明な 500 エラーになって送信されるのではなく、報告されます。
  • 説明してから操作します。 サーバーには、データモデル、スキーマ、ASQL フィルター言語、REST の規約を扱う 4 つのガイドが MCP リソースとして含まれています。
  • 書き込み前にプレビューできます。 confirm を渡すまでは、各書き込みで送信される正確なリクエストが返されます。プレビューは実行されるものと同じプランオブジェクトを使うため、内容にずれは生じません。
  • 重要な箇所には安全なデフォルトを設定しています。 通知メールはオフ、ジャーナルエントリは内部向け、連鎖的なクローズは明示的なオプトイン方式です。
  • Matrix42 のコードやコンテンツは含まれていません。 各ガイドは公式ドキュメントを参照する独自の文章であり、その内容を転載していません。

目次

理解する

セットアップする

使う

開発する


理由

Matrix42 の API は範囲が広く(一般的なインスタンスでは約 190 の Web サービスと約 1,100 のオペレーションが公開されています)、さらに約 800 のデータ定義と約 240 の構成アイテムからなるデータモデルもあるため、アシスタントには何が存在するのか分かりません。このサーバーに接続すれば、適切なエンドポイントを検索し、正確な契約を読み取ったうえで、URL、認証、ヘッダーを推測するのではなく、正しい連携コードを作成できます。


できること

API を見つける約 1,100 のオペレーションについて、完全なリクエストおよび戻り値の契約と、それぞれが更新に安全かどうかを確認できます
モデルを理解する785 のデータ定義、237 の構成アイテム、選択肢の値、リレーション、カーディナリティを確認できます
レコードを読むページネーション、保存済みビュー、ジャーナル、添付ファイル、Web インターフェースへのリンクに対応した ASQL クエリを実行できます
サービスデスクを操作する7 種類のチケットを名前、サービスレベル、厳選された 13 のドメインで検索したり、一度にすべてを検索したりできます
チケットを操作する作成、クローズ、分類、引き継ぎ、転送、一時停止、再開、期限設定、時間の記録を行えます。いずれも事前にプレビューできます
会話の例

あなた: 未解決のままになっている未クローズのハードウェアチケットはどれですか?また、サービスレベルの期限を過ぎているものはありますか?

アシスタントは、ID を 1 つも指定しなくても答えを導き出します。

アシスタントはカテゴリと状態でチケットを検索し、それぞれのサービスレベルを確認して、リスクのあるチケットへのディープリンクを作成し、ID を 1 つも調べたり何かを書き込んだりせずに回答します。

行われなかったことにも注目してください。GUID の検索も、属性名の推測も、データの書き込みもありません。また、サーバーが拒否するものにも注目してください。Matrix42 が受け付けても適用しないフィルターです。そのため、フィルターなしの回答がフィルター済みの回答と誤認されることはありません。


要件

  • Node.js 22.19 以降(HTTP クライアントの undici が必要とします)
  • Matrix42 のインスタンスと、API トークン(推奨)またはベーシック認証の認証情報
API トークンの作成

Matrix42 の Administration アプリケーションで、アシスタントが使用するアカウントの API トークンを作成します。サーバーはトークンを短期間有効なアクセストークンと自動的に交換し、有効期限が切れる前に再交換します。

ベーシック認証はサポートされていますが、推奨されません。多くのインスタンスでは、認証情報を受け付けても、ロールや対象者の制限により API アクセスが 403 で拒否されます。


設定

すべての設定は環境変数で行います。

変数必須デフォルト説明
M42_HOST✅-インスタンスのベース URL。例:https://matrix42.example.com
M42_API_TOKEN✅¹-API トークン。アクセストークンに自動的に交換されます
M42_USERNAME / M42_PASSWORD✅¹-M42_API_TOKEN の代わりに使用する Basic 認証情報
M42_LANGUAGEen-USExplicit-Language として送信される応答言語
M42_TOOLSall公開するツール ID をカンマ区切りで指定します
M42_ALLOW_WRITES01 に設定すると、データを変更するツールを公開します。この設定がない場合、書き込みツールは登録されません。
M42_ALLOW_INSECURE_TLS01 に設定すると、TLS 検証をスキップします(自己署名証明書を使用する開発用インスタンスのみ)
M42_AUDIT_NOTE1作成したチケットに、このサーバー経由で起票されたことを示す内部メモを付けます。無効にするには 0 に設定します。
M42_AGENT_LABELMatrix42 MCP serverメモ内でアシスタントに付ける名前
M42_UI_URLdiscoveredディープリンク用のウェブインターフェースのオリジンです。未設定の場合は、インスタンスのウェブシェル設定から検出されます。
M42_TIMEOUT_MS30000リクエストごとのタイムアウト

¹ M42_API_TOKEN、または M42_USERNAME と M42_PASSWORD の両方を指定してください。


クライアントのセットアップ

サーバーは stdio で動作し、MCP クライアントが起動します。インストール手順は不要です。npx が必要に応じて取得します。

Claude Code
claude mcp add matrix42 \
  --env M42_HOST=https://matrix42.example.com \
  --env M42_API_TOKEN=your-api-token \
  -- npx -y matrix42-mcp
Claude Desktop

claude_desktop_config.json (macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)

{
  "mcpServers": {
    "matrix42": {
      "command": "npx",
      "args": ["-y", "matrix42-mcp"],
      "env": {
        "M42_HOST": "https://matrix42.example.com",
        "M42_API_TOKEN": "your-api-token"
      }
    }
  }
}
Cursor

~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクトごと)

{
  "mcpServers": {
    "matrix42": {
      "command": "npx",
      "args": ["-y", "matrix42-mcp"],
      "env": {
        "M42_HOST": "https://matrix42.example.com",
        "M42_API_TOKEN": "your-api-token"
      }
    }
  }
}
VS Code(GitHub Copilot)

.vscode/mcp.json — この形式ではトークンをファイルに保存せず、入力を求めます。

{
  "inputs": [
    { "id": "m42-token", "type": "promptString", "description": "Matrix42 API token", "password": true }
  ],
  "servers": {
    "matrix42": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "matrix42-mcp"],
      "env": {
        "M42_HOST": "https://matrix42.example.com",
        "M42_API_TOKEN": "${input:m42-token}"
      }
    }
  }
}

stdio に対応するその他のクライアント(Windsurf、Cline、Zed、…)でも、同じ command / args / env 形式を使用します。


接続の確認

アシスタントに server_info を呼び出すよう依頼するか、同梱のスモークテストをインスタンスに対して実行します。

git clone https://github.com/sus-tech-gmbh/M42-MCP.git
cd M42-MCP && npm install && npm run build

M42_HOST=https://matrix42.example.com \
M42_API_TOKEN=your-api-token \
node scripts/smoke.mjs

実際の MCP クライアントとして接続し、すべてのツールを実行します。

CLI を直接実行することもできます。

npx matrix42-mcp --help    # usage and configuration
npx matrix42-mcp --tools   # available tool ids

ツールとアクション

6 つのツールが、それぞれ一連のアクションをまとめています。サーバーで実行できることはすべてここにあります。まず読み取りツール、次に書き込みツールを紹介します。

ツール機能
server_info接続先の Matrix42 インスタンスを報告し、認証情報が有効かどうかを確認します。認証情報を返すことはありません。
webservice_discoveryREST API を検出します。以下のアクションを参照してください。
schema_discoveryデータモデルを調べます。データ定義、構成アイテム、属性、リレーション、ピックアップ値が対象です。
data_queryレコードを読み取ります。ASQL クエリ、保存済みビュー、ジャーナルエントリー、添付ファイルのほか、ASQL ガイドとバリデーターも利用できます。
service_deskあらゆる種類のチケットを検索し、サービスレベルに関する質問に回答します。また、資産、契約、カタログサービス、予約、ナレッジ記事、承認、インポート、ワークフローインスタンスを参照できます。
ticket_actions書き込み — チケットのライフサイクルを操作します。作成、クローズ、引き継ぎ、転送、一時停止、再開、期限設定、時間の記録、ジャーナルエントリーの追加が可能です。M42_ALLOW_WRITES=1 の場合のみ利用できます。
webservice_discovery のアクション
アクションパラメーター戻り値
api_overview-Matrix42 API の一般的な規約:トークン交換、Explicit-Language、Public API と Product API、共通のデータサーフェス。スタンドアロンの統合コードを作成する前に役立ちます。
list_operationssearch?, service_id?, limit?{id, name, method, path, service, documentation} 形式のオペレーション。search は名前、ドキュメント、サービス名を対象に絞り込みます。デフォルトでは最初の 200 件が返されます。すべて取得するには limit: 0 を渡してください。
list_services-すべての Web サービスと、そのルートプレフィックスおよびドキュメント。
describe_operationoperation_id1 つのオペレーションの完全な契約:HTTP メソッド、パス、型を含むパラメーター、戻り値の型。

一般的な流れ: api_overview を 1 回実行 → 検索語を指定して list_operations → 対象のオペレーションに対して describe_operation

schema_discovery のアクション
アクションパラメーター戻り値
schema_overview-Matrix42 のデータモデルの構成:データ定義と構成アイテム、フラグメントとマルチフラグメント、カーディナリティ、ピックアップ、および公式ドキュメントの参照先。
list_data_definitionssearch?, include_pickups?, limit?{internalName, displayName, description, classType, isPickup, isCustom} 形式の定義。指定がない限り、ピックアップクラスは除外されます。
list_configuration_itemssearch?, limit?メインクラスとメンバー定義を含むアイテム。
describe_data_definitionname, include?デコード済みのデータ型とピックアップの相互参照を含む属性。リレーションはデフォルトで除外されます(中心的な定義には 150 件以上ある場合があります)。include: "relations" または "both" を渡してください。
describe_configuration_itemnameオブジェクトを構成する定義。それぞれのカーディナリティと isMultiFragment フラグを含みます。
get_pickup_valuespickup_class または name+attribute選択可能な {value, label} のペア。モデルがコードを推測せず、実際の値でフィルタリングできるようになります。

一般的な流れ: schema_overview → 検索語を指定して list_* → describe_* → ピックアップ属性でフィルタリングする前に get_pickup_values

data_query のアクション
アクションパラメーター戻り値
asql_guide-where と columns で使用される ASQL 式言語:演算子、ドットチェーン、ピックアップ、T(...) ピボット、サブクエリ、[Expression-ObjectID]。
validate_asqlclass, expression式が有効かどうかと、正確なエラー(例:"does not contain attribute Nope")。クエリに失敗してから確認するより低コストです。
queryclass, columns?, where?, sort?, page_size?, page?型付きの列メタデータを含む行と、ページネーション情報(hasMore)。
get_fragmentclass, fragment_id1 つの完全なフラグメント。
get_objectci_name, object_id1 つのオブジェクト全体(構成アイテムのすべてのフラグメント)。
list_views / run_viewsearch? / view_idインスタンスに保存されたデータクエリ。定義済みのフィルターを備えた厳選ビューです。手書きの ASQL より、条件に合うビューを優先してください。
list_journalobject_idオブジェクトのコメント/アクティビティのタイムライン。
list_attachmentsobject_idオブジェクトに添付されたファイル。
deep_linkobject_id, view_type?Matrix42 の Web インターフェイスへの URL。プレビュー、編集、作成、またはアクションの実行に使います。オブジェクト自体の構成アイテムを解決するため、オブジェクト ID だけで十分です。

一般的な流れ: asql_guide を 1 回実行 → schema_discovery でクラスとピックアップ値を検索 → validate_asql → query。ページネーションでは必ず sort を渡してください。そうしないと、ページ境界が安定しません。

数値の列挙値は自動的にデコードされます(Datatype: 2 → "Int"、Cardinality: 3 → "Optional (Multi)")。 カスタマイズには、インスタンス自身が報告するカスタムプレフィックスを使ってフラグが付けられます。

Web インターフェースへのリンク

data_query(action='deep_link') は、アシスタントがユーザーに渡せる URL を、Matrix42 がディープリンク用に定めている形式で生成します。

https://your-instance/wm/app-ServiceDesk/?view-options={"type":"SPSActivityTypeTicket",
                                                        "viewType":"preview",
                                                        "objectId":"<object id>"}

view_type は開く画面を選択します。preview(デフォルト、読み取り専用)、edit、作成フォームを開く new、またはウィザードを開く action があります。オブジェクト ID なしで機能するのは new だけで、action にはさらに action_id が必要です。リンクを開いても、データが変更されることはありません。edit でも、ユーザーが保存するまでは変更されません。

必要なのはオブジェクト ID だけです。 基本データ定義は複数の構成アイテムで再利用されています。たとえば SPSActivityClassBase はインシデント、サービスリクエスト、変更をまとめて扱います。そのため、サーバーが実際のクラスを解決するので、ユーザーが選ぶ必要はありません。誤った ci_name を渡すと修正されます。フラグメント ID を渡すと、何も開かないリンクを返すのではなく、リクエストが拒否されます。

リンクの対象は、接続先の API ホストではなく、Web インターフェース自体のオリジンです。 これらは異なる場合がよくあります。IP アドレスでアクセスできるインスタンスでも、UUX は実際の名前で提供されていることが多く、シェルの config.json にその名前が記載されています。誤ったオリジンからシェルを読み込むと、ページが読み込まれたように見えた後、アプリが配信元とは異なるオリジンにアクセスしようとして失敗します。サーバーはインスタンスからそのオリジンを読み取り、リンクとともに webInterface として報告します。M42_UI_URL で上書きできます。

service_desk のアクション
アクションパラメーター戻り値
data_model-Matrix42 のモジュールが、少数の基本クラスにどのように対応しているかを示します。チケット、資産、ライセンス、契約、SLA、カタログアイテムが実際にどこにあるかを確認できます。場所がわからないときに参照してください。
search_ticketskind と、subject、category_name、states のいずれか、または複数条件に一致するチケットです。kind は ticket、incident、problem、change、task、service_request、kb_article のいずれかです。他のフィルターパラメーターもありますが、Matrix42 は無視するため、渡すと拒否されます。
get_ticketticket_object_idサービスデスクから見た、1 件のチケットの概要です。
sla_for_ticketticket_object_idMatrix42 自身が計算した、適用されるサービスレベル契約です。
sla_timesticket_object_id反応時間と解決時間の状態です。
browsedomain、search?、where?、limit?キュレーションされた 1 つのドメインの行と、このインスタンスに存在しないフィールドです。
findsearch、domains?、limit?どこにあるかわからない場合に、名前をすべてのドメインから一括検索します。失敗したドメイン(モジュールがインストールされていない場合)は報告されますが、処理は失敗しません。

すべての種類で同じ仕様が使われるため、1 つの呼び出し形式でサービスデスク全体に対応できます。実際にフィルターとして機能するのは subject、category_name、states だけです。 Matrix42 は initiator_name、ticket_number、asset_id などを受け付けますが、無視してすべてのチケットを返します。フィルターされた結果と誤認する可能性がある未フィルターの結果を返すのではなく、そのようなパラメーターを渡すと拒否されます。拒否時には、これらの条件で絞り込める ASQL の where を指定した data_query が案内されます。

browse のドメイン:assets、stock_units、contracts、slas、catalog_services、bookings、kb_articles、approvals、imports、import_runs、workflow_instances、workflow_definitions、applications。ワークフローは読み取り専用です。このサーバーは定義とインスタンスを一覧表示しますが、開始、一時停止、再開、キャンセルは行いません。

列を推測することはありません。 browse の呼び出し前に毎回、サーバーはインスタンスから定義の実際の属性リストを取得し、存在するフィールドだけを保持します。残りのフィールドは unavailableFields として報告されます。ライセンスのないモジュールの場合、呼び出しは失敗せず、返される行の項目が少なくなります。同じルールがガイドとサーバーの指示にも記載されているため、接続されたモデルもこのルールに従います。

すべての読み取りツールには readOnlyHint: true の注釈が付けられているため、クライアントはデータを変更するツールと区別できます。

ticket_actions アクション(データの書き込み)

M42_ALLOW_WRITES=1 でない限り、書き込みツールはツール一覧に表示されないため、モデルから要求されても、デフォルトのデプロイでは何も変更できません。有効にすると、ticket_actions では次の操作を利用できます。

アクション説明
create_ticket新しいオブジェクト IDを返します。この ID は、ほかのすべてのアクションでそのまま使用します。
close_ticketオブジェクト ID を指定してチケットをクローズします。解決策とクローズ理由は任意で指定できます。
add_journal_entry任意のオブジェクトにコメントを追加します。テンプレートの parameters は任意で指定できます。
classify_ticketテキストからタイプを提案するだけで、何も変更しません。
take_over / acceptチケットを引き受けます。所属先の構成アイテムである type_name が必要です。
forwardチケットを role_id または user_id に引き継ぎます。OLA の適用は任意です。
pauseチケットを保留にします。エスカレーション時計の停止(not_escalate_while_paused)は任意で指定できます。
reopen理由を指定してクローズを取り消します。
return_to_roleチケットを担当ロールに返します。
set_deadlineチケットの対応期限を設定します。
track_working_time作業時間を記録します。作業内容の分類(investigation、resolution、…)は任意です。
transformチケットを別のタイプに変換します。たとえば、インシデントをサービスリクエストに変換します。レコードの種類そのものを書き換えるため、変換先のタイプにないフィールドは失われます。

Matrix42 は状態フィールドをそのまま公開するのではなく、名前付きの操作でステートマシンをラップしています。それぞれの操作に状態遷移で必要なパラメーターだけが含まれるため、安全に提供できます。

プレビューしてから確定

すべてのアクションはデフォルトでプレビューを行います。confirm: true を指定せずに呼び出すと、書き込みによって送信されるリクエスト(メソッド、パス、ボディ)と、確認すべき影響が返され、変更は行われません。

{
  "wouldChange": true,
  "applied": false,
  "summary": "Close 1 ticket(s)",
  "request": { "method": "POST", "path": "m42Services/api/ticket/Close", "body": { "…": "…" } },
  "effects": ["No notifications are sent and nothing cascades."],
  "next": "Nothing was changed. Show this to the user, and call again with confirm:true to apply it."
}

このプレビューは、実行時に使用するものと同じプランオブジェクトを使うため、別のリクエストを示しながら異なるリクエストを送信することはありません。confirm が設定されている場合でもプレビューを強制するには、dry_run: true を指定します。

作成されたチケットにはすべて、このサーバー経由で起票されたことを記録する内部ジャーナルノートも追加されます。API 経由で作成した場合、通常はウェブインターフェースに残る記録が残らないため、チケットを引き継いだ人がどこから起票されたのかを知る手段がありません。このノートはポータルには表示されません。また、書き込みに失敗しても、チケットは作成済みとして報告されます。監査記録が失われたことを、作成失敗と誤認させてはなりません。M42_AUDIT_NOTE=0 で無効にするか、M42_AGENT_LABEL="Acme Helpdesk Assistant" でアシスタント名を指定します。

サービス管理で特に重要なミスを防ぐため、さらに次の 2 つのデフォルト設定があります。

  • 通知メールは無効です。 notify_initiator、notify_users、notify_responsible はすべてデフォルトで false です。要求しない限り、チケットをクローズしても誰にもメールは送信されません。
  • ジャーナルエントリは内部向けです。 visible_in_portal はデフォルトで false のため、コメントが誤って依頼者のセルフサービスポータルに公開されることはありません。

close_related_incidents もデフォルトで false です。これはほかのチケットにも連鎖して影響するためです。

プロンプト

クライアントが提供できる再利用可能なテンプレートです(Claude Desktop のプロンプトメニューなど)。それぞれに、このサーバーで推奨される操作順が組み込まれているため、モデルが失敗を重ねて手順を探り直す必要はありません。

プロンプト用途
explore_instance不慣れなインスタンスの概要を把握する
build_query質問を検証済みの ASQL クエリに変換する
triage_ticket変更を加えずに、1 件のチケットに最初から最後まで対応する
safe_changeプレビュー → 確定の手順に沿って書き込みを進める
find_endpoint統合コードを書く前に、適切な操作を特定する
リソース

文章形式のガイドは MCP リソースとしても公開されているため、クライアントはツールを呼び出さずに読み込み、会話の冒頭で添付できます。

URI内容
matrix42://guide/data-modelMatrix42 は多数のモジュールではなく、1 つのグラフです
matrix42://guide/schemaデータ定義、構成アイテム、フラグメント、ピックアップ
matrix42://guide/asqlASQL 式言語
matrix42://guide/apiREST API の規約:認証、ヘッダー、Public API と Product API

同じテキストは docs/ にもチェックインされているため、何も実行せずに GitHub 上で読むことができます。まずは Matrix42 は多数のモジュールではなく、1 つのグラフです をご覧ください。「Licenses」や「SLAs」のテーブルが存在しない理由と、それらのレコードが実際にどこにあるのかを説明しています。 これらのファイルはガイドモジュールから生成され(npm run docs)、内容にずれがあるとテストが失敗します。


セキュリティに関する注意事項

  • このサーバーは認証情報を使うプロキシです。 設定されたアカウントが API 経由で読み取れるものには、接続されたアシスタントも、与えられたツールを通じてアクセスできます。アシスタントが実際に必要とする範囲に限定したアカウントを使用してください。
  • 認証情報はローカルに留まります。 環境変数から読み込まれ、お使いのインスタンスへのリクエストにのみ使用されます。ログに記録されたり、ツールから返されたりすることはありません。
  • .env を決してコミットしないでください。 このファイルは git の対象外です。クライアントの env ブロックまたはシークレット用プロンプトを使用してください。
  • M42_ALLOW_INSECURE_TLS は証明書の検証を無効にします。 自己署名証明書を使用する開発用インスタンスでのみ使用し、本番環境では決して使用しないでください。
  • 一部の機能だけを使用する場合は、M42_TOOLS で対象範囲を制限してください。

開発

npm install
npm run build        # compile to dist/
npm run typecheck    # tsc --noEmit
npm test             # unit tests (vitest)
npm run docs         # regenerate docs/ from the guide modules
node scripts/smoke.mjs                # end-to-end against a real instance
node scripts/service-desk-smoke.mjs   # service desk, domains and lifecycle verbs

service-desk-smoke.mjs は、自身で作成した単一のチケットに書き込みを限定し、最後にそのチケットをクローズします。既存のデータは変更されず、通知メールが要求されることもありません。

構成の概要

階層型アーキテクチャ:MCP のインターフェースはドメインモジュール上にあり、ドメインモジュールは正確性と安全性のレイヤー上にあり、その下には認証済みクライアントがあります。

サーバーのほかの部分が依存する保証を担うモジュールは 2 つあります。columns.ts により、インスタンスが応答できないプロジェクションが送信されることはありません。また、write-plan.ts により、プレビューとそのリクエストは同一のオブジェクトになります。

ディレクトリ構成
src/
  index.ts           entry point: config → client → MCP stdio server
  config.ts          environment configuration + validation
  m42-client.ts      authenticated HTTP client (token exchange, caching, TLS)
  discovery.ts       fragment queries + projections for services/operations
  schema.ts          schema listings, detail projections, enum decoding, pickup resolution
  api-overview.ts    the static Matrix42 API guide served by api_overview
  schema-overview.ts the static data-model guide served by schema_overview
  data.ts            record queries, paging, result shaping, ASQL validation
  objects.ts         journal, attachments, saved views, current-user identity
  tickets.ts         write operations and their safety defaults
  ticket-verbs.ts    the ticket lifecycle verbs (take over, forward, pause, reopen, …)
  service-desk.ts    the uniform ticket Search contract and the service-level endpoints
  columns.ts         resolves query columns from the live schema instead of assuming them
  domains.ts         the curated domain registry (assets, contracts, catalog, …)
  domain-guide.ts    the "one graph, not many modules" guide
  asql-guide.ts      the static ASQL guide served by asql_guide
  resources.ts       publishes the guides as MCP resources
  prompts.ts         reusable prompt templates
  deep-links.ts      URLs into the Matrix42 web interface (pure string building)
  write-plan.ts      the request a write would send, as a value - the basis of preview/confirm
  tools/             one module per tool, registered from a small registry

ツールを追加するには、src/tools/ の下にモジュールを追加し、src/tools/index.ts に登録します。追加した ID は自動的に M42_TOOLS で使用できるようになります。


ロードマップ

  • 添付ファイルのアップロードとダウンロード
  • 現在は読み取り専用となっている承認の決定(承認/却下)
  • ユーザーごとのトークン。「自分のアイテム」をサービスアカウントではなくエンドユーザーの視点で扱えるようにする機能

貢献

貢献を心より歓迎します。これはコミュニティプロジェクトであり、対応するインスタンスが増えるほど改善されていきます。Matrix42 のデプロイ環境には大きな違いがあるため、正確なリクエストとエラーを記載したバグ報告は非常に役立ちます。別の環境では属性や操作の挙動が異なることを知る唯一の手がかりとなることもよくあります。

最初の貢献におすすめの内容:

  • src/domains.ts に不足している、自分にとって重要なドメイン。
  • src/*-guide.ts/src/*-overview.ts にあるガイドの修正(その後、npm run docs を実行してください)。
  • リクエストとレスポンスを添えた、お使いのインスタンスで発生した失敗事例の issue。

プルリクエストを作成する前に:

npm run typecheck && npm test && npm run build

サポート

コミュニティによるサポートのみです。GitHub の issue と ディスカッションをご利用ください。SLA はなく、Matrix42 AG はこのプロジェクトのサポートを提供できません。このプロジェクトについて Matrix42 AG にチケットを作成しないでください。

プロジェクト

コントリビューションCONTRIBUTING.md
行動規範CODE_OF_CONDUCT.md
セキュリティポリシーSECURITY.md
変更履歴CHANGELOG.md
リリースGitHub のリリース

リリースは、GitHub Release の公開時に CI から npm trusted publishing を使用して公開されます。長期間有効な npm トークンはどこにも存在せず、すべての tarball には、ビルドに使用したコミットとワークフロー実行にひも付ける provenance が含まれています。

セキュリティ

脆弱性を発見しましたか?公開 issue ではなく、非公開で報告してください。詳しくは SECURITY.md をご覧ください。

ライセンス

MIT © 2026 S&S Technologies GmbH


免責事項

このプロジェクトは、独立してコミュニティが保守する統合機能です。Matrix42 AG とは提携、推奨、後援、サポートのいずれの関係もありません。「Matrix42」および関連する標章はそれぞれの所有者に帰属し、このプロジェクトが連携するソフトウェアを特定する目的でのみ使用しています。このリポジトリでは、Matrix42 のソースコードやドキュメントを再配布していません。

このソフトウェアは「現状有姿」で提供され、いかなる種類の保証もありません。設定するアカウント、およびアシスタントがこのソフトウェアを通じて行うすべてのことについて、利用者が責任を負います。本番環境のインスタンスに接続する前に、セキュリティに関する注意事項をお読みください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。