ReliaQuest GreyMatter MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | INFO |
| MCP_HTTP_HOST | No | HTTP transport bind host | 127.0.0.1 |
| MCP_HTTP_PORT | No | HTTP transport bind port | 8765 |
| GREYMATTER_API_KEY | Yes | Your GreyMatter API key (Settings → API Key Management) | |
| GREYMATTER_TIMEOUT | No | Request timeout in seconds | 30 |
| GREYMATTER_BASE_URL | No | GraphQL endpoint | https://greymatter.myreliaquest.com/graphql |
| GREYMATTER_READ_ONLY | No | When true, no mutation tools are registered and graphql_query rejects mutations | false |
| GREYMATTER_CUSTOMER_SLUG | No | Default x-reliaquest-customer (OpCo) header for multi-OpCo accounts |
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
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| access_groupD | Access Groups · query accessGroup. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, id. Example variables: {"after":"T18w","filter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"id... |
| access_groupsC | Access Groups · query accessGroups. Variables: after, filter, first, notFilter, order. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"notFilter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"or... |
| permissionsD | Access Groups · query permissions. Example variables: {} |
| podD | Access Groups · query pod. Variables: after, filter, first, order, after1, filter1, first1, notFilter, order1, after2, filter2, first2, order2, id. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"ids":[""],"name":"","pods":... |
| podsC | Access Groups · query pods. Variables: after, filter, first, notFilter, order. Example variables: {"after":"T18w","filter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","roles":[""],"users":[""]},"first":10,"notFilter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","roles":[""],"users":["... |
| roleD | Access Groups · query role. Variables: after, filter, first, order, after1, filter1, first1, order1, id. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
| rolesC | Access Groups · query roles. Variables: after, filter, first, notFilter, order. Example variables: {"after":"T18w","filter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","pods":[""],"users":[""]},"first":10,"notFilter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","pods":[""],"users":["<I... |
| create_access_groupD | Access Groups · mutation createAccessGroup. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, input. Example variables: {"after":"T18w","filter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"id... |
| create_podD | Access Groups · mutation createPod. Variables: after, filter, first, order, after1, filter1, first1, notFilter, order1, after2, filter2, first2, order2, input. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"ids":[""],"name":"","pods":... |
| create_roleC | Access Groups · mutation createRole. Variables: after, filter, first, order, after1, filter1, first1, order1, input. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
| delete_access_groupC | Access Groups · mutation deleteAccessGroup. Variables: id. Example variables: {"id":""} |
| delete_podC | Access Groups · mutation deletePod. Variables: id. Example variables: {"id":""} |
| delete_roleC | Access Groups · mutation deleteRole. Variables: id. Example variables: {"id":""} |
| update_access_groupD | Access Groups · mutation updateAccessGroup. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, input. Example variables: {"after":"T18w","filter":{"accessGroups":[""],"customers":[""],"ids":[""],"name":"","roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"id... |
| update_podD | Access Groups · mutation updatePod. Variables: after, filter, first, order, after1, filter1, first1, notFilter, order1, after2, filter2, first2, order2, input. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"ids":[""],"name":"","pods":... |
| update_roleD | Access Groups · mutation updateRole. Variables: after, filter, first, order, after1, filter1, first1, order1, input. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
| api_keysC | API Keys · query apiKeys. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, user. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
| create_api_keyC | API Keys · mutation createApiKey. Variables: input. Example variables: {"input":{"expiryTime":"2026-05-01T00:00:00.000Z","user":""}} |
| delete_api_key_by_idC | API Keys · mutation deleteApiKeyById. Variables: id, user. Example variables: {"id":"","user":""} |
| delete_api_keysC | API Keys · mutation deleteApiKeys. Variables: user. Example variables: {"user":""} |
| assetsC | Assets · query assets. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"assetAccessibility":"ALL","assetTypes":[0],"cloud":{"name":"","visibility":["LOGGING"]},"discoverTechnologies":[""],"edr":{"name":"","visibility":["LOGGING"]},"eventFilter":{"activities":[""],"assetName":"","classes":[""],"eventCodes":[""],"gr... |
| delete_assetC | Assets · mutation deleteAsset. Variables: input. Example variables: {"input":{"assetId":"","comment":""}} |
| caseC | Cases · query case. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, after3, filter3, first3, order3, after4, filter4, first4, order4, after5, filter5, first5, order5, after6, first6, after7, first7, after10, filter6, first10, order6, after11, filter7, first11, order7, after12, filter8, first12, order8, after13, filter9, first13, order9, after14, filter10, first14, order10, after15, filter11, first15, order11, by. Example variables: {"after":"T18w","filter":{"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"}},"first":10,"order":{"direction":"ASC","orderByList":["CREATED_AT"]},"after1":"T18w","filter1":{"assignees":[""],"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026... NOTE: |
| casesA | List cases (with nested activity/children/comments connections). The OUTER list page size is |
| add_case_commentC | Cases · mutation addCaseComment. Variables: input. Example variables: {"input":{"caseId":"","comment":""}} |
| add_children_to_caseB | Cases · mutation addChildrenToCase. Variables: input. Example variables: {"input":{"caseId":"","children":{"childId":"","childType":"DISCOVER_TASK"}}} |
| cancel_caseC | Cases · mutation cancelCase. Variables: input. Example variables: {"input":{"caseId":"","closeCode":"","reason":""}} |
| close_caseC | Cases · mutation closeCase. Variables: input. Example variables: {"input":{"caseId":"","closeCode":"","reason":""}} |
| create_caseA | Create a case. NOTE: |
| remove_child_from_caseC | Cases · mutation removeChildFromCase. Variables: input. Example variables: {"input":{"caseId":"","child":{"childId":"","childType":"DISCOVER_TASK"}}} |
| update_caseC | Cases · mutation updateCase. Variables: input. Example variables: {"input":{"aiSummary":"","caseId":"","description":"","expirationDate":"2026-05-01T00:00:00.000Z","severity":"CRITICAL","state":"CANCELLED","subType":"COVERAGE_GAP","title":""}} |
| update_case_due_dateC | Cases · mutation updateCaseDueDate. Variables: input. Example variables: {"input":{"caseId":"","dueAt":"2026-05-01T00:00:00.000Z"}} |
| update_case_ownerC | Cases · mutation updateCaseOwner. Variables: input. Example variables: {"input":{"caseId":"","owner":""}} |
| customerC | Customer · query customer. Variables: after, first, after1, first1. Example variables: {"after":"T18w","first":10,"after1":"T18w","first1":10} |
| customersC | Customer · query customers. Variables: after, filter, first, notFilter, order. Example variables: {"after":"T18w","filter":{"accessGroups":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"notFilter":{"accessGroups":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""... |
| data_source_schemaD | Data · query dataSourceSchema. Variables: by. Example variables: {"by":{"incidentId":""}} |
| time_bucketsC | Data · query timeBuckets. Variables: filter. Example variables: {"filter":{"by":{"incidentId":""},"endTime":"2026-05-01T00:00:00.000Z","query":"","startTime":"2026-05-01T00:00:00.000Z"}} |
| customer_detectionC | Detections · query customerDetection. Variables: after, filter, first, order, by, id. Example variables: {"after":"T18w","filter":{"activityLogType":"BULK_NEW_RULES_DEPLOYED","activityLogTypes":["BULK_NEW_RULES_DEPLOYED"],"bulkJobId":"","customerDetectionId":"","draftCustomerDetectionId":"","isBulk":true,"parentCustomerId":""},"first":10,"order":{"direction":"ASC","orderBy... |
| customer_detection_activity_log_entriesC | Detections · query customerDetectionActivityLogEntries. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"activityLogType":"BULK_NEW_RULES_DEPLOYED","activityLogTypes":["BULK_NEW_RULES_DEPLOYED"],"bulkJobId":"","customerDetectionId":"","draftCustomerDetectionId":"","isBulk":true,"parentCustomerId":""},"first":10,"order":{"direction":"ASC","orderBy... |
| customer_detection_activity_log_entryC | Detections · query customerDetectionActivityLogEntry. Variables: after, filter, first, order, id. Example variables: {"after":"T18w","filter":{"types":["PUBLIC"],"user":""},"first":10,"order":{"direction":"ASC","orderBy":"CREATED_AT"},"id":""} |
| customer_detectionsC | Detections · query customerDetections. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"createdAt":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"detectionRuleIds":[""],"displaySlugs":[0],"enabled":true,"ineligible":true,"integrationIds":[""],"sourceTypes":[""]},"first":10,"order":{"direction":"ASC","orderBy"... |
| detection_rulesA | List deployed detection rules across GreyMatter integrations (includes MITRE ATT&CK mapping where available). Variables: after, detectionRuleOrder, filter, first. Example variables: {"after":"T18w","detectionRuleOrder":{"direction":"ASC","orderBy":"ID"},"filter":{"authors":{"connectorId":"","reliaQuest":true},"deployedLocations":{"connectorId":"","digitalRiskProtection":true,"greymatter":true},"endDate":"2026-05-01T00:00:00.000Z","ids":[""],"killch... |
| draft_customer_detectionC | Detections · query draftCustomerDetection. Variables: after, filter, first, order, by. Example variables: {"after":"T18w","filter":{"activityLogType":"BULK_NEW_RULES_DEPLOYED","activityLogTypes":["BULK_NEW_RULES_DEPLOYED"],"bulkJobId":"","customerDetectionId":"","draftCustomerDetectionId":"","isBulk":true,"parentCustomerId":""},"first":10,"order":{"direction":"ASC","orderBy... |
| create_activity_log_entry_commentD | Detections · mutation createActivityLogEntryComment. Variables: comment. Example variables: {"comment":{"activityLogEntryId":"","text":""}} |
| discover_taskD | Discover Tasks · query discoverTask. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, after3, filter3, first3, order3, after4, filter4, first4, order4, after5, first5, after6, first6, after7, first7, after8, first8, after9, filter5, first9, order5, after10, first10, after11, first11, by. Example variables: {"after":"T18w","filter":{"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"}},"first":10,"order":{"direction":"ASC","orderByList":["CREATED_AT"]},"after1":"T18w","filter1":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":["<I... |
| discover_tasksD | Discover Tasks · query discoverTasks. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2. Example variables: {"after":"T18w","filter":{"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"}},"first":10,"order":{"direction":"ASC","orderByList":["CREATED_AT"]},"after1":"T18w","filter1":{"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"}},"f... |
| assign_discover_taskC | Discover Tasks · mutation assignDiscoverTask. Variables: input. Example variables: {"input":{"assignee":"","discoverTaskId":""}} |
| close_discover_taskC | Discover Tasks · mutation closeDiscoverTask. Variables: input. Example variables: {"input":{"closeCode":"ACCEPTED_RISK","discoverTaskId":""}} |
| update_discover_task_stateC | Discover Tasks · mutation updateDiscoverTaskState. Variables: input. Example variables: {"input":{"discoverTaskId":"","state":"CLOSED"}} |
| access_control_policiesB | DRP Access Control · query accessControlPolicies. Variables: after, customerId, first, policyFilter, policyOrder. Example variables: {"after":"T18w","customerId":"","first":10,"policyFilter":{"name":"","resources":[""]},"policyOrder":{"direction":"ASC","orderBy":"NAME"}} |
| access_control_policyC | DRP Access Control · query accessControlPolicy. Variables: after, first, notFilter, order, after1, first1, after2, first2, after3, first3, notFilter1, id. Example variables: {"after":"T18w","first":10,"notFilter":{"ids":[""]},"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","first1":10,"after2":"T18w","first2":10,"after3":"T18w","first3":10,"notFilter1":{"ids":[""]},"id":""} |
| access_control_resourcesC | DRP Access Control · query accessControlResources. Example variables: {} |
| create_access_control_policyD | DRP Access Control · mutation createAccessControlPolicy. Variables: after, first, notFilter, order, after1, first1, notFilter1, input. Example variables: {"after":"T18w","first":10,"notFilter":{"ids":[""]},"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","first1":10,"notFilter1":{"ids":[""]},"input":{"accessGroups":[""],"customerId":"","description":"","name":"","resource":"","users":[""]}} |
| delete_access_control_policyD | DRP Access Control · mutation deleteAccessControlPolicy. Variables: after, first, notFilter, order, after1, first1, notFilter1, id. Example variables: {"after":"T18w","first":10,"notFilter":{"ids":[""]},"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","first1":10,"notFilter1":{"ids":[""]},"id":""} |
| update_access_control_policiesC | DRP Access Control · mutation updateAccessControlPolicies. Variables: after, first, notFilter, order, after1, first1, notFilter1, input. Example variables: {"after":"T18w","first":10,"notFilter":{"ids":[""]},"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","first1":10,"notFilter1":{"ids":[""]},"input":{"accessControlPolicyIds":[""],"accessGroups":{"add":[""],"addAll":true,"remove":[""],"remove... |
| update_access_control_policyC | DRP Access Control · mutation updateAccessControlPolicy. Variables: after, first, notFilter, order, after1, first1, notFilter1, input. Example variables: {"after":"T18w","first":10,"notFilter":{"ids":[""]},"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","first1":10,"notFilter1":{"ids":[""]},"input":{"accessGroups":{"add":[""],"addAll":true,"remove":[""],"removeAll":true,"replace":[""]},"des... |
| drp_alertC | DRP Alerts · query drpAlert. Variables: after, first, after1, first1, by. Example variables: {"after":"T18w","first":10,"after1":"T18w","first1":10,"by":{"id":"","shortCode":""}} |
| drp_alertsB | DRP Alerts · query drpAlerts. Variables: after, filter, first, orderBy. Example variables: {"after":"T18w","filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","classificationsAndRiskFactors":... |
| add_drp_alert_commentC | DRP Alerts · mutation addDrpAlertComment. Variables: input. Example variables: {"input":{"comment":"","drpAlertBy":{"id":"","shortCode":""}}} |
| assign_drp_alertC | DRP Alerts · mutation assignDRPAlert. Variables: input. Example variables: {"input":{"assignee":"","comment":"","shortCode":""}} |
| assign_drp_alertsD | DRP Alerts · mutation assignDRPAlerts. Variables: input. Example variables: {"input":{"assignee":"","comment":"","filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","c... |
| bulk_add_drp_alert_commentC | DRP Alerts · mutation bulkAddDrpAlertComment. Variables: input. Example variables: {"input":{"bulkCommentBy":{"filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","classificationsAndRi... |
| bulk_close_drp_alertsD | DRP Alerts · mutation bulkCloseDrpAlerts. Variables: input. Example variables: {"input":{"comment":"","drpAlertIds":[""]}} |
| bulk_update_drp_alert_stateD | DRP Alerts · mutation bulkUpdateDrpAlertState. Variables: input. Example variables: {"input":{"comment":"","filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","classificationsAndRiskFa... |
| delete_drp_alert_commentB | DRP Alerts · mutation deleteDrpAlertComment. Variables: input. Example variables: {"input":{"drpAlertComment":""}} |
| un_watch_drp_alertD | DRP Alerts · mutation unWatchDRPAlert. Variables: shortCode. Example variables: {"shortCode":""} |
| un_watch_drp_alertsC | DRP Alerts · mutation unWatchDRPAlerts. Variables: input. Example variables: {"input":{"comment":"","filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","classificationsAndRiskFa... |
| unassign_drp_alertD | DRP Alerts · mutation unassignDRPAlert. Variables: input. Example variables: {"input":{"comment":"","shortCode":""}} |
| unassign_drp_alertsD | DRP Alerts · mutation unassignDRPAlerts. Variables: input. Example variables: {"input":{"comment":"","filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","classificationsAndRiskFa... |
| update_drp_alert_commentC | DRP Alerts · mutation updateDrpAlertComment. Variables: input. Example variables: {"input":{"comment":"","drpAlertComment":""}} |
| update_drp_alert_stateC | DRP Alerts · mutation updateDrpAlertState. Variables: input. Example variables: {"input":{"comment":"","drpAlert":"","state":"IN_PROGRESS"}} |
| watch_drp_alertD | DRP Alerts · mutation watchDRPAlert. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, shortCode. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
| watch_drp_alertsD | DRP Alerts · mutation watchDRPAlerts. Variables: input. Example variables: {"input":{"filter":{"active":true,"alertExternalIds":[""],"alertFingerprints":[""],"assetLabelIds":[""],"assetSerialIds":[""],"assetTypes":["ACCESS_KEY"],"assignees":{"assignees":[""],"includeUnassigned":true},"changed":"","classificationsAndRiskFactors":{"clas... |
| emergency_contactD | Emergency Contacts · query emergencyContact. Variables: after, first, after1, first1, after2, filter, first2, order, after3, filter1, first3, order1, after4, filter2, first4, order2, id. Example variables: {"after":"T18w","first":10,"after1":"T18w","first1":10,"after2":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first2":10,"order":{"direction":"ASC","orderBy":"NAME"},"after3":"T18w","filter1":{"accessGro... |
| emergency_contactsB | Emergency Contacts · query emergencyContacts. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"available":true,"callCategories":["ENGINEERING"],"greyMatterUser":true},"first":10,"order":{"direction":"ASC","orderBy":"CALL_CATEGORY"}} |
| create_emergency_contactC | Emergency Contacts · mutation createEmergencyContact. Variables: input. Example variables: {"input":{"callAttempts":0,"callCategories":["ENGINEERING"],"callOrder":0,"callWindows":{"daysOfWeek":["FRIDAY"],"endTime":"","startTime":"","timeZone":""},"fullName":"","phoneNumber":"","userId":""}} |
| delete_emergency_contactC | Emergency Contacts · mutation deleteEmergencyContact. Variables: id. Example variables: {"id":""} |
| update_call_orderC | Emergency Contacts · mutation updateCallOrder. Variables: callOrder, id. Example variables: {"callOrder":0,"id":""} |
| update_emergency_contactC | Emergency Contacts · mutation updateEmergencyContact. Variables: input. Example variables: {"input":{"callAttempts":0,"callCategories":["ENGINEERING"],"callWindows":{"daysOfWeek":["FRIDAY"],"endTime":"","startTime":"","timeZone":""},"id":"","phoneNumber":""}} |
| greymatter_fieldC | Fields · query greymatterField. Variables: by. Example variables: {"by":{"id":"","name":""}} |
| greymatter_fieldsC | Fields · query greymatterFields. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"ids":[""],"search":""},"first":10,"order":{"direction":"ASC","orderBy":"NAME"}} |
| identitiesB | Identities · query identities. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"created":{"date":"2026-05-01T00:00:00.000Z","operator":"AFTER"},"groups":[""],"roles":[""],"search":"","workLocations":[""]},"first":10,"order":{"direction":"ASC","orderBy":"GROUP"}} |
| health_incidentsB | Incidents · query healthIncidents. Variables: after, first, incidentFilter, incidentOrder. Example variables: {"after":"T18w","first":10,"incidentFilter":{"acknowledged":true,"assignees":[""],"closed":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"escalated":{"earliest":"2026-05-01... |
| incidentB | Fetch a single incident by id or ticket number, including comments, artifacts, metadata, rule, and assignee. Variables: after, filter, first, order, filter1, after1, filter2, first1, order1, after2, filter3, first2, order2, after3, filter4, first3, order3, after4, filter5, first4, order4, after5, first5, after6, first6, after7, filter6, first7, order5, after8, filter7, first8, order6, by. Example variables: {"after":"T18w","filter":{"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"types":["CREATED"]},"first":10,"order":{"direction":"ASC","orderByList":["CREATED_AT"]},"filter1":{"fields":[""]},"after1":"T18w","filter2":{"customers":[""],"ids":["... |
| incidentsA | List security incidents with filtering (state, severity, updated time range) and ordering. Relay-paginated (edges/pageInfo/totalCount). Common states: PENDING_CUSTOMER, PENDING_RQ, RESOLVED, CANCELLED. Variables: after, first, incidentFilter, incidentOrder. Example variables: {"after":"T18w","first":10,"incidentFilter":{"acknowledged":true,"assignees":[""],"closed":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"commentFilter":{"earliestCreate":"2026-05-01T00:00:00.000Z","latestCreate":"2026-05-01T00:00:00.000Z","types":["PUBLIC"]... |
| acknowledge_assign_and_close_incidentC | Incidents · mutation acknowledgeAssignAndCloseIncident. Variables: input. Example variables: {"input":{"acknowledgementMethod":"WEB_UI","assigneeId":"","closeCode":"CUSTOMER_ANOMALOUS_SAFE","closeNote":"","incidentId":"","state":"RESOLVED","type":"ACKNOWLEDGE"}} |
| acknowledge_incidentB | Acknowledge an incident. input: IncidentAcknowledgementInput { incidentId, acknowledgementMethod (e.g. WEB_UI), autoAssign }. Variables: input. Example variables: {"input":{"acknowledgementMethod":"WEB_UI","autoAssign":true,"incidentId":""}} |
| add_incident_commentC | Add a comment to an incident. input: IncidentCommentInput { incidentId, comment }. Variables: after, filter, first, order, input. Example variables: {"after":"T18w","filter":{"earliestCreate":"2026-05-01T00:00:00.000Z","latestCreate":"2026-05-01T00:00:00.000Z","types":["PUBLIC"]},"first":10,"order":{"direction":"ASC","orderBy":"CREATED_AT"},"input":{"comment":"","incidentId":""}} |
| assign_incidentA | Assign an incident to a GreyMatter user. input: AssignIncidentInput { incidentId, assigneeId }. Resolve assigneeId via the customer/users query. Variables: input. Example variables: {"input":{"assigneeId":"","incidentId":""}} |
| bulk_close_incidentsC | Incidents · mutation bulkCloseIncidents. Variables: input. Example variables: {"input":{"aiChatId":"","closeCode":"CUSTOMER_ANOMALOUS_SAFE","closeNote":"","incidentIds":[""],"state":"RESOLVED"}} |
| close_incidentA | Resolve or cancel an incident. request: CloseIncidentRequest { incidentId, state (RESOLVED or CANCELLED), closeCode, closeNote }. Incident close codes: CUSTOMER_ANOMALOUS_SAFE, CUSTOMER_FALSE_POSITIVE, CUSTOMER_TRUE_POSITIVE, FALSE_POSITIVE_CREATE_TUNING_TICKET, CUSTOMER_SECURITY_CONTROL_TESTING, CUSTOMER_CANCELLED. Variables: request. Example variables: {"request":{"closeCode":"CUSTOMER_ANOMALOUS_SAFE","closeNote":"","incidentId":"","state":"RESOLVED"}} |
| release_incidentD | Incidents · mutation releaseIncident. Variables: id. Example variables: {"filter":{"fields":[""]},"after":"T18w","filter1":{"includeArchived":true},"first":10,"order":{"direction":"ASC","orderBy":"CREATED_AT"},"after1":"T18w","filter2":{"includeArchived":true},"first1":10,"order1":{"direction":"ASC","orderBy":"CREATED_AT"},"id":""} |
| retain_incidentD | Incidents · mutation retainIncident. Variables: id. Example variables: {"filter":{"fields":[""]},"after":"T18w","filter1":{"includeArchived":true},"first":10,"order":{"direction":"ASC","orderBy":"CREATED_AT"},"after1":"T18w","filter2":{"includeArchived":true},"first1":10,"order1":{"direction":"ASC","orderBy":"CREATED_AT"},"id":""} |
| unresolve_incidentD | Incidents · mutation unresolveIncident. Variables: input. Example variables: {"filter":{"fields":[""]},"after":"T18w","filter1":{"includeArchived":true},"first":10,"order":{"direction":"ASC","orderBy":"CREATED_AT"},"after1":"T18w","filter2":{"includeArchived":true},"first1":10,"order1":{"direction":"ASC","orderBy":"CREATED_AT"},"input":{"incidentId":"","reason":""}} |
| update_incident_stateA | Change an incident's state (e.g. send back to ReliaQuest). input: UpdateIncidentStateInput { incidentId, state (e.g. PENDING_RQ, PENDING_CUSTOMER), comment }. Variables: input. Example variables: {"input":{"comment":"","incidentId":"","state":"PENDING_CUSTOMER"}} |
| indicatorB | Indicators · query indicator. Variables: by. Example variables: {"by":{"id":"","input":{"name":"","type":"CIDR"}}} |
| indicatorsB | Indicators · query indicators. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"feedNames":[""],"lastSeenAt":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"names":[""],"severity":["CRITICAL"],"type":["CIDR"]},"first":10,"order":{"direction":"ASC","orderBy":"LAST_SEEN"}} |
| customer_playbooksC | Playbooks · query customerPlaybooks. Variables: after, filter, first, order. Example variables: {"after":"T18w","filter":{"created":{"earliest":"2026-05-01T00:00:00.000Z","latest":"2026-05-01T00:00:00.000Z"},"types":["CONFIGURATION_CHANGED"]},"first":10,"order":{"direction":"ASC","orderBy":"CREATED_AT"}} |
| playbook_runD | Playbooks · query playbookRun. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2, after3, first3, after4, first4, after5, filter3, first5, order3, after6, filter4, first6, order4, after7, filter5, first7, order5, id. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
| playbook_run_filter_dataD | Playbooks · query playbookRunFilterData. Variables: after, filter, first, order, after1, filter1, first1, order1, after2, filter2, first2, order2. Example variables: {"after":"T18w","filter":{"customers":[""],"ids":[""],"name":"","pods":[""],"roles":[""],"users":[""]},"first":10,"order":{"direction":"ASC","orderBy":"NAME"},"after1":"T18w","filter1":{"accessGroups":[""],"customers":[""],"ids":["<ID... |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 147 tools
With 147 tools, many have overlapping purposes. Singular/plural pairs like `drp_alert`/`drp_alerts` and `watch_drp_alert`/`watch_drp_alerts` create confusion, as do similar actions like `close_case` and `cancel_case`. An agent will struggle to select the correct tool without deep inspection.
Most tools follow a snake_case verb_noun pattern (e.g., `create_case`, `update_user`), but there are inconsistencies such as `un_watch` (with underscore), `upsert` variants, and bare-noun queries like `incidents` and `me`. The long compound verb `acknowledge_assign_and_close_incident` also deviates.
147 tools is an extreme number for any MCP server, far exceeding typical scoping. This overwhelms agents and makes selection error-prone.
The tool set covers a wide range of GreyMatter capabilities across incidents, cases, tasks, DRP alerts, playbooks, reference lists, and user management, with CRUD and lifecycle operations. The inclusion of a generic `graphql_query` tool fills any remaining gaps, making coverage effectively complete.