Agents query AssureSwarm through the query_data MCP tool, which accepts read-only GraphQL: mutations and subscriptions are rejected. The catalog below is the same one returned live by get_schema as queryReference; prefer the live version when in doubt, since item types and their fields are tenant-specific.
Call get_schema first and reuse the exact item type slugs and field keys it returns.
Use GraphQL variables, not string interpolation, for any value that comes from user input or a prior tool result.
Select only the fields you need: tool responses are capped at 2 MB.
Item lists are paginated; read total and totalPages instead of assuming one page holds everything.
Prefer the aggregate and stats fields below for counting or summarizing: don’t page through every item to count it yourself.
Writes never happen through GraphQL; propose them with suggest_change instead.
Discover before you write
Call get_schema first and reuse the exact field keys it returns: item types, field keys, and option values vary by tenant.
These four shapes are verified against the live schema.
List item types:
Inspect one item type’s fields:
query ItemTypeFields ( $slug : String ! ) {
List items: items returns a paginated object , select rows via the inner items field:
query OpenIssues ( $itemType : String ! , $limit : Int ) {
items ( itemType : $itemType , limit : $limit ) {
with variables:
{ "itemType" : " issue " , "limit" : 10 }
total is always the full matching count, regardless of limit or page.
Count and break down without paging:
query ItemCounts ( $itemType : String ) {
itemStats ( itemType : $itemType ) {
Six fields answer the questions you’d otherwise have to page through every record to answer by hand:
Field
Answers
Returns
itemStats(itemType?)
Counts and breakdowns by status, owner, and item type
ItemStats { totalCount, overdueCount, byStatus, byOwner, byItemType }
workflowStats(itemType?, status?)
Workflow and step progress, including overdue steps
WorkflowStats { totalWorkflows, totalSteps, overdueSteps, byStatus, stepsByStatus, stepsByAssignee, averageStepsPerWorkflow }
suggestionStats(agentId?)
Agent suggestion volume and approval rate
SuggestionStats { totalCount, approvalRate, byStatus, byOperation, byAgent, byItemType }
timeEntryStats(weekStart?, userId?)
Logged-time totals and breakdowns
TimeEntryStats { totalHours, pendingApprovalCount, byUser, byItem, byWeek }
dueDateReport(daysAhead?, includeItems?, includeSteps?)
What’s overdue or coming up
DueDateReport { overdueItems, overdueSteps, upcomingItems, upcomingSteps }
teamWorkloadStats(itemTypes?)
Open work broken down by person
TeamWorkloadStats { totalSteps, stepsByStatus, stepsByAssignee, stepDetails }
Breakdown (by*) entries are shaped { group, label, count }. Time breakdowns use value in place of count for hours.
The complete set of queries the schema exposes, grouped by area and matching get_schema’s live queryReference.
Signature
Purpose
viewer
The authenticated identity and auth metadata
myContext
The user’s most recent page context
myPageAccess
The user’s page grants
hasPageAccess(pageName)
Whether the user can access a given page
Signature
Purpose
itemTypes(includeInactive?, includeInactiveFields?)
List all item types
itemType(slug, includeInactive?, includeInactiveFields?)
One item type by slug
itemTypeWithFields(slug, includeInactive?, includeInactiveFields?)
One item type with its full field list
Signature
Purpose
items(itemType, status?, ownerId?, createdById?, search?, fieldFilters?, page?, limit?)
Paginated item list; fieldFilters takes [{ fieldKey, fieldType, values: [..] }]
item(id)
One item by ID
itemWithRelations(id)
One item with its relationships
itemActivityLogs(itemId, itemType, limit?)
Activity history for an item
searchItems(query?, search?, itemType?, page?, limit?, take?)
Search across items
myItems(page?, limit?)
Items you own
mySharedItems(page?, limit?)
Items shared with you
allItems(status?, ownerId?, overdue?, search?, skip?, take?)
Items across item types
itemStats(itemType?)
Counts and breakdowns for items
Signature
Purpose
itemRelationships(itemType, itemId)
Relationships attached to an item
stepItemLinks(stepId)
Items linked to a step
stepLinkedEntities(stepIds)
Entities linked to a set of steps
Signature
Purpose
myWorkflows(includeCompleted?, take?)
Workflows you’re involved in
myAssignedSteps(includeCompleted?, take?)
Steps awaiting your approval: assignment is via approvals, not an assignee
workflow(id)
One workflow by ID
workflows(itemType, itemId, skip?, take?)
Workflows for an item
workflowTemplate(id)
One workflow template by ID
workflowTemplates(skip?, take?, itemTypeId?, isActive?, isPublic?)
List workflow templates: take is capped at 100; page with skip
step(id)
One step by ID
stepByDiagramNode(workflowId, diagramNodeId)
The step for a diagram node
stepApprovers(stepId)
The approvers for a step
workflowNodeState(workflowId, nodeId)
State of a diagram node
allSteps(status?, nameContains?, overdue?, workflowStatus?, skip?, take?)
Steps across workflows
allWorkflows(itemType?, status?, ownerId?, skip?, take?)
Workflows across item types
workflowStats(itemType?, status?)
Workflow and step progress
Signature
Purpose
stepDocumentDownloadUrl(documentId)
A download URL for a step document
stepDocumentDownload(documentId)
Download data for a step document
Signature
Purpose
myFormAssignments
Forms assigned to you
formAssignmentsByStep(stepId)
Form assignments for a step
previewFormAssignments(stepId, emails)
Preview form assignments before sending
formStatusReport
Status of form assignments
Signature
Purpose
suggestion(id)
One suggestion by ID
mySuggestions(status?, itemType?, skip?, take?)
Suggestions you created
myPendingSuggestions(skip?, take?)
Your suggestions still pending review
suggestionsForItem(itemType, itemId, skip?, take?)
Suggestions targeting an item
myPendingSuggestionCount
Count of your pending suggestions
mySuggestionStatusCounts
Your suggestion counts by status
suggestionStats(agentId?)
Suggestion volume and approval rate
suggestionsByUser
Suggestion counts by user
suggestionsTimeline
Suggestion activity over time
Signature
Purpose
dashboards(skip?, take?)
List dashboards
dashboard(id)
One dashboard by ID
activityTimeline(itemTypes?, actions?, fieldFilters?, startDate?, endDate?, limit?, offset?)
Activity events over a date range
universeData(includeSteps?)
Data behind the Universe dashboard
universeActivity(startDate, endDate)
Universe activity over a date range
Signature
Purpose
myTimeEntries(weekStart)
Your time entries for a week
myWeeklyTimesheet(weekStart)
Your timesheet for a week
timeEntry(id)
One time entry by ID
timeEntries(userId?, itemId?, weekStart?, status?, skip?, take?)
Time entries across users and items
pendingTimeApprovals(skip?, take?)
Time entries awaiting your approval
timeEntryStats(weekStart?, userId?)
Logged-time totals and breakdowns
Signature
Purpose
users(itemType?, itemId?, search?, searchQuery?, skip?, take?, role?, includeInactive?, includeExternal?)
List users
entityPersonnel(entityType, entityId)
People associated with an entity
itemRoles(itemType, itemId)
Roles on an item
itemRoleCount(itemType, itemId)
Count of roles on an item
Signature
Purpose
customList(id)
One custom list by ID
customLists(category?, includeInactive?, isSystem?, searchQuery?, skip?, take?)
List custom lists
customListValues(category)
Values in a custom list category
customListCategories
All custom list categories
customListByValue(category, value)
Look up a custom list entry by its value
Signature
Purpose
systemSettings(category?)
System settings, optionally by category
systemSetting(key)
One system setting by key
systemSettingCategories
Available setting categories
brandingSettings
Tenant branding settings
featureSettings
Feature toggles
allowedSsoDomains
Email domains allowed to sign in via SSO
oauthClients(includeInactive?)
Registered OAuth clients
oauthClient(id)
One OAuth client by ID
popularOAuthClients
Commonly used OAuth clients
adminActivityLogs(entityTypes?, actionTypes?, userId?, startDate?, endDate?, limit?, offset?)
Admin activity history
adminEntityTypes
Entity types available to admin activity filters
userPageAccess(userId)
A user’s page access grants
userItemPermissions(userId)
A user’s item permissions
Signature
Purpose
dueDateReport(daysAhead?, includeItems?, includeSteps?)
What’s overdue or coming up
teamWorkloadStats(itemTypes?)
Open work broken down by person
dataExport(exportId)
Fresh signed download link for a prior query_data export
Every query runs as the connected user, under their permissions and the token’s scopes. Some fields are admin-flavored and require access you may not have: they fail or return nothing for non-admins. Treat those denials as expected, not as bugs.