Argus Case MCP Tools¶
These tools let the LLM retrieve Argus cases, case details, comments, tags, and allowed case metadata values from the case API.
They support seven common tasks:
- fetch case details by case ID
- fetch case comments by case ID with pagination
- fetch case tags by case ID
- search cases using a structured request
- list allowed case fields
- list allowed case services
- list allowed case categories
General Notes¶
- Use these tools when you want the LLM to retrieve case data from Argus APIs.
- If you ask the LLM to search for cases, it should first use the case search translator tools to construct and validate the search request, then use
executeSearchArgusCaseto fetch results. - Search results are usually summaries. Full case details require
getArgusCaseByIDwith the case ID. - Case comments are not included in case details. They require
getArgusCaseComments. - Case tags are not included in case details. They require
getArgusCaseTags. - Each search call returns only one page of results. It does not automatically fetch additional pages.
- Search responses include pagination metadata under
page, such asnextOffset,stop, andreason, which the LLM can use if you ask it to continue. - When category filtering is involved, the LLM can look up allowed categories and use the returned
shortNamevalues behind the scenes. - When service filtering is involved, the LLM can look up allowed services and use the returned
shortNamevalues behind the scenes. - When case-field filtering is involved, the LLM can look up allowed case fields and use the returned field
namevalues behind the scenes. - Tool results are live Argus API results. The LLM should treat them as the source of truth and not infer missing case values.
Tool: getArgusCaseByID¶
Purpose
Retrieve Argus case details for one specific case ID. The response includes case-level fields such as description, status, and priority.
Arguments
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
caseID |
Case ID to look up. Must be 1 or greater. |
number |
None | Yes |
Usage Notes
- Values below
1fail validation. - Comments and tags are separate from the case detail response. The LLM should fetch them with the dedicated tools when requested.
Tool: getArgusCaseComments¶
Purpose
Retrieve comments associated with one specific case ID.
Arguments
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
caseID |
Case ID whose comments should be returned. Must be 1 or greater. |
number |
None | Yes |
limit |
Maximum number of comments to return in one page. Accepted range: 1 to 100. Use 25 when no specific page size is requested. |
number |
None | Yes |
offset |
Number of comments to skip before returning results. Use 0 for the first page. |
number |
None | Yes |
Usage Notes
- Values below
1forcaseIDfail validation. limit = 0, negative limits, and limits above100fail validation.- The tool fetches one page at a time. For more than one page, the LLM should make another request with
offset = previous offset + limit. - Use
offset = 0for the first page unless the user asks for a later page.
Tool: getArgusCaseTags¶
Purpose
Retrieve tags associated with one specific case ID.
Arguments
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
caseID |
Case ID whose tags should be returned. Must be 1 or greater. |
number |
None | Yes |
Usage Notes
- Values below
1fail validation. - Use this tool when the user asks for tags, labels, or tag metadata attached to a case.
Tool: executeSearchArgusCase¶
Purpose
Retrieve Argus case search results for the search criteria the LLM has prepared and validated.
Arguments
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
request |
Full case search definition prepared from the user's request. | object |
None | Yes |
request Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
asset |
Match cases associated with any specified assets, using asset ID or short name. | array<string> |
None | No |
customer |
Match cases belonging to any specified customers, using customer ID or short name. | array<string> |
None | No |
caseID |
Match specific case IDs. | array<number> |
None | No |
type |
Match case types. Allowed values: securityIncident, operationalIncident, information, change. |
array<string> |
None | No |
serviceFilter |
Match case service criteria. | object |
None | No |
category |
Match case categories. The LLM can resolve allowed category shortName values behind the scenes. |
array<string> |
None | No |
currentPriority |
Match current priority values. Allowed values: low, medium, high, critical. |
array<string> |
None | No |
initialPriority |
Match initial priority values. Allowed values: low, medium, high, critical. |
array<string> |
None | No |
currentStatus |
Match current case status values. | array<string> |
None | No |
initialStatus |
Match initial case status values. | array<string> |
None | No |
timeFilter |
Time-based narrowing for case search. | object |
{ "timeField": ["all"], "startTime": "startOfDay", "endTime": "now", "timeMatchStrategy": "any" } |
No |
tag |
Tag-based case filter criteria. | array<object> |
None | No |
workflow |
Workflow-based case filter criteria. | array<object> |
None | No |
caseField |
Case field metadata filter criteria. The LLM can resolve allowed field names behind the scenes. | array<object> |
None | No |
keywordFilter |
Keyword-based search across case text fields. | object |
None | No |
userFilter |
User or user-group based case filtering. | object |
None | No |
userAssigned |
Filter specifically on whether a user is assigned. | boolean |
None | No |
techAssigned |
Filter specifically on whether technical personnel is assigned. | boolean |
None | No |
caseAccessMode |
Match case access modes. Allowed values: roleBased, readRestricted, writeRestricted, explicit. |
array<string> |
None | No |
caseExplicitAccessFilter |
Match explicit-access grant criteria. When multiple criteria are provided, all must match. | array<object> |
None | No |
includeCaseFlag |
Case flags that must all be present. Values should be resolved with the case search translator list tools. | array<string> |
None | No |
excludeCaseFlag |
Case flags that must not be present. Values should be resolved with the case search translator list tools. | array<string> |
None | No |
page |
Pagination settings. | object |
{ "limit": 25, "offset": 0 } |
No |
sortBy |
Sort order list. Use list order as priority. Prefix a value with - for descending. Values should be resolved with the case search translator list tools. |
array<string> |
None | No |
request.serviceFilter Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
caseService |
Match cases with any of these case service IDs or short names. The LLM can resolve allowed service shortName values behind the scenes. |
array<string> |
None | No |
includeCaseServiceFlag |
Service flags that must all be present. Values should be resolved with the case search translator list tools. | array<string> |
None | No |
excludeCaseServiceFlag |
Service flags that must not be present. Values should be resolved with the case search translator list tools. | array<string> |
None | No |
request.timeFilter Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
timeField |
Case time fields the range applies to. Allowed values: createdTimestamp, lastUpdatedTimestamp, closedTimestamp, publishedTimestamp, customerDueTimestamp, techDueTimestamp, all. |
array<string> |
["all"] |
No |
startTime |
Start of the time range. Accepts epoch millis as string, ISO-8601 UTC, or relative expressions such as startOfDay - 1 day. |
string |
startOfDay |
No |
endTime |
End of the time range. Accepts epoch millis as string, ISO-8601 UTC, or relative expressions such as now. |
string |
now |
No |
timeMatchStrategy |
How to evaluate multiple timeField values. Allowed values: any, all. |
string |
any |
No |
request.tag[] Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
tagKey |
Exact tag key or name to search for. | string |
None | Yes |
value |
Tag values to match. Optional when checking only whether the tag exists. | array<string> |
None | No |
searchCondition |
How to apply this tag criterion. Allowed values: MATCH, NEGATE, EXCLUDE_TAG. |
string |
None | Yes |
request.workflow[] Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
flow |
Workflow token to match. Values should be resolved with the case search translator list tools. | string |
None | Yes |
acknowledgeStatus |
Workflow acknowledgement filter. Allowed values: acknowledged, unacknowledged, all. |
string |
all |
No |
exclude |
Negate this criterion. | boolean |
false |
No |
request.caseField[] Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
fieldName |
Case field name to search for. The LLM can resolve allowed field names behind the scenes. | string |
None | Yes |
value |
Field values to match. Optional when checking only whether the field exists. | array<string> |
None | No |
searchCondition |
How to apply this field criterion. Allowed values: MATCH, NEGATE, EXCLUDE_FIELD. |
string |
None | Yes |
request.keywordFilter Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
keywords |
Search terms to match. | array<string> |
None | No |
keywordField |
Case text fields to search. Allowed values: subject, description, comments, customerReference, id, all. |
array<string> |
None | No |
keywordMatch |
How to evaluate multiple keywords. Allowed values: any, all. |
string |
None | No |
request.userFilter Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
user |
User IDs, user names, or user-group names to match. | array<string> |
None | No |
userField |
User-related case fields to search. Allowed values: reporter, assignedUser, assignedTech, createdByUser, lastUpdatedByUser, closedByUser, publishedByUser, commentedByUser, watchedByUser, all. |
array<string> |
["all"] |
No |
request.caseExplicitAccessFilter[] Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
startTime |
Match cases with explicit access granted after this time. Uses the same time formats as other time filters. | string |
None | No |
endTime |
Match cases with explicit access granted before this time. Uses the same time formats as other time filters. | string |
None | No |
accessLevel |
Match explicit access levels. Allowed values: read, write, owner. |
array<string> |
None | No |
user |
User IDs, user names, or user-group names whose explicit access grants should match. | array<string> |
None | No |
includeAncestor |
Whether to include the specified users and their ancestors when matching access grants. | boolean |
false |
No |
request.page Fields¶
| Field | Description | Type | Default | Required |
|---|---|---|---|---|
limit |
Maximum number of cases per page. Accepted range: 1 to 100. |
number |
25 |
No |
offset |
Number of cases to skip before returning results. Must be 0 or greater. |
number |
0 |
No |
Usage Notes
- The LLM should use
generateArgusCaseSearchQuerybefore executing a case search so enum values, pagination, and lookup-dependent fields are validated. - Case search pagination supports
1to100items per page. - If you want more than one page of results, ask the LLM to continue fetching more pages. The tool itself returns one page at a time.
- For descending sorting, the LLM can use a
-prefix such as-createdTimestamp. currentStatusandinitialStatussupport:pendingCustomer,pendingSoc,pendingVendor,workingSoc,workingCustomer,pendingClose,closed.- Tag and case-field filters support both value matching and existence checks.
- Unknown case flags, service flags, workflows, or sort fields can fail validation. The LLM can resolve these through the case search translator list tools.
Tool: listArgusCaseFields¶
Purpose
Return the allowed case fields the LLM can use when case-field filtering is involved.
Arguments
This tool takes no arguments.
Result Notes
- When case-field filtering is involved, the LLM can use the returned field
namevalues behind the scenes.
Tool: listArgusCaseServices¶
Purpose
Return the allowed case services the LLM can use when service filtering is involved.
Arguments
This tool takes no arguments.
Result Notes
- When service filtering is involved, the LLM can use the returned
shortNamevalues behind the scenes.
Tool: listArgusCaseCategories¶
Purpose
Return the allowed case categories the LLM can use when category filtering is involved.
Arguments
This tool takes no arguments.
Result Notes
- When category filtering is involved, the LLM can use the returned
shortNamevalues behind the scenes.