Skip to main content
Glama
sus-tech-gmbh

matrix42-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
M42_HOSTYesBase URL of the Matrix42 instance, e.g. https://matrix42.example.com
M42_TOOLSNoComma-separated tool ids to exposeall
M42_UI_URLNoOrigin of the web interface, for deep links. Discovered from the instance's web shell config when unset.discovered
M42_LANGUAGENoResponse language, sent as Explicit-Languageen-US
M42_PASSWORDNoBasic-auth alternative to M42_API_TOKEN
M42_USERNAMENoBasic-auth alternative to M42_API_TOKEN
M42_API_TOKENNoAPI token; exchanged for an access token automatically
M42_AUDIT_NOTENoMark created tickets with an internal note saying they were raised through this server. Set to 0 to disable.1
M42_TIMEOUT_MSNoPer-request timeout30000
M42_AGENT_LABELNoHow the assistant is named in that noteMatrix42 MCP server
M42_ALLOW_WRITESNoSet to 1 to expose tools that modify data. Write tools are not registered at all unless this is set.0
M42_ALLOW_INSECURE_TLSNoSet to 1 to skip TLS verification (self-signed dev instances only)0

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
server_infoA

Report which Matrix42 instance this MCP server is connected to (base URL, authentication mode, response language), which account the credentials authenticate as, and whether the connection works. Use the reported user fragment id to answer "my items" questions. Never returns credentials.

webservice_discoveryA

Discover the Matrix42 REST API of the connected instance (read-only metadata). action='api_overview' returns general Matrix42 API conventions (token exchange, the Explicit-Language header, Public vs Product API) — useful for reasoning about the API or writing standalone integration code. action='list_operations' returns operations as {id,name,method,path,service,documentation}; pass 'search' to filter by name/documentation/service or 'service_id' to limit to one service. action='list_services' lists every web service with its documentation. action='describe_operation' with 'operation_id' returns that operation's full contract: HTTP method, path, parameters with types, and return type. Typical flow: api_overview (once) → list_operations(search) → describe_operation(id).

schema_discoveryA

Explore the Matrix42 data model of the connected instance (read-only metadata). action='schema_overview' explains how the model fits together (data definitions vs configuration items, fragments, cardinality, pickups) — read this first. action='list_data_definitions' and action='list_configuration_items' find schema objects by 'search' term. action='describe_data_definition' returns a definition's attributes (add include='relations' or 'both' for its relations). action='describe_configuration_item' returns the data definitions an object is composed of, with cardinality and multi-fragment flags. action='get_pickup_values' returns the selectable values of a pickup — either pass 'pickup_class', or 'name' plus 'attribute' to resolve it. Typical flow: schema_overview → list_* (search) → describe_* → get_pickup_values before filtering on a pickup.

data_queryA

Read records from the connected Matrix42 instance (read-only). action='asql_guide' explains the ASQL expression language used by 'where' and 'columns' — read it before writing a filter. action='validate_asql' checks an expression against a class and reports the exact error; validating is cheaper than a failed query. action='query' returns rows of one data definition, with typed column metadata, an ASQL 'where' filter, 'columns' projection, 'sort', and paging. action='get_fragment' returns one complete fragment by id; action='get_object' returns a whole object by configuration-item name and object id. action='list_views' lists the instance's saved data queries — curated, named views that already carry a predefined filter — and action='run_view' runs one; prefer a matching view over hand-written ASQL. action='list_journal' returns an object's comment timeline and action='list_attachments' its files. NEVER guess attribute names: read them with schema_discovery(describe_data_definition) before writing 'columns' or 'where', and use get_pickup_values for the valid values of any pickup you filter on.

service_deskA

Read the service desk and the business objects around it. action='data_model' explains how Matrix42's modules map onto a handful of base classes — read it first if you are unsure where something lives. action='search_tickets' searches ANY ticket kind (incident, problem, change, task, service request, generic ticket, knowledge article) through one uniform contract. Only subject, category_name and states actually filter — Matrix42 accepts the other parameters and ignores them, so they are refused rather than returning every ticket. To filter on a person, ticket number or asset, use data_query with an ASQL where clause. action='get_ticket' returns one ticket's summary (it takes the OBJECT id — a fragment id answers null), action='sla_for_ticket' the service levels that apply to it, and action='sla_times' applies a service-level duration between two points in time. action='browse' lists a curated domain: assets (SPSAssetClassBase), stock_units (SPSStockKeepingUnitClassBase), contracts (SPSContractClassBase), slas (SVCServiceLevelAgreementClassBase), catalog_services (SPSArticleClassBase), bookings (SVCServiceBookingClassBase), kb_articles (SVMKBArticleClassBase), approvals (SVCApprovalTaskClassBase), imports (GDIEImportClassBase), import_runs (GDIEImportLogClassBase), workflow_instances (PLSLProcessInstanceClassBase), workflow_definitions (PLSLComponentClassBase), applications (SPSApplicationClassBase). action='find' searches ALL of those domains at once for a name — reach for it when you do not know where something lives. It does not cover tickets; search those with search_tickets. Columns are resolved against this instance every time, so fields a module does not install are reported as unavailable rather than failing the call.

Prompts

Interactive templates invoked by user choice

NameDescription
explore_instanceSurvey an unfamiliar instance: what it runs, which modules are installed, and where the data you care about lives.
build_queryTurn a question in plain language into a correct ASQL query, checking every attribute name against the live schema before running it.
triage_ticketWork through one ticket: what it is, who it belongs to, what the service level says, and what should happen next.
safe_changeWalk a write through the preview-then-confirm protocol, so nothing reaches the instance before you have seen exactly what it will send.
find_endpointLocate the operation that does what you need and read its real contract — for writing integration code against Matrix42.

Resources

Contextual data attached and managed by the client

NameDescription
data-modelHow the modules map onto a handful of base classes - where tickets, assets, licenses, contracts, SLAs and catalog items actually live, and the rule against guessing attribute names.
schemaData definitions vs configuration items, fragments, cardinality and pickups - read before reasoning about Matrix42 data.
asqlThe filter and column-list language used by every fragment query.
apiAuthentication, headers, and the Public vs Product API distinction - read before writing standalone Matrix42 integration code.